Macro impression et case à cocher

dangerdion

XLDnaute Nouveau
Bonjour à tous,

je suis plutôt débutant en vba, la seule base que je possède en prog c'est du vhdl... bref voici mon problème:


J'ai une feuille excel qui est une liste des autres feuilles inclut dans ce même workbook. J'ai une case à cocher pour chaque ligne, une colonne du nombre de copie puis un seul bouton imprimer.

voici le modèle que j'ai essayé d'utiliser

If CheckBox1 = vrai Then
Sheets("CCM INSP 2ANS").PrintOut Copies:=Sheets("LISTE").Range("G2")
End If

If checkBox2=vrai Then...

Vous comprenez la suite!
Tout ce déroule bien sauf que mon programme ne tiens pas compte de "checkbox", il imprime tout...

Si quelqu'un a une solution aussi pour tout décocher après l'impression ca serait bien apprécié!
 

gilbert_RGI

XLDnaute Barbatruc
Re : Macro impression et case à cocher

Bonjour,

un truc dans le genre :confused:

If caseàcocher1 = vrai Then
Sheets("CCM INSP 2ANS").Range("a1:j55").PrintOut
End If
If caseàcocher2 = vrai Then
Sheets("CCM INSP 2ANS").Range("l1:v55").PrintOut
End If

c'est quoi comme case à cocher "type formulaire" ou "activex" :confused:
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Macro impression et case à cocher

Bonsoir,

alors voilà pour des activex sur la feuille de calcul

Sub imprime_checkbox_activex()
On Error Resume Next
For i = 1 To ActiveSheet.Shapes.Count
If ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = True Then
Select Case i
Case 1
Sheets(1).Range("a1:d20").PrintOut 'imprime une plage de la feuil1
Case 2
'etc.....
Case 3
'etc.....

Case 4
'etc.....

Case Else
'etc.....

End Select
End If
Next

End Sub


range indique une plage qu'il faut imprimer

à la suite du PrintOut vous pouvez mettre Copies:= x x étant le nombre de copies désirées si omis une seule impression sera faite
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Macro impression et case à cocher

Incroyable! Merci beaucoup, cette macro peut être enregistré sur un bouton activex ? et une dernière petite question; est-ce que le "End Select" décoche les checkbox?

Merci encore!

cette macro peut être lancée par un objet (activeX ou formulaire) comme vous voulez

le End Select ferme le Select Case comme le end if ferme le if ça n'a rien à voir avec les checkbox

pour remettre toutes les checkbox à vide il faut employer un code

Sub decocher()
On Error Resume Next
For i = 1 To ActiveSheet.Shapes.Count
ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = False
Next
End Sub

si vous voulez le contraire c'est à dire les cocher toutes mettre True à la place de False

il est possible de décocher les checkbox qui viennent de faire l'impression

Sub imprime_checkbox_activex()
On Error Resume Next
For i = 1 To ActiveSheet.Shapes.Count
If ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = True Then
Select Case i
Case 1
MsgBox "ok 1" 'ici j'ai mis une boite de dialogue au lieu de l'impression ci dessous
'Sheets(1).Range("a1:d20").PrintOut 'imprime une plage de la feuil1
Case 2
MsgBox "ok 2" 'ici j'ai mis une boite de dialogue au lieu de l'impression

Case 3
'etc.....

Case 4
'etc.....

Case Else
'etc.....

End Select

End If
ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = False ' décoche toutes les checkbox
Next

End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 180
dernier inscrit
Vcr