Forum Community sul Comune di Valentano (VT)

Internet, Pc, Open Source => Internet, Pc, Open Source => Topic iniziato da: ghisirds - Marzo 24, 2009, 19:10:39



Titolo: Excel e righe
Post di: ghisirds - Marzo 24, 2009, 19:10:39
Salve a tutti voi.
Avrei bisogno del vostro aiuto per realizzare un pezzo di codice che andrà a comporre una complicata macro.
In pratica, io seleziono un numero di celle variabile in una sola colonna e devo riuscire ad eliminare tutte le righe corrispondenti alle celle selezionate tranne la prima riga e deve rimanere attiva la prima cella in alto delle selezione iniziale.
Veloce esempio:
Seleziono C3:C5
Eseguo la macro
Rimane selezionata e attiva la cella C3 ma vengono eliminate le righe 4 e 5.
La colonna sarà sempre la C ma il numero di celle selezionate e la loro posizione è variabile
Qual è il codice VBA più semplice e pulito per realizzare questa operazione?
Grazie

__________________
Mai visto regali ragazza (http://www.idee-regalo.biz/regalo-ragazza.html) così? (regalos bodas (http://www.regalos-originales.biz/regalos-boda.html) in spagnolo), bambini dislessici (http://scuo.la/psicologia/1397-bambini-dislessici-e-come-affrontare-gli-studi-con-serenita.html), fulgieri swarovski (http://www.fulgierisrl.com/)


Titolo: Re: Excel e righe
Post di: ciocchetto - Marzo 24, 2009, 20:06:55
Se vuoi che vengano cancellate solo le celle (e non le righe) della selezione tranne quelle della prima righa, devi fare qualcosa del tipo questo:

Citazione

Sub eliminaCelleMenoUna()
  inizio = Selection.Row
  colonna = Selection.Column
  altezza = Selection.Rows.Count
  With ActiveSheet
    .Range(.Cells(inizio+1,colonna), .Cells(inizio-1+altezza, colonna)).Select
  End With
  Selection.Delete Shift:=xlUp
  ActiveSheet.Cells(inizio, colonna).Select
End Sub



Questo fa quello che hai chiesto e sposta tutte le celle al di sotto di quelle cancellate immediatamente sotto la cella che rimane selezionata; se invece vuoi lasciare le celle vuote, devi togliere la parte che ti ho colorato di blu (Shift:=xlUp) dalla terz'ultima riga.



Titolo: Re: Excel e righe
Post di: ghisirds - Marzo 24, 2009, 23:07:22
Vado a provarla
grazie intanto
ciao

ps. ma sposta le celle o le righe? io avrei bisogno che rimanesse tutto allineato, quindi eliminare e spostare righe intere...


Titolo: Re: Excel e righe
Post di: ciocchetto - Marzo 25, 2009, 08:16:01
Vado a provarla
grazie intanto
ciao

ps. ma sposta le celle o le righe? io avrei bisogno che rimanesse tutto allineato, quindi eliminare e spostare righe intere...

Eh, ma tu avevi parlato di una singola colonna...  :smt003
Se devi cancellare e spostare intere righe devi modificare il programma così:

Citazione

Sub eliminaCelleMenoUna()
  inizio = Selection.Row
  colonna = Selection.Column
  altezza = Selection.Rows.Count
  With ActiveSheet
    .Range(.Rows(inizio + 1), .Rows(inizio - 1 + altezza)).Select
  End With
  Selection.Delete Shift:=xlUp
  ActiveSheet.Cells(inizio, colonna).Select
End Sub



Non è necessario selezionare le righe intere, basta che selezioni le celle di una sola colonna
Al solito, se vuoi solo cancellare le righe lasciandole vuote basta che togli il pezzo Shift:=xlUp