sono una neoiscritta in questo Forum e ho un paio di problemi che non riesco a risolvere (uno già chiesto su altro forum).
Premetto che non sono molto pratica di VBA, ed è solo da pochi mesi che lo sto usando.Quindi, non me ne volete.
Ora cerco di spiegarmi al meglio (cosa non facile). Allora, io ho un file chiamato Fatturazione Occasionali ed è così composto:
Il prmo foglio AB0 (foglio vuoto, i successivi 3 fogli sono Dati e l'ultimo AB999 (foglio vuoto).
Nello specifico così: Ab0, Archivio Fatture, Dati Fattura, Matrice, 1,2,3 ecc..., e l'ultimo AB999. (1,2,3 ecc sono Fatture)
In questo file ho un codice che a lavoro finito (cioè dopo aver inserito i dati) mi registra i dati delle Fatture, sul foglio chiamato "Archivio Fatture"
del file principale e su un file esterno chiuso chiamato "Fatturazione" foglio "Archivio Generale"..
Funziona così: il codice conta tutti i fogli (che sono Fatture) meno i primi 5 che sono dati, legge i valori contenute dalle celle specificate e registra
sul foglio principale chiamato "Archivio Fatture" e sul file esterno "Fatturazione" foglio "Archivio Generale".
In due parole, se ho nel file 15 fogli, i primi 5 sono dati e i restanti 10 sono fatture, mi registra negli archivi 10 righe con relativi dati.
Quindi, una riga per ogni fattura trovata all'interno del file.
Il problema vero e proprio è questo: se io dovessi erroneamente registrare i dati negli archivi, devo avere la possibilità
di cancellare. Es. se nel file ci sono 10 fatture, il codice deve cancellarmi 10 righe nell'Archivio Fatture del file principale e
10 righe nel file esterno chiamato "Fatturazione" foglio "Archivio Generale".
Con il codice sotto riportato sono riuscita (non so se è corretto) a cancellare le 10 righe nell'Archivio Fatture del file principale,
mentre nel file esterno "Fatturazione" foglio "Archivio Generale" me ne cancella 14 di righe invece di 10.
Sono riuscita con dei cambiamenti (e la mia scarsa conoscenza) al codice a far cancellare sul file esterno 5,14 e 15 righe ma non 10.
Non capisco cosa sbaglio e se non è troppo impegnativo, vi chiedo di darmi una mano. Non è così facile come sembra almeno per me.
Per il secondo problema, invece, non riesco a registrare la singola Fattura scelta dalla Combobox1, sul file esterno "Fatturazione"
Foglio "Archivio Generale".
Vi allego i 2 file dove è riportato nella userform1 di Fatturazione Occasionali i pulsanti in questone con spiegazione.
http://www.filedropper.com/fatturazione
http://www.filedropper.com/fattureoccasionali
Uso Excel 2010
Grazie anticipatamente a tutti coloro che vorranno aiutarmi.
Inserisco il codice di cui sopra per il primo problema.
- Codice: Seleziona tutto
Dim wk1 As ThisWorkbook: Set wk1 = ThisWorkbook
On Error Resume Next
Workbooks.Open Filename:=ActiveWorkbook.Path & "\fatturazione.xlsm"
Dim wk2 As Workbook: Set wk2 = Workbooks("fatturazione.xlsm")
Dim sh2 As Worksheet: Set sh2 = wk2.Worksheets("Archivio Generale")
wk1.Activate
Dim msg, Style, title, response, MyString 'rr As Long
msg = "Vuoi eliminare dall'Archivio Fatture e da quello esterno -Archivio Generale- le ultime Fatture registrate ? "
Style = vbYesNo + vbExclamation + vbDefaultButton2
title = "ATTENZIONE !"
response = MsgBox(msg, Style, title)
If response = vbYes Then
MyString = "Yes"
Application.ScreenUpdating = False
For Each sh In wk1.Sheets
numfatt = Sheets.Count - 5
LR = Cells(Rows.Count, "A").End(xlUp).Row
If LR > 2 Then
Rows(LR - numfatt + 1 & ":" & LR).Delete
wk2.Activate
End If
wk2.Activate
Next
Application.ScreenUpdating = True 'Riaccendo lo schermo
MsgBox "Tutte le Fatture sono state eliminate...", vbInformation, ("Fatture eliminate...")
Else
MyString = "No"
End If
wk2.Save
wk2.Close
Set wk1 = Nothing
Set wk2 = Nothing
Set sh2 = Nothing
On Error GoTo 0