modification macro impression, avec conditions

altinea

XLDnaute Accro
Bonsoir le forum,
j'ai une macro que je souhaiterai faire évoluer, par contre je ne sais pas faire.
Le but étant d'utiliser cette macro qui me permet d'imprimer comme en version publipostage mais ej en veux pas imprimer tous les documents. Je souhaiterai pouvoir imprimer les documents qui ont un 3 dans une colonne définie, puis pouvoir identifier dans une autre colonne que l'impression a été faite.
Merci pour votre aide
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : modification macro impression, avec conditions

re,

réponse au post #13 : le code est prévu comme ça.
réponse au post #15 : j'avais modifié ma réponse du post #12 (la solution est là !) mais nos messages se sont croisés

A+

edit, il faut aussi enlever l'apostrophe devant WS2.PrintOut
 

altinea

XLDnaute Accro
Re : modification macro impression, avec conditions

Re, Merci beaucoup Paf ça fonctionne,

pourrais tu m'aider pour une macro stp

en fait je voudrais dans le meme fichier
si dans la cellule qui contient un 3 pour impression, si c'est inférieur à 3 alors efface le I dans la cellule contigue

merci pour ton aide
 

Paf

XLDnaute Barbatruc
Re : modification macro impression, avec conditions

Dans Excel 2003, je n'ai pas accès à la génération des PDF ;
Peut être y a-t-il moyen de "grouper" les feuilles à imprimer dans un seul PDF et d'imprimer ce PDF

Pour le problème du I à effacer, je n'ai pas trouvé de macro qui le fasse automatiquement dès que la cellule CF est <> 3
Par contre on peut rajouter le code à la macro d'impression Sub Bouton1_Cliquer()
juste après For i = 4 To DerLig, rajouter:
Code:
    If WS1.Range("CF" & i) <> 3 Then WS1.Range("CG" & i) = ""

Bonne suite
 

altinea

XLDnaute Accro
Re : modification macro impression, avec conditions

En fait le but est de supprimer les I car le 3 est fonction d'une périodicité, il peut être caduque, donc pas la peine d'imprimer donc avant l'impression l'idée est de faire la mise à jour, et effacer des I qui seraient obsolètes.

pour la macro j'avais ce genre d'idée

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Cell As Range

For Each Cell In Intersect(Target, Columns("CF").Cells)
If Cell < 3 Then
efface les I obsolètes de la colonne CG
Next Cell

End Sub



Une autre questions est il possible de nommer le fichier du nom de la fiche??

Merci encore
 

Paf

XLDnaute Barbatruc
Re : modification macro impression, avec conditions

j'avais pensé à cette macro dans Worksheet_Change, le problème est que comme les cellules de la colonnes CF sont mises à jour par formule, l' évènement Worksheet_Change n'est pas déclenché . d'où l'idée d'intégrer cette mise à jour de la colonne CG à la macro d'impression; on pourrait l'intégrer dans Private Sub Workbook_Open() qui ferait la mise à jour à chaque ouverture du classeur:

Code:
Private Sub Workbook_Open()
Dim WS1 As Worksheet, DerLig As Integer, i As Integer

DerLig = WS1.Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To DerLig
    If WS1.Range("CF" & i) <> 3 Then WS1.Range("CG" & i) = ""
Next

End Sub

Une autre questions est il possible de nommer le fichier du nom de la fiche??

heu... oui, il faut voir le code qui génère le fichier pour savoir comment l'adapter

A+
 

altinea

XLDnaute Accro
Re : modification macro impression, avec conditions

RE
J'ai mis le code dans this workbook

Private Sub Workbook_Open()
Dim WS1 As Worksheet, DerLig As Integer, i As Integer

DerLig = WS1.Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To DerLig
If WS1.Range("AO" & i) <> 3 Then WS1.Range("AP" & i) = ""
Next

End Sub
mais ça plante sur la ligne en bleu, les cf et cg on changé car j'ai modifié mon classeur
 

Paf

XLDnaute Barbatruc
Re : modification macro impression, avec conditions

encore une boulette !

ben oui, on déclare la variable WS1 puis on l'utilise, mais elle n'a pas de "valeur"

rajouter Set WS1 = Worksheets("Formations PSST") après la ligne Dim ...

pour le deuxième pb pas possibilité de tester, éventuellement faire un nouveau post

Bonne suiye
 

Discussions similaires