Userform pour piloter Word et excel
Bonjour à tous,
Voilà ca fait plusieurs semaines que je fouille sur la toile pour trouver la solution et ce site m'a bcp aidé alors je me décide à poster.
Niveau VBA : déb amateur dans le cadre d'un stage
Programme : sous VBA de excel 2007 mais destiné à fonctionner sur une machine avec Excel 2003.
Objectif : créer un userform avec 5 textbox et 20 checkbox, chaque checkbox est rattaché à 2 fichiers (1 word et 1 excel) qui ne sont pas les m^me en fonction de la checkbox. Quand on clic sur 1 checkbox le fichier word s'ouvre, les 5 textbox s'incorporent au niveau de 5 signets respectif, la feuille s'imprime et le fichier se ferme sans sauvegarder. Idem avec le fichier excel.
Voici 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
| Private Sub CommandButton1_Click()
Range("A1") = TextBox1
Range("A2") = TextBox2
Range("A3") = TextBox3
Range("A4") = TextBox4
Range("A5") = TextBox5
If CheckBox8 = True Then
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim i As Byte
Set WordApp = CreateObject("word.application") 'ouvre une session Word
Set WordDoc = WordApp.Documents.Open("C:\il est trop bien ce site.doc") 'ouvre le document Word
WordApp.Visible = False 'Word est masqué pendant l'opération (plus rapide)
For i = 1 To 5
'les signets du document Word sont nommés Signet1 à Signet5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Essai raté pour avoir les caractères gras au signet
'ActiveDocument.Bookmarks("Signet" & i).Range.Select
'With Selection
'.Text = "Mon texte"
' .Font.Bold = True
'End With
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(i, 1)
Next i
WordApp.Visible = True 'affiche le document Word
'WordDoc.PrintOut 'Pour imprimer le doc obtenu
'WordDoc.Close True 'ferme le document word en sauvegardant les données
'WordApp.Quit 'ferme la session Word
End If
MsgBox "fini"
End Sub
Private Sub TextBox4_Change() 'facilite la saisie de la date ds le textbox
Dim Valeur As Byte
TextBox4.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
Valeur = Len(TextBox4)
If Valeur = 2 Or Valeur = 5 Then TextBox4 = TextBox4 & "/"
End Sub |
Comment résoudre ces problèmes :
1/ appliquer ce code aux 20 checkbox (variables communes ?)
2/ avoir la copie du texte au signet en caractère gras (copier/colle avec mise en forme ?)
3/avoir 2 boutons d'action (1 pour imprimer toutes les feuilles word et l'autre imprimer toutes les feuiles excel)
Merci à tous les challengers,
Forumement votre,
Ipalgo