Macro excel eliminare celle
Hai un problema con Excel? 
Macro excel eliminare celle
di Pixo (utente non iscritto) data: 23/01/2014 23:46:51
Ciao a tutti. Mi servirebbe una macro per eliminare le celle di una riga in un intervallo compreso tra una cella nota (es C5) e una cella sulla stessa riga ma variabile a seconda del contenuto presente in una cella definita (se per esempio C3=12 la macro deve eliminare il contenuto da C5 fino a C17 cioé 12 celle). Sapete aiutarmi? Grazie
di patel data: 24/01/2014 08:16:21
allega un file di esempio con note ed anche il risultato desiderato
di LucaS. (utente non iscritto) data: 24/01/2014 12:55:20
Facendo riferimento al tuo file questo lavora sulla prima riga.
Vedi tu come adattarlo alle tue esigenze.
Se vuoi farlo su più righe basta metterlo in un ciclo for ed esaminare le righe che ti interessano.
Sub elimina_celle()
i = Range("a2")
Range(Cells(2, 2), Cells(2, 2).Offset(0, i)).Delete Shift:=xlToLeft
End Sub
|
di dr.pixo (utente non iscritto) data: 05/02/2014 22:53:13
Ho provato ad inserirlo in un ciclo for ma non riesco a dichiarare la fine del ciclo. per esempio se dovessi farlo girare su più righe fino alla prima casella vuota sulla colonna A (nell'esempio la A5). Come faccio? Potete aiutarmi con il codice? grazie
di Lucas87 data: 05/02/2014 23:17:09
Il tuo file non è più disponibile.
Comunque, in generale, se sulla colonna A hai delle celle occupate e vuoi farle controllare in un ciclo, l'ultima riga occupata viene indicata da
Range("A" & Rows.Count).End(xlUp).Row
che in realtà va a controllare quale è la prima cella occupata partendo dall'ultima cella della colonna indicata.
Quindi se le tue celle vanno dalla A3 alla A10, diventa for i=3 to Range("A" & Rows.Count).End(xlUp).Row
di Zer0Kelvin data: 06/02/2014 03:19:38
Ciao.
A parte che:
1) sarebbe stato meglio allegare un file Excel e non un'immagine(sul file Excel posso fare delle prove, sull'immagine no)
2)visto che hai provato a scrivere il codice per un ciclo for...next, sarebbe stato bello poterlo vedere, magari per capire dove hai sbagliato.
Supponendo che tu voglia partire dalla riga numero 1, una possibile soluzione è questa:
Option Explicit
Sub cancella()
Dim I As Long
'se vuoi partire da una riga diversa è sufficiente inizializzare I ad un valore diverso
I = 1
While Cells(I, 1).Value > 0 'cicla finchè la cella in colonna "A" contiene un valore>0
Range(Cells(I, 2), Cells(I, 2).Offset(0, Cells(I, 1).Value)).Delete Shift:=xlToLeft
I = I + 1 'passa alla riga successiva
Wend
End Sub
|
Aiuto su macro per elimare celle
di pixo (utente non iscritto) data: 13/02/2014 19:21:50
ho provato con il seguente codice ma non ottengo ciò che mi interessa. Ho allegato un file di prova esplicativo. Potete aiutarmi? grazie.
Sub cancella()
Dim I As Long
I = 2
While Cells(I, 8).Value > 0
Range(Cells(I, 8), Cells(I, 8).Offset(0, Cells(I, 8).Value)).Delete Shift:=xlToLeft
I = I + 1
Wend
End Sub
|
di scossa data: 13/02/2014 23:26:24
Ciao,
potresti, cortesemente, leggere il messaggio "FILE ALLEGATI" (è il primo argomento con tanto di scritta "In evidenza") e provvedere in tal senso.
cit.: "... eliminare le celle di una riga in un intervallo compreso tra una cella nota (es C5) e una cella sulla stessa riga ...."
cit.: "... la macro deve eliminare il contenuto da C5 fino a C17 ..."
a parte che le celle da C5 a C17 non sono sulla stessa riga ma sulla stessa colonna .... vuoi solo cancellare il contenuto o vuoi eliminare le celle? nel secondo caso come si "muovono" le altre?
di Lucas87 data: 14/02/2014 10:52:32
Ciao.
Provalo sul tuo foglio
Sub elimina_celle()
For i = 1 To Range("a" & Rows.Count).End(xlUp).Row
x = Cells(i, 8)
If x <> 0 Then
Range(Cells(i, 9), Cells(i, 9).Offset(0, x - 1)).Delete Shift:=xlToLeft
End If
Next
End Sub
|
Vuoi Approfondire?