Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Word 2002 - boucle en VBA

2 réponses
Avatar
Congelator
Salut tout le monde,

J'ai un grand besoin de votre aide pour une CENSURE de boucle...
J'ai une form avec divers champs. Au clic sur un bouton, je vais :
copier un tableau prédifini et conçu en fin de document
le coller en fin de document
sélectionner la 2ème cell de la 1ère ligne de ce dernier tableau
entrer la valeur de tbox_employeur
me déplacer 1 cell à droite
entrer la valeur de tbox_employeur_adresse
etc...
une fois toutes les données entrées, msgbox "encore un employeur ?"
si non -> terminé
si oui -> effacement des champs remplis précédemment
saisie par l'utilisateur et à nouveau :
copie du tableau
coller en fin de doc
sélectionner la 2ème cell de la 1ère ligne de ce dernier tableau
entrer la valeur de tbox_employeur
me déplacer 1 cell à droite
entrer la valeur de tbox_employeur_adresse
etc...

L'imaginer, ça va mais le mettre sur papier, je n'y arrive pas... :-((
Voilà déjà le code dans lequel je me débat.
Private Sub Logeur_valider_Click()

With Selection
'*** message si non sélectionné ***
If optbt_employeur.Value = Unchecked And optbt_logeur.Value = Unchecked
Then
MsgBox "Vous avez oublié de choisir ** Employeur ** ou ** Logeur
**", vbOKOnly + vbExclamation, "*** O U B L I ***"
End If

'*** sélection ***
If optbt_employeur.Value = True Then
Selection.EndKey Unit:=wdStory ' va à la fin du document
Call ThisDocument.gras ' mise en forme "gras"
.TypeText Text:="Employeur" ' insertion du mot employeur
Selection.TypeParagraph 'retour à la ligne
Selection.TypeParagraph
End If

If optbt_logeur.Value = True Then
Selection.EndKey Unit:=wdStory ' fin du document
Call ThisDocument.gras
.TypeText Text:="Logeur"
Selection.TypeParagraph
Selection.TypeParagraph
End If
End With

'*** copier - coller tableau ***
Call ThisDocument.normal
'sélectionner le tableau pour le logeur / employeur
ActiveDocument.Tables(5).Select
Selection.Copy 'copie du tableau
Selection.EndKey Unit:=wdStory ' fin du document
Selection.Paste 'copie du tableau
'Selection.Tables(6).Cell(1, 2).Select '<-- devrait ne sélectionner que
le dernier tableau et non le 6ème




'*** Message ***
Dim Msg, Style, Titre, Help, Reponse
Msg = "Avez-vous un autre logeur ou employeur à ajouter ?" ' message.
Style = vbYesNo + vbQuestion + vbDefaultButton2 ' boutons.
Titre = "* * * AUTRE EMPLOYEUR / LOGEUR ? * * *" 'titre.
Reponse = MsgBox(Msg, Style, Titre)
If Reponse = vbYes Then
Close

'vide les champs déjà remplis
With Selection
tbox_à_empl_log.Value = ""
tbox_adresse_empl_log.Value = ""
End With
Else
Me.Hide
End If
End Sub

Merci d'avance pour le coup de main.

PS : j'ai également mis cette question dans le forum VBA
--
Céd / Lausanne

2 réponses

Avatar
Anacoluthe
Bonjour !

'Congelator' nous a écrit ...
(couic)
Selection.Tables(6).Cell(1, 2).Select '<-- devrait ne sélectionner que
le dernier tableau et non le 6ème



ActiveDocument.Tables(ActiveDocument.Tables.Count).Cell(1,2).Select


[PS: Les contributeurs bénévoles d'un forum ne sont pas des machines.
Essayez de poser votre question de façon simple et précise du genre
'Comment sélectionner en vba le dernier tableau d'un document ?'
au lieu de nous refroidir Congelator avec tout un code inutile et
bizarre dont le déchiffrement est assez pénible.
Merci de votre compréhension.]

Anacoluthe
« Souvent trop d'abondance appauvrit la matière. »
- Nicolas BOILEAU

Avatar
Congelator
Salut Anacoluthe,

Tout d'abord, désolé de te répondre que maintenant mais des raisons
professionnelles m'ont éloignés du bureau.
Je suis tout à fiat d'accord avec toi sur le fait d'être bref mais ma
version light n'a pas eu de réponse, j'ai donc pensé qu'elle était trop
"light" et me suis dit que, cette fois, j'allais mettre l'exemple complet
et... tu en es la preuve... ça a marché.. :-))

Un grand merci pour ton code.
--
Céd / Lausanne



Bonjour !

'Congelator' nous a écrit ...
(couic)
Selection.Tables(6).Cell(1, 2).Select '<-- devrait ne sélectionner que
le dernier tableau et non le 6ème



ActiveDocument.Tables(ActiveDocument.Tables.Count).Cell(1,2).Select


[PS: Les contributeurs bénévoles d'un forum ne sont pas des machines.
Essayez de poser votre question de façon simple et précise du genre
'Comment sélectionner en vba le dernier tableau d'un document ?'
au lieu de nous refroidir Congelator avec tout un code inutile et
bizarre dont le déchiffrement est assez pénible.
Merci de votre compréhension.]

Anacoluthe
« Souvent trop d'abondance appauvrit la matière. »
- Nicolas BOILEAU