Bonjour,
Je suis complètement novice en VBA et malgré de nombreuses recherches je ne parviens toujours pas à faire tourner une macro.
En piochant des infos sur les forums, j'ai pu écrire la macro ci-dessous mais elle ne fonctionne pas bien et je ne sais pas pourquoi.
L'objectif est, à partir du fichier de base ("Tr ano") :
- Ouvrir un autre fichier excel "Shortg
- enlever les filtres (pour être sûr que toutes les lignes soient analysées)
- sur chaque ligne vérifier les infos dans les colonnes 40, 23 et 22
- quand les conditions sont remplies -> copier uniquement les cellules et la colonne N et P de cette ligne
- Coller les valeurs dans la première ligne vide des colonne M et N du fichier de base (Tr ano)
- Ferme le fichier excel "Shortg"
La macros ci dessous me renvoient une valeur mais s'arrête à la première ligne vérifiant toutes les conditions.
Savez-vous où est mon erreur ?
Merci d'avance.
Dim NombreLigne As Integer
Dim Date_selec As String
Date_selec = InputBox("Date selec : c:Ruptures\Shortg.xlsx"
Workbooks("Shortages").Sheets("CROSSTAB_2").Activate
ActiveSheet.ShowAllData
NombreLigne = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To NombreLigne
If Cells(i, 40) = "P" And Cells(i, 23) = "X" And Cells(i, 22) < Date_selec Then
Range(Cells(i, 14), Cells(i, 15)).Copy
Workbooks("Tr ano").Sheets("Data").Activate
Range("M65000").End(xlUp).Offset(1).Select
ActiveSheet.Paste
End If
Next
End Sub