Cancella ultima riga a salire



  • 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