thomasdu40
XLDnaute Occasionnel
Bonjour le forum,
A ce jour je suis bloqué pour finir de rédiger la macro. Voici en détail comment devrait fonctionner cette macro.
J'ai deux fichiers (plan d'action SMQ, Tableau suivi des actions). Dans le tableau suivi des actions, j'ai inséré un bouton qui ira vérifier dans le fichier plan d’action SMQ, si une date est saisie dans la colonne W et cela dès la ligne 10 (W10).
Dans le « Plan d’action SMQ », si la cellule W10 est vide et en U10 (contenant une date) < à aujourd’hui alors la macro devra coller les données issues du Plan d’action SMQ vers le « Tableau suivi des actions » comme indiqué ci-dessous. Si aucune date est saisie en U10 alors opération terminée.
Si une date est saisie en W10 alors on ira plutôt vérifier la cellule en AD10 (contenant une date). Si AD10 est vide et en AA10 (contenant une date) < à aujourd’hui alors la macro devra coller les données issues du Plan d’action SMQ dans le « Tableau suivi des actions » comme ci-après :
Valeurs issues du Plan d’action SMQ vers Tableau suivi des actions
Colonne T -----------------------------------------------> Colonne D
Colonne A -----------------------------------------------> Colonne F
Colonne G -----------------------------------------------> Colonne G
Colonne P -----------------------------------------------> Colonne H
Colonne M -----------------------------------------------> Colonne I
Colonne H -----------------------------------------------> Colonne J
Colonne O -----------------------------------------------> Colonne J
La macro vérifiera toujours depuis la ligne 10 du Plan d’action SMQ jusqu’à la dernière ligne où une date est saisie en U10.
J'ai ce code complet mais je pense qu'il possède des erreurs pour répondre à mon problème. La rédaction est elle en partie bonne ?
A ce jour je suis bloqué pour finir de rédiger la macro. Voici en détail comment devrait fonctionner cette macro.
J'ai deux fichiers (plan d'action SMQ, Tableau suivi des actions). Dans le tableau suivi des actions, j'ai inséré un bouton qui ira vérifier dans le fichier plan d’action SMQ, si une date est saisie dans la colonne W et cela dès la ligne 10 (W10).
Dans le « Plan d’action SMQ », si la cellule W10 est vide et en U10 (contenant une date) < à aujourd’hui alors la macro devra coller les données issues du Plan d’action SMQ vers le « Tableau suivi des actions » comme indiqué ci-dessous. Si aucune date est saisie en U10 alors opération terminée.
Si une date est saisie en W10 alors on ira plutôt vérifier la cellule en AD10 (contenant une date). Si AD10 est vide et en AA10 (contenant une date) < à aujourd’hui alors la macro devra coller les données issues du Plan d’action SMQ dans le « Tableau suivi des actions » comme ci-après :
Valeurs issues du Plan d’action SMQ vers Tableau suivi des actions
Colonne T -----------------------------------------------> Colonne D
Colonne A -----------------------------------------------> Colonne F
Colonne G -----------------------------------------------> Colonne G
Colonne P -----------------------------------------------> Colonne H
Colonne M -----------------------------------------------> Colonne I
Colonne H -----------------------------------------------> Colonne J
Colonne O -----------------------------------------------> Colonne J
La macro vérifiera toujours depuis la ligne 10 du Plan d’action SMQ jusqu’à la dernière ligne où une date est saisie en U10.
J'ai ce code complet mais je pense qu'il possède des erreurs pour répondre à mon problème. La rédaction est elle en partie bonne ?
Code:
Private Sub CommandButton1_Click()
Dim Wb As Workbook
Feuil1.Select 'Feuil1(nom de gauche en projet)
Chemin = "G:\S - ISO\"
Fichier = TextBox1.Text & ".xls"
On Error Resume Next
Set Wb = GetObject(Chemin & Fichier)
If Err <> 0 Then MsgBox "Fichier Absent": Exit Sub
Workbooks.Open (fichierAOuvrir)
Set Wb = ActiveWorkbook
Windows(WbPrincipal.Name).Activate
With Wb.Sheets("Feuil1")
For k = 10 To .[A65536].End(3).Row
If .Range("A" & k) <> "" Then
lig = [I65536].End(3).Row + 1
If Range("W10").Value = "" Then
If Range("U10").Value < aujourdhui() Then GoTo extract
End If
End If
If Range("AD10").Value = "" Then
If Range("AA10").Value < aujourdhui() Then GoTo extract
End If
End If
Exit Sub
extract:
Range("D" & lig).Value = .Range("T" & k).Value
Range("F" & lig).Value = .Range("A" & k).Value
Range("G" & lig).Value = .Range("G" & k).Value
Range("H" & lig).Value = .Range("P" & k).Value
Range("I" & lig).Value = .Range("M" & k).Value
Range("J" & lig).Value = .Range("H" & k).Value
Range("J" & lig).Value = .Range("O" & k).Value
End If
Next