di Barbonss » 15/11/19 10:32
Ho provato il codice e funziona perfettamente ma solo per il range D3:F3 del foglio " Giornaliero", io vorrei che esaminasse il range D3:F13 del foglio "Giornaliero" e che mi riporti nel foglio "da pagare" le righe che rispettano l' IF. Ora per non saper ne leggere ne scrivere, ho ricopiato tante volte quante sono le righe ( 11 per l'esattezza ) la funzione IF modificando i relativi range e copia si il numero di righe che rispettano la funzione ma riportando sempre lo stesso rigo......
questo è quello che ho fatto:
Sub CopiaIncollaprova()
Dim myNext As Long
If Worksheets("Giornaliero").Range("G3") = "da pagare" Then
myNext = Worksheets("da pagare").Cells(Rows.Count, 1).End(xlUp).Row 'Prima riga libera
Worksheets("da pagare").Cells(myNext, "A").Value = Worksheets("Giornaliero").Range("C1").Value
Worksheets("da pagare").Cells(myNext, "B").Resize(1, 3).Value = Worksheets("Giornaliero").Range("D3:F3").Value
End If
If Worksheets("Giornaliero").Range("G4") = "da pagare" Then
myNext = Worksheets("da pagare").Cells(Rows.Count, 1).End(xlUp).Row 'Prima riga libera
Worksheets("da pagare").Cells(myNext, "A").Value = Worksheets("Giornaliero").Range("C1").Value
Worksheets("da pagare").Cells(myNext, "B").Resize(2, 3).Value = Worksheets("Giornaliero").Range("D4:F4").Value
End If
If Worksheets("Giornaliero").Range("G5") = "da pagare" Then
myNext = Worksheets("da pagare").Cells(Rows.Count, 1).End(xlUp).Row 'Prima riga libera
Worksheets("da pagare").Cells(myNext, "A").Value = Worksheets("Giornaliero").Range("C1").Value
Worksheets("da pagare").Cells(myNext, "B").Resize(3, 3).Value = Worksheets("Giornaliero").Range("D5:F5").Value
End If
If Worksheets("Giornaliero").Range("G6") = "da pagare" Then
myNext = Worksheets("da pagare").Cells(Rows.Count, 1).End(xlUp).Row 'Prima riga libera
Worksheets("da pagare").Cells(myNext, "A").Value = Worksheets("Giornaliero").Range("C1").Value
Worksheets("da pagare").Cells(myNext, "B").Resize(4, 3).Value = Worksheets("Giornaliero").Range("D6:F6").Value
End If
If Worksheets("Giornaliero").Range("G7") = "da pagare" Then
myNext = Worksheets("da pagare").Cells(Rows.Count, 1).End(xlUp).Row 'Prima riga libera
Worksheets("da pagare").Cells(myNext, "A").Value = Worksheets("Giornaliero").Range("C1").Value
Worksheets("da pagare").Cells(myNext, "B").Resize(5, 3).Value = Worksheets("Giornaliero").Range("D7:F7").Value
End If
End Sub
ovviamente mi son fermato al rigo 5 per vedere se funzionava.....
Spero di essermi riuscito a spiegare.
scusami per l' impazzimento.