Insérer if pour choix impression
Bonjour le forum,
j'ai un bout de code qui rempli les signets d'un document word en fonction des valeurs saisies dans les textbox du USF.
Ceci fonctionne très bien, mais aujourd'hui je souhaite insérer un IF avant mon impression :
Si mon textbox10 est vide, alors une boite de dialogue s'ouvre pour demander le nombre d'impression (dans ce cas, les signets 9 et 10 ne seront pas à remplir)
Le but etant de ne pas refaire bêtement un copier/coller d'une grande partie de mon code...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| Private Sub CommandButton3_Click()
On Error Resume Next
Dim WordApp As Object
Dim WordDoc As Object
Dim n As Integer
Dim Client As String
Dim Numero As String
Dim Adress1 As String
Dim Adress2 As String
Dim cp As String
Dim ville As String
Dim ref As String
Dim qtt As Integer
Client = TextBox3.Text
Numero = TextBox4.Text
Adresse1 = TextBox5.Text
Adresse2 = TextBox6.Text
cp = TextBox7.Text
ville = TextBox8.Text
ref = TextBox9.Text
qtt = TextBox10.Text
Ici je mets par exemple : if TextBox10.value <> "" then
For i = 1 To qtt
Set WordApp = CreateObject("Word.Application") 'ouvre session word
Set WordDoc = WordApp.Documents.Open("C:\Documents and Settings\mon_profil\Bureau\Etiquette.doc") 'ouvre document Word
WordApp.Visible = False 'word masqué pendant l'operation
WordDoc.Bookmarks("Text1").Range.Text = Client 'Remplace Signet Texte(x) dans wd par valeur textbox
WordDoc.Bookmarks("Text2").Range.Text = Numero
WordDoc.Bookmarks("Text3").Range.Text = Adresse1
WordDoc.Bookmarks("Text4").Range.Text = Adresse2
WordDoc.Bookmarks("Text5").Range.Text = cp
WordDoc.Bookmarks("Text6").Range.Text = ville
WordDoc.Bookmarks("Text7").Range.Text = "Ref:" & ref
WordDoc.Bookmarks("Text9").Range.Text = "Colis :" & " " & i & " " & "/" 'Remplace Signet Texte(x) dans wd par valeur textbox
WordDoc.Bookmarks("Text10").Range.Text = qtt
' Mise en forme de la font dans word
Set myRange = WordDoc.Range(Start:=WordDoc.Bookmarks("Text1").Start, End:=WordDoc.Bookmarks("Text2").End)
With myRange
.Font.Name = "Verdana"
.Font.Size = 22
.Bold = True
.Italic = False
End With
Set myRange2 = WordDoc.Range(Start:=WordDoc.Bookmarks("Text2").Start, End:=WordDoc.Bookmarks("Text5").End)
With myRange2
.Font.Name = "Verdana"
.Font.Size = 17
.Bold = True
.Italic = False
End With
Set myRange3 = WordDoc.Range(Start:=WordDoc.Bookmarks("Text5").Start, End:=WordDoc.Bookmarks("Text7").End)
With myRange3
.Font.Name = "Verdana"
.Font.Size = 17
.Bold = True
.Italic = True
End With
WordApp.Application.ActivePrinter = "TEC B-SX4"
WordApp.ActiveDocument.PrintOut
'WordApp.Visible = True 'Affiche le doc word
WordApp.Application.ActivePrinter = "mon_imprimante"
WordApp.ActiveDocument.Close False 'Ferme le document sans enregister
Next
WordApp.DisplayAlerts = wdAlertsNone
WordApp.Quit
For x = 1 To 10
Controls("TextBox" & x).Value = ""
Next
ici je met mon : else...et ci-dessous je veux pas resaisir tout mon code pour faire la même chose en fait....
End Sub |
Comment m'y prendre ??
Suis-je clair dans ma demande, voyez-vous où je veux en venir ?
bonjour BAsicnav, le forum
Pas trop !
La valeur "Qtt" ne doit pas changer sur le document Word ?
Le problème : on demande de changer le nombre d'impression à l'intérieur d' une boucle (1 to Qtt)
dans laquelle on fait une impression à chaque fois.
on doit changer quoi ? "Qtt" donc avant la boucle (1 to Qtt) et pas au moment de l'affectation au signet ?
Il y a le paramètre nombre de copie avec la méthode "PrintOut".
ESVBA