[RESOLU] impression enveloppes en cochant une croix

letroubadour

XLDnaute Occasionnel
bonjour à tous

j'ai ce fichier qui permet à certaines dates d'envoyer des courriers, tout fonctionne bien.

je veux, dans le module 7 imprimer les adresses de la feuille 3 en fonction des cases cochées dans la colonne M de la feuille 1

j'ai repris le module 2 pour l'adapter au module 7 mais au lieu de m'imprimer 2 enveloppes (2 cases cochées) il me les imprime toutes. j'ai essayé pas mal de truc mais il m'en imprime qu'une seule et elle ne fait pas partie de la sélection.

autrement si c'est pas la bonne adresse imprimée l'adresse est bien formatée et correctement imprimée

je vous remercie

le troubadour
 

Pièces jointes

  • Fichier.zip
    264.3 KB · Affichages: 38
  • Fichier.zip
    264.3 KB · Affichages: 46
  • Fichier.zip
    264.3 KB · Affichages: 51
Dernière édition:

Patrice33740

XLDnaute Impliqué
Re : impression enveloppes en cochant une croix

Bonjour,

Des règles fondamentales doivent être respectées lors de l'écriture du code dans des modules standards :
1) Il faut éviter de nommer identiquement plusieurs procédures publiques : Excel se trouve devant une ambigüité de choix et risque de ne pas exécuter celle qu'on voudrait.
2) Pour désigner une plage de cellule, il faut préciser systématiquement la feuille à la elle appartient (alors que ce n'est pas obligatoire dans le module de la feuille).

1) Dans tous les modules, déclarer "privée" la procédure d'export vers word :
Code:
Private Sub export_données_dans_signet_word(ligne)

2) Préciser le nom des feuilles, dans le module 7 :
Code:
With Worksheets("Feuil1")
  nblignes = .Cells(Rows.Count, "G").End(xlUp).Row
  For ligne = 3 To nblignes
    If .Cells(ligne, "M") = True Then
      export_données_dans_signet_word (ligne)
    End If
  Next ligne
End With
et
Code:
With Sheets("Feuil3")
    WordDoc.Bookmarks("adresse").Range.Text = .Cells(ligne, 5)
End With

Faire de même dans les autres modules.
 

letroubadour

XLDnaute Occasionnel
Re : impression enveloppes en cochant une croix

bonjour Patrice

merci pour ta réponse

je viens de modifier mon code et ça semble fonctionner correctement

je vais modifier de ce pas mes autres modules

peux tu m'expliquer brièvement la ligne suivante ?

PHP:
 nblignes = .Cells(Rows.Count, "G").End(xlUp).Row

encore merci

le troubadour
 

Patrice33740

XLDnaute Impliqué
Re : impression enveloppes en cochant une croix

Re,

Explication :
Code:
With Worksheets("Feuil1")
  nblignes = .Cells(Rows.Count, "G").End(xlUp).Row
  '....

End With
est l'équivalent de
Code:
nblignes = Worksheets("Feuil1").Cells(Rows.Count, "G").End(xlUp).Row

C'est à dire que, dans la feuille 1 [Worksheets("Feuil1")], à partir de la cellule [.Cells()] situé sur la dernière ligne (Rows.count) de la colonne "G", Excel cherche, en allant vers le haut [.End(xlUp)], la première cellule qui n'est pas vide et affecte (=) le numéro de ligne de cette cellule (.Row) à la variable nblignes.

C'est l’équivalent, en partant de la dernière cellule, de l'action au clavier : Ctrl + Flèche vers le haut
 
Dernière édition:

Discussions similaires