Cancella ultima riga a salire
Hai un problema con Excel? 
Cancella ultima riga a salire
di alessia (utente non iscritto) data: 04/05/2014 18:23:09
Ciao a tutti,
ho un prblema. Con il codice sotto riportato registro tutte le fatture presenti nella cartella "ipotizziamo circa 200 fatt." .
Quindi, quando pigio il tasto registra, copia i dati partendo dal foglio 4 fino all'ultimo foglio registrandoli correttamente sul foglio archivio fatture. Fin qui tutto bene.
Però, se io per sbaglio ho pigiato "Registra Fatture", come potrei fare per annullare questa operazione?
Cioè, è possibile cancellare dall'ultima riga piena tornando su per quanti sono le Fatture? Cioè 200?
P.s. 200 fatture equivale a 200 fogli.
Grazie
Dim msg, Style, title, response, MyString
msg = "Vuoi Registrare in archivio tutte le Fatture ? "
Style = vbYesNo + vbExclamation + vbDefaultButton2
title = "ATTENZIONE !"
response = MsgBox(msg, Style, title)
If response = vbYes Then
MyString = "Yes"
For Each sh In Sheets
With sh
If .Index > 2 Then
irow = 4 ' inizia a scrivere dalla riga 4
While Sheets("Archivio Fatture").Cells(irow, 1) <> ""
irow = irow + 1 '+ 1
Wend
Sheets("Archivio Fatture").Cells(irow, 1) = .[C13] 'Cod. cliente
Sheets("Archivio Fatture").Cells(irow, 2) = .[F6] 'Rag. Sociale
Sheets("Archivio Fatture").Cells(irow, 3) = .[F7] 'Indirizzo cliente
Sheets("Archivio Fatture").Cells(irow, 4) = .[F8] 'Cap
Sheets("Archivio Fatture").Cells(irow, 5) = .[G8] 'Città
Sheets("Archivio Fatture").Cells(irow, 6) = .[G9] 'P. Iva
Sheets("Archivio Fatture").Cells(irow, 7) = .[G10] 'Codice Fiscale
Sheets("Archivio Fatture").Cells(irow, 8) = .[I3] 'Data Emissione Fattura
Sheets("Archivio Fatture").Cells(irow, 9) = .[G3] 'N. Fattura
Sheets("Archivio Fatture").Cells(irow, 10) = .[C15] 'Periodo dal
Sheets("Archivio Fatture").Cells(irow, 11) = .[E15] 'Periodo al
Sheets("Archivio Fatture").Cells(irow, 12) = .[B18] 'Descrizione
Sheets("Archivio Fatture").Cells(irow, 13) = .[B20] 'Indirizzo
Sheets("Archivio Fatture").Cells(irow, 14) = .[B21] 'Cap
Sheets("Archivio Fatture").Cells(irow, 15) = .[C21] 'Città
Sheets("Archivio Fatture").Cells(irow, 16) = .[E41] 'Imponibile
Sheets("Archivio Fatture").Cells(irow, 17) = .[G41] 'Iva
Sheets("Archivio Fatture").Cells(irow, 18) = .[I41] 'Totale
Sheets("Archivio Fatture").Cells(irow, 19) = .[H40] 'Percentuale iva %
Sheets("Archivio Fatture").Cells(irow, 20) = .[B22] 'Descrizione 2
Sheets("Archivio Fatture").Cells(irow, 21) = .[B24] 'Indirizzo 2
Sheets("Archivio Fatture").Cells(irow, 22) = .[B25] ' Cap 2
Sheets("Archivio Fatture").Cells(irow, 23) = .[C25] 'Città 2
Sheets("Archivio Fatture").Cells(irow, 24) = .[B26] 'Descrizione 3
Sheets("Archivio Fatture").Cells(irow, 25) = .[B28] 'Indirizzo 3
Sheets("Archivio Fatture").Cells(irow, 26) = .[B29] 'Cap 3
Sheets("Archivio Fatture").Cells(irow, 27) = .[C29] 'Città 3
Sheets("Archivio Fatture").Cells(irow, 28) = .[B30] 'Descrizione 4
Sheets("Archivio Fatture").Cells(irow, 29) = .[B32] 'Indirizzo 4
Sheets("Archivio Fatture").Cells(irow, 30) = .[B33] 'Cap 4
Sheets("Archivio Fatture").Cells(irow, 31) = .[C33] 'Città 4
Sheets("Archivio Fatture").Cells(irow, 32) = .[B34] 'Descrizione 5
Sheets("Archivio Fatture").Cells(irow, 33) = .[B36] 'Indirizzo 5
Sheets("Archivio Fatture").Cells(irow, 34) = .[B37] 'Cap 5
Sheets("Archivio Fatture").Cells(irow, 35) = .[C37] 'Città 5
Sheets("Archivio Fatture").Cells(irow, 36) = .[B38] 'Descrizione 6
Sheets("Archivio Fatture").Cells(irow, 37) = .[C14] 'Codice Esattore
End If
End With
Next
MsgBox "Tutte le Fatture sono state registrate...", vbInformation, ("Fatture Registrate...")
CommandButton28.BackColor = 65535 '<--- di colore giallo
Else
MyString = "Yes"
End If
di lepat (utente non iscritto) data: 04/05/2014 18:58:16
prova così
sub cancella()
Sheets("Archivio Fatture").select
LR = Cells(Rows.Count, "A").End(xlUp).Row
if LR > 200 then
rows(LR - 200 + 1 & ":" & LR).delete
end if
end sub |
di alessia (utente non iscritto) data: 04/05/2014 19:15:40
Grazie Lepat,
non so come fai, ma sei davvero molto bravo. Io son tre giorni che faccio ricerche in rete ma con scarsi risultati. Ascolta, ho visto è provato il codice e và na meraviglia. Solo che le fatture non sono sempre 200.Quindi, dovrei modificare di volta in volta il codice. Io avevo messo 200 fatt. solo per ipotesi. Non si potrebbe fare la stessa cosa cancellando i dati registrati erroneamente per quanti sono i fogli partendo dal foglio 4.
Esempio: io ho 203 Fogli, di cui 200 Fatture e tre fogli sono data base. Quindi, si può cancellare i dati registrati per quanti sono i fogli presenti nella cartella partendo dal 4 foglio?
Grazie
di alessia (utente non iscritto) data: 04/05/2014 19:27:29
Ascolta Lepat,
io ho creato questo pulsante con all'interno questo codice, che mi conta le fatture presenti nella cartella. Non si potrebbe fare una cosa del genere. Cioè, conta le fatture presenti, ottienuto il risultato allora cancelli tante righe partendo dall'ultima per il risultato trovato.
questo è il codice che conta i fogli "Fatture".
MsgBox "Le Fatture presenti sono n. " & Sheets.Count - 3, vbInformation, ("Conta Fatture")
Grazie
di lepat (utente non iscritto) data: 04/05/2014 19:34:12
ecco qua, ma ci potevi arrivare anche da sola
sub cancella()
Sheets("Archivio Fatture").select
numfatt = Sheets.Count - 3
LR = Cells(Rows.Count, "A").End(xlUp).Row
if LR > numfatt then
rows(LR - numfatt + 1 & ":" & LR).delete
end if
end sub |
di alessia (utente non iscritto) data: 04/05/2014 19:51:21
Grazie Lepat,
Funziona alla grande. Hai ragione, ma sola purtroppo non riuscivo. Io per dirla tutta me la cavicchio un pò in excel, però riconosco il mio limite. Anche perchè quel poco che so, lo imparato autodidatta. E brutto essere ignorante della materia lo so, ma mio malgrado, queste sono le mie capacità. Ritornare a studiare più di tanto non si può con marito e figli da accudire. Una cosa è certa, piace imparare anche se le difficoltà son tante. Detto questo, sperando di non averti annoiato, ti ringrazio di vero cuore.
bye alessia
Vuoi Approfondire?