eliminare righe con macro
Hai un problema con Excel? 
eliminare righe con macro
di king.carlo (utente non iscritto) data: 09/06/2016 18:27:42
Salve,
ho la necessità di cancellare delle righe da un foglio Excel che non contengano un testo: praticamente il mio foglio ha una sola colonna(A) e circa 5000 righe; le righe contengono in modo alternato NUMERO-ORARIO-TESTO-RIGA VUOTA, e così via per tutte le 5000 righe. A me servono solo le righe che contengono il testo. Ho provato con "vai a formato speciale" , ma l'unica cosa che riesco ha cancellare sono le righe vuote. Come posso fare a risolvere tale problema. Grazie in anticipo per la vostra collaborazione
di alfrimpa data: 09/06/2016 18:37:03
Ciao Carlo
Allega un file di esempio con una ventina di record.
Alfredo
di cromagno data: 09/06/2016 20:28:48
Ciao a tutti,
potresti usare un codice del genere (sotto)...
Ti allego un file d'esempio.
Sub Righe_Vuote()
Dim uRiga As Long, i As Long, Vuote As Range, Prima As Long
uRiga = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To uRiga
If Range("A" & i).Value = "" Then
Set Vuote = Range("A" & i)
Prima = i
GoTo ciclo
End If
Next i
ciclo:
For i = Prima To uRiga
If Range("A" & i).Value = "" Then
Set Vuote = Union(Vuote, Range("A" & i))
End If
Next i
Vuote.Delete Shift:=xlUp
Set Vuote = Nothing
End Sub |
di king.carlo (utente non iscritto) data: 09/06/2016 21:52:56
ho provato sia il file allegato che la sub postata , ma non funzionano, nel senso che io ho la necessità di eliminare sia le righe dove ci sono i numeri (1;2;3;....) che gli orari (00:00:00 ......). visto che la seguenza di come è strutturato il foglio è costante, ossia le righe che contengo i numeri si ripetono ogni 4 righe, così come per gli orari, forse andrebbe bene una sub che elimina le righe con un incremento di 4.
grazie per la vostra disponibilità,
saluti Carlo
P.S. quale manuale (possibilmente in italiano) esaustivo e semplice di VBA mi consigliate? Grazie
di alfrimpa data: 09/06/2016 23:17:01
Ciao Carlo
Forse se alleghi un tuo file di esempio forse facciamo prima.
Per quanto riguarda il manuale se ti fai un giro su Amazon ne trovi diversi.
Io opterei per quello di Gianni Giaccaglini "Excel e Office VBA" Ed. Hoepli; è un po' datato ma per chi vuole iniziare va benissimo.
Poi su questo sito trovi anche un corso a questo indirizzo
w w w.excelvba.it/corso/
oppure guarda qui
h t t p://forum.wintricks.it/showthread.php?t=155252-vba/
Alfredo
di cromagno data: 10/06/2016 00:49:18
Ciao,
io avevo capito che volevi eliminare solo le righe vuote.
Allora prova in questo modo (codice sotto)...
Ti riallego il nuovo file.
Sub Solo_Testo()
Dim uRiga As Long, i As Long, Altro As Range, x
uRiga = Range("A" & Rows.Count).End(xlUp).Row
Set Altro = Union(Cells(1, 1), Cells(2, 1), Cells(4, 1))
For i = 5 To uRiga
If (i + 1) Mod 4 <> 0 Then
Set Altro = Union(Altro, Range("A" & i))
End If
Next i
Altro.Delete Shift:=xlUp
Set Altro = Nothing
End Sub
|
di cromagno data: 10/06/2016 00:51:18
Ciao,
io avevo capito che volevi eliminare solo le righe vuote.
Allora prova in questo modo (codice sotto)...
Ti riallego il nuovo file.
[EDIT]
Ho dimenticato di modificare il nome al pulsante
Sub Solo_Testo()
Dim uRiga As Long, i As Long, Altro As Range, x
uRiga = Range("A" & Rows.Count).End(xlUp).Row
Set Altro = Union(Cells(1, 1), Cells(2, 1), Cells(4, 1))
For i = 5 To uRiga
If (i + 1) Mod 4 <> 0 Then
Set Altro = Union(Altro, Range("A" & i))
End If
Next i
Altro.Delete Shift:=xlUp
Set Altro = Nothing
End Sub
|
di king.carlo (utente non iscritto) data: 10/06/2016 18:29:53
Funziona!!!
grazie a tutti per la collaborazione
Saluti Carlo
Vuoi Approfondire?