Ciao a tutti,
sono nuovo del gruppo e sto iniziando ad avvicinarmi al VBA (come credo capirete presto ).

Ho un foglio excel chiamato ‘Scaduti’ (costituito da un numero variabile di righe ma colonne fisse) in cui viene modificata solo una cella (con delle note) e tutto il resto rimane invariato. I dati di questo foglio vengono presi da un’esportazione di un progr di contabilità in un file .txt.
Il mio problema è che devo aggiornare ‘Scaduti’ con i nuovi dati importati, ma conservando le note inserite (ci sono delle linee che si ripetono ad ogni importazione).

Per fare questo ho scritto un km di codice (che trovate qui sotto) basandomi su decine di post trovati in rete inventando alcune gabole, ma nonostante tutto non funziona. Sperando di esser stato chiaro, qualcuno potrebbe essere così gentile da darmi un aiutino? Per me è molto importante.

NB: in scaduti ho queste colonne :
|num| |num| |nome| |nome| |data| |num| |data| |num| |num| |nome| |nome| |NOTE| |nome| |nome|

Sub Filtra()
'
' Filtra Macro
' Macro registrata il 24/09/2009 da pino
'
Sheets("Database").Select
Range("S9:AF2999").Select
Selection.ClearContents

Range("BI16").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("AJ8:AW2000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("D3:F4"), CopyToRange:=Range("S8:AF2000"), Unique:=False

Range("S9:AF499").Select
Selection.Cut
Range("S1000").Select
ActiveSheet.Paste
Application.CutCopyMode = True

Sheets("Scaduti").Select
Range("A8:N499").Select
Selection.Cut
Sheets("Database").Select
Range("S500").Select
ActiveSheet.Paste
Application.CutCopyMode = True

Range("S9:AF2342").Select
Selection.Sort Key1:=Range("W9"), Order1:=xlAscending, Key2:=Range("U9") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal

Range("S8:AF2000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("D3:F4"), CopyToRange:=Range("C8:P2000"), Unique:=True

Range("C9:P1000").Select
Selection.Copy
Sheets("Scaduti").Select
Range("A8").Select
ActiveSheet.Paste

Z = 14 ‘cancellare righe uguali’
x = 1
riga = 500
Range(Cells(1, x), Cells(riga, x)).Select
For Y = 8 To riga
If Cells(Y, x) = "" Then Exit For
If Cells(Y, x) = Cells(Y + 1, x) Then
Range(Cells(Y + 1, 1), Cells(Y + 1, Z)).Select
Selection.Delete Shift:=xlUp
End If
Next Y
Application.ScreenUpdating = True
Cells(1, x).Select

Range("E6:E1104").Select
Selection.Cut
Range("A6").Select
Selection.Insert Shift:=xlToRight

Z = 14 ‘inserire una riga vuota’
x = 1
riga = 1000
Range(Cells(1, x), Cells(riga, x)).Select
For Y = 8 To riga
If Cells(Y, x) = "" Then Exit For
If Cells(Y, x) <> Cells(Y + 1, x) Then
Range(Cells(Y + 1, 1), Cells(Y + 1, Z)).Select
Selection.Insert
End If
Y = Y + 1
Next Y
Application.ScreenUpdating = True
Cells(1, x).Select

Range("A6").Select
Range("A6:A1340").Select
Selection.Cut
Range("F6").Select
Selection.Insert Shift:=xlToRight

End Sub