Imprimer RECTO-VERSO (Word)

Salut à tous,

En ce lundi matin, je bute sur une macro inédite pour moi. Premièrement il s'agit pour moi de récupérer les valeurs d'une trentaine de checkbox et celles qui sont cochés doivent déclencher l'impression des fichiers Word correspondant à la ligne ou elles se situent.

J'imagine que mes explications ne sont pas très claires. Donc je met un fichier en pièce-jointe, qui sera lui, beaucoup plus explicite.

J'ai essentiellement besoin de :

  • récupérer les valeurs des Checkbox au moment ou l'on clique sur le bouton "imprimer";
  • le nom des articles correspondant aux CheckBox cochées.
32fichier-vhae.xlsm (31.60 Ko)

Merci d'avance pour votre aide et votre temps.

Hello

Alors, j'ai eu une question similaire la semaine passée. Mais j'ai trouvé que les checks box c'était quand même super pénible à utiliser (quand tu veux récupérer la valeur d'une ligne).

Du coup, ce que j'ai fait, c'est que sur la colonne j'ai créé une contrainte de validation.

Données -> Validation des données -> dans "autoriser" tu choisis "liste", dans source tu mets : "x,o"

tu passes la police de tes cellules en Winding et pouf ! ^^

Après avec ton bouton "imprimer" t'as plus qu'a traiter sur la valeur de la cellule (si elle contient x ou o ). (ce que j'ai trouvé plus facile à faire mais c'est parce que je suis néophyte en excel )

ça donne un truc comme ça :

sans titre

Ah oui ! Mais les checkbox sont quant même plus sympa d'utilisation.

J'y ai pensé, mais autant modifier la valeur de la cellule ou se trouve la checkbox en fonction de la valeur de cette dernière.

Mais j'ai opté pour l'utilisation de variable public.. mais je suis pas allez loin. Donc je ne sais pas encore ce qui est le plus intéressant ^^.

Alors je viens de regarder un coup,

Si tu fais clique droit sur la checkbox, que tu vas dans "Format de control" dans l'onglet "Controle" Tu peux renseigner une cellule liée qui va contenir la valeur de ta check box.

Bien vu, je vais partir de ça. Et récupérer les noms des articles en fonction des cellules qui sont "VRAI".

Merci !

bonjour,

" je ne sais pas encore ce qui est le plus intéressant "

Ce qui est le plus intéressant au niveau feuille, c'est TOUJOURS de supprimer tous les éléments graphiques, TextBox, Bouton... qui induisent autant de Sub que de Boutons ou de CheckBox...

A signaler toutefois que au niveau VBA les nombreuses variables incrémentés étaient de toute façon inutiles :

Un code comme celui-ci est suffisant :

Private Sub CheckBox1_Click()
If CheckBox1 Then 'sous entendu = True
   MsgBox "Je suis Cochée"
Else
   MsgBox "Je suis Non Cochée"
End If
End Sub

En conconclusion la réponse de Zohnya est à retenir.

A+

Oui galopin1 je m'en suis bien rendu compte que mes variables étaient inutiles

Donc, j'ai opté pour les cellules liés et j'en suis arrivé à une macro qui me paraît cohérentes.. seulement je n'ai aucun résultat.

Notez que, je demande à la macro d'ouvrir le fichier word pour le moment. C'est pour ne pas lancer des impressions à tous vas

Quoi qu'il en soit, quand je lance la macro j'ai une erreur qui s'affiche comme quoi le fichier est introuvable mais il existe bel et bien :3

Sub impression()
'Récupération de l'année
Dim ann As String
ann = Range("A1").Value
'Récupération du mois
Dim mois As String
mois = Range("C1").Value
'Récupération du rédacteur
Dim redacteur As String
'Chemin d'accès
Dim Chemin As String
Chemin = ("C:\Users\Archimed-Eval\Desktop\TestBIP")
'nom de l'article
Dim art As String
'Destination du document
Dim dest As String
dest = (Chemin & "\" & ann & "\" & mois & "\" & redacteur)
'Emplacement du fichier sur le réseau
Dim Txt As String
Txt = Dir(dest & "\" & art & ".docx")

Dim i As Integer

For i = 6 To 37

If Range("H" & i) = True Then
art = Range("B" & i).Value
redacteur = Range("D" & i).Value
    Set appWrd = CreateObject("Word.Application")
    appWrd.Visible = True
    Set docword = appWrd.documents.Open(dest & "\" & art & ".docx")
    docword.Content.Find.Execute
    appWrd.Activate
End If
Next i
End Sub

Hello,

est-ce que t'as choisi une valeur par défaut quand t'as lié ta cellule ?

Parce que si t'as pas choisi, la cellule est vide tant que t'as pas cliqué sur la check box.


ha attend j'avais pas bien regardé ton code.

Enfaite tu test si la valeur est égale a true. Mais je pense que c'est pas un test logique qu'il faut faire mais un test sur la valeur de la cellule elle même.

Genre tester si la cellule contient "VRAI" et non si sa valeur est true. ... enfin.. c'est pas très clair mais.. t'as compris ?

Zohnya, j'ai déjà fait les test pour les cellules et c'bien avec True que sa fonctionne.

J'ai aussi décoché et coché toutes les cases au moins une fois.

Je doit avoir une erreur dans le chemin d'accès mais je la trouve pas.


C'est bon j'ai réussi !

Merci à vous. Il me manque simplement à fermer Word mais sa devrait aller. ^^

Sub impression()
'Récupération de l'année
Dim ann As String
ann = Range("A1").Value
'Récupération du mois
Dim mois As String
mois = Range("C1").Value
'Récupération du rédacteur
Dim redacteur As String
'Chemin d'accès
Dim Chemin As String
Chemin = ("C:\Users\Archimed-Eval\Desktop\TestBIP")
'nom de l'article
Dim art As String
'Destination du document
Dim dest As String

'Emplacement du fichier sur le réseau
Dim Txt As String
Txt = Dir(dest & "\" & art & ".docx")

Dim i As Integer

For i = 6 To 37

If Range("H" & i) = True Then
art = Range("B" & i).Value
redacteur = Range("D" & i).Value
dest = (Chemin & "\" & ann & "\" & mois & "\" & redacteur)
    Set appWrd = CreateObject("Word.Application")
    appWrd.Visible = True
    Set docword = appWrd.documents.Open(dest & "\" & art & ".docx")
    appWrd.PrintOut
appWrd.Close
End If
Next i
End Sub

Si je me souviens bien c'est quelque chose comme ça

appWrd.Quit
Set appWrd = Nothing

Ouaai !

Voici le code final :

Sub impression()
'Récupération de l'année
Dim ann As String
ann = Range("A1").Value
'Récupération du mois
Dim mois As String
mois = Range("C1").Value
'Récupération du rédacteur
Dim redacteur As String
'Chemin d'accès
Dim Chemin As String
Chemin = ("C:\Users\Archimed-Eval\Desktop\TestBIP")
'nom de l'article
Dim art As String
'Destination du document
Dim dest As String

'Emplacement du fichier sur le réseau
Dim Txt As String
Txt = Dir(dest & "\" & art & ".docx")

Dim i As Integer

For i = 6 To 37

If Range("H" & i) = True Then
art = Range("B" & i).Value
redacteur = Range("D" & i).Value
dest = (Chemin & "\" & ann & "\" & mois & "\" & redacteur)
If Txt = "" Then

Else
Set appWrd = CreateObject("Word.Application")
    appWrd.Visible = True
    Set docword = appWrd.documents.Open(dest & "\" & art & ".docx")
    appWrd.PrintOut
    appWrd.ActiveDocument.Close
    If i = 37 Then
    appWrd.Quit
    End If
End If
End If
Next i

End Sub

Salut à tous,

Au lieu de refaire un post on va recycler celui là car mon problème et dans sa continuité.

Bon ma macro d'impression marche nickel.

Seulement, je me pose la question à savoir s'il est possible, avec une ligne de code et sans ouvrir la fenêtre de configuration de l'impression de Word, d'imprimer en recto-verso ?

Je ne veux pas passer par l'ouverture de la fenêtre de mise en page, car ma macro imprime plusieurs documents (jusqu'à 37 GRAND GRAND maximum) et je ne voudrais pas que l'utilisateur ai à configurer 37 fois l'impression ^^.

En recherchant sur internet j'ai trouvé seulement des solutions pour ouvrir la fenêtre de configuration :/.

d'avance à vous !

VH_AE a écrit :

Salut à tous,

Au lieu de refaire un post on va recycler celui là car mon problème et dans sa continuité.

Bon ma macro d'impression marche nickel.

Seulement, je me pose la question à savoir s'il est possible, avec une ligne de code et sans ouvrir la fenêtre de configuration de l'impression de Word, d'imprimer en recto-verso ?

Je ne veux pas passer par l'ouverture de la fenêtre de mise en page, car ma macro imprime plusieurs documents (jusqu'à 37 GRAND GRAND maximum) et je ne voudrais pas que l'utilisateur ai à configurer 37 fois l'impression ^^.

En recherchant sur internet j'ai trouvé seulement des solutions pour ouvrir la fenêtre de configuration :/.

d'avance à vous !

Rechercher des sujets similaires à "imprimer recto verso word"