Bonjour à tous, pour mon premier post j'ai une petite colle à vous poser:
En effet un de mes collegues m'a demandé de lui faire une macro (il s'avère que je le fais via VB) permettant de lui faire un traitement automatique de données en fonction de certains paramètres.
Je m'explique : j'ai une colonne avec des dates de rendu de location (société de BTP), il veut que 2 jours avant la date expiratoire, une feuille lui soit imprimé directement, feuille étant destiné à etre faxé au chantier pour leur rappeler de rendre le matériel loué.
J'ai donc codé sous VB une fonction faisant ce traitement à l'ouverture de son classeur excel.
Seulement voila quand je fais la fontion au "Pas-à-Pas" elle fonctionne parfaitement, compare toute les dates de la colonne dites "dead-line" à la date d'aujourd'hui et rempli une autre feuille avec les infos que je veux, a la condition que je veux.(je vous met le code juste apres)
Le soucis c'est que en éxécution, quand il trouve une égalité, il effectu bien le traitement, rempli bien la feuille et l'imprime tout seul, mais stop l'execution, ne vérifiant pas la suite des cellules de ma colonne.
je vous mets mon code :
Code :
- Sub TraitementAuto()
- Dim plage, finplage As Range
- Sheets("location" ).Activate
- ActiveSheet.Range("G65536" ).End(xlUp).Select
- LigneFinG = Selection.Row
- For Each macellule In Range("G2:G" & LigneFinG)
- If Cells(1, "C" ) + 2 = macellule.Value Then
- Sheets("feuil2" ).Activate
- Range("A19:B29" ).Select
- Selection.Delete
- Sheets("location" ).Activate
- macellule.Select
- Selection.Copy
- Sheets("feuil2" ).Activate
- Cells(32, "D" ).Select
- Selection.PasteSpecial xlValues
- Sheets("location" ).Activate
- Cells(macellule.Row, "D" ).Select
- Selection.Copy
- Sheets("feuil2" ).Activate
- Cells(14, "D" ).Select
- Selection.PasteSpecial xlValues
- Sheets("location" ).Activate
- Cells(macellule.Row, "B" ).Select
- While Selection.Value = Cells(macellule.Row, "B" )
- ActiveCell.Offset(1, 0).Select
- Wend
- plage = ActiveCell.Offset(-1, 0).AddressLocal
- Range("E" & macellule.Row & ":E" & Range(plage).Row).Select
- Selection.Copy
- Sheets("feuil2" ).Activate
- Range("A19" ).Select
- Selection.PasteSpecial xlAllAtOnce
- Sheets("location" ).Activate
- Range("K" & macellule.Row & ":K" & Range(plage).Row).Select
- Selection.Copy
- Sheets("feuil2" ).Activate
- Range("B19" ).Select
- Selection.PasteSpecial xlAllAtOnce
- ActiveWindow.SelectedSheets("feuil2" ).PrintOut Copies:=1
- End If
- Next macellule
- End Sub
|
J'ai tenté de mettre une pause avant ou après l'impression car j'ai pensé que c'est cela qui fait arreter l'execution mais sans succès.
JE suis bloqué j'ai vraiment besoin de votre aide ^^.
Bonne journée,
Marco.
Message édité par marco-X95 le 30-04-2008 à 09:57:28