Petit code boucle VBA qui ne fonctionne pas
Résolu/Fermé
A voir également:
- Petit code boucle VBA qui ne fonctionne pas
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
9 réponses
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
28 mars 2012 à 23:15
28 mars 2012 à 23:15
Bonjour,
Est-il possible de savoir ou se trouve cette procédure ?
Est-il possible de savoir ou se trouve cette procédure ?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
28 mars 2012 à 15:35
28 mars 2012 à 15:35
Bonjour,
essaie avec :
If TypeOf ctl Is MSForms.TextBox Then
eric
essaie avec :
If TypeOf ctl Is MSForms.TextBox Then
eric
Bonjour Eric,
J'ai remplacé "If TypeOf ctl Is textBox Then " par "If TypeOf ctl Is MSForms.TextBox Then "
Il me renvoie toujours à l'erreur "erreur de compilation : Membre de méthode ou de données introuvable" avec ".Controls" de surligné...
J'ai remplacé "If TypeOf ctl Is textBox Then " par "If TypeOf ctl Is MSForms.TextBox Then "
Il me renvoie toujours à l'erreur "erreur de compilation : Membre de méthode ou de données introuvable" avec ".Controls" de surligné...
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 28/03/2012 à 23:57
Modifié par eriiic le 28/03/2012 à 23:57
et en remplaçant Me par le nom réel du formulaire ?
En haut, le pingou a posé une question interessante aussi...
eric
En haut, le pingou a posé une question interessante aussi...
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 29/03/2012 à 10:19
Modifié par eriiic le 29/03/2012 à 10:19
Il n'est sans doute pas reconnu comme mot clé.
Pour confirmer tu peux l'écrire en minuscule. S'il reste en minuscule c'est sûr qu'il ne le reconnait pas.
Il faudrait compléter le chemin du formulaire pour que vba le retrouve car ta procédure n'est pas dans le code du formulaire.
Je ne connais pas suffisamment vba word pour t'aider plus.
Sur excel ça donnerait :
Tu devrais déposer un fichier exemple sur cjoint.com et coller ici le lien fourni, ça permettra de travailler sur du concret
eric
PS : testé sur word 2003, pas d'erreur
Pour confirmer tu peux l'écrire en minuscule. S'il reste en minuscule c'est sûr qu'il ne le reconnait pas.
Il faudrait compléter le chemin du formulaire pour que vba le retrouve car ta procédure n'est pas dans le code du formulaire.
Je ne connais pas suffisamment vba word pour t'aider plus.
Sur excel ça donnerait :
Sub test() Dim ctl As Control 'Pour chaque contrôle du formulaire For Each ctl In UserForm1.Controls ' On verifie que le contrôle soit bien une zone de texte If TypeOf ctl Is MSForms.TextBox Then ctl.Locked = True End If Next ctl End Sub
Tu devrais déposer un fichier exemple sur cjoint.com et coller ici le lien fourni, ça permettra de travailler sur du concret
eric
PS : testé sur word 2003, pas d'erreur
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
29 mars 2012 à 11:32
29 mars 2012 à 11:32
Bonjour santadrix,
Merci pour les informations.
Eh oui la procédure d'eriiic (salutations) est basée sur l'utilisation d'un formulaire (UserForm) et en ouvrant votre fichier je constate que ce n'est pas le cas.
Pour l'instant je n'ai pas la solution ... !
Merci pour les informations.
Eh oui la procédure d'eriiic (salutations) est basée sur l'utilisation d'un formulaire (UserForm) et en ouvrant votre fichier je constate que ce n'est pas le cas.
Pour l'instant je n'ai pas la solution ... !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
29 mars 2012 à 12:09
29 mars 2012 à 12:09
Oui, je pensais à un formulaire qui s'ouvre, pas sur la page.
Déjà une chose de sûr, c'est que tu n'as pas mis les bons type d'objet. Il faut des contrôles activeX (sur 2003 : menu 'affichage / barre d'outils / 'boite à outils controles') si tu veux les contrôler avec vba.
Tu as utilisé les objets de la boite 'Formulaire'...
Je ne connais pas suffisament les objets de vba word pour t'aider plus.
Tu peux te rendre sur le site de m@rina où tu trouveras plein d'infos :
https://www.faqword.com/
Une fois que tu auras dégrossis tu pourras poser une nouvelle question ici, si tu précises bien word vba dans l'objet tu auras sûrement la chance qu'elle intervienne (ou d'autres connaissant le sujet)
eric
Déjà une chose de sûr, c'est que tu n'as pas mis les bons type d'objet. Il faut des contrôles activeX (sur 2003 : menu 'affichage / barre d'outils / 'boite à outils controles') si tu veux les contrôler avec vba.
Tu as utilisé les objets de la boite 'Formulaire'...
Je ne connais pas suffisament les objets de vba word pour t'aider plus.
Tu peux te rendre sur le site de m@rina où tu trouveras plein d'infos :
https://www.faqword.com/
Une fois que tu auras dégrossis tu pourras poser une nouvelle question ici, si tu précises bien word vba dans l'objet tu auras sûrement la chance qu'elle intervienne (ou d'autres connaissant le sujet)
eric
Et tiens ce ne sont des controls mais des objets...on vient de me le faire remarquer!!! Pardon ;)
Mais bon lorsque je change la macro et que j'utilise "Dim obj As OLEObject", j'ai le message erreur de compilation : Type défini par l'utilisateur non défini"
De nouvelles idées....?
Mais bon lorsque je change la macro et que j'utilise "Dim obj As OLEObject", j'ai le message erreur de compilation : Type défini par l'utilisateur non défini"
De nouvelles idées....?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
29 mars 2012 à 17:48
29 mars 2012 à 17:48
Relis tranquillement mon dernier post...
eric
eric
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
29 mars 2012 à 21:45
29 mars 2012 à 21:45
Bonjour santadrix,
C'est très bien, j'espère seulement que mon code va vous servir ...!
Pas trop sympa votre répnse à eriiic.
Salutations.
C'est très bien, j'espère seulement que mon code va vous servir ...!
Pas trop sympa votre répnse à eriiic.
Salutations.
Pardon pour ma réponse vis à vis d'Eric, ce n'était en rien négatif ou ironique ou tout effet de style similaire...je suis un peu pressé par le tps donc j'écris mes messages rapidement sans me relire. Je ferai attention les prochaines fois.
Merci de me l'avoir fait remarquer, toutes mes excuses Eric.
Merci de me l'avoir fait remarquer, toutes mes excuses Eric.
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
29 mars 2012 à 18:11
29 mars 2012 à 18:11
Bonjour santadrix,
Essayez cette procédure pour voir ..
Essayez cette procédure pour voir ..
Sub testlepingou() Dim mesctl As InlineShape For Each mesctl In ActiveDocument.InlineShapes ' contrôle du passage MsgBox ctl.OLEFormat.Object.Name Next mesctl End Sub
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
29 mars 2012 à 23:59
29 mars 2012 à 23:59
Bonjour,
Désolé il faut lire :
Salutations
Désolé il faut lire :
MsgBox mesctl.OLEFormat.Object.Name
Salutations
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
30 mars 2012 à 09:58
30 mars 2012 à 09:58
Bonjour,
Si vous voulez perdre moins de temps, alors utilisez ma procédure qui fonctionne correctement sur votre propre document. Il faut juste insérer la condition de votre choix.
Si vous voulez perdre moins de temps, alors utilisez ma procédure qui fonctionne correctement sur votre propre document. Il faut juste insérer la condition de votre choix.
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
30 mars 2012 à 11:10
30 mars 2012 à 11:10
Bonjour,
Eh bien, la condition c'est le [If .... Else ... Then] que vous devez introduire à la place de la [Msgbox....]
Salutations.
Eh bien, la condition c'est le [If .... Else ... Then] que vous devez introduire à la place de la [Msgbox....]
Salutations.
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
30 mars 2012 à 14:52
30 mars 2012 à 14:52
Bonjour,
Dommage, pourquoi ne pas préciser ce que vous voulez dire ?
Salutations.
Dommage, pourquoi ne pas préciser ce que vous voulez dire ?
Salutations.
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
30 mars 2012 à 15:23
30 mars 2012 à 15:23
Bonjour,
Comme ceci :
Comme ceci :
If Left(mesctl.OLEFormat.Object.Name, 7) = "TextBox" Then mesctl.OLEFormat.Object.Locked = True End If
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
Modifié par Le Pingou le 30/03/2012 à 15:50
Modifié par Le Pingou le 30/03/2012 à 15:50
Bonjour,
La fonction [Left] renvoie une valeur contenant le nombre indiqué de caractères d'une chaîne en partant de la gauche.
Comme la chaine est : TextBox1, les 7 premiers donnent : TextBox
Note : un petit regard sur l'aide (dans le code, sélectionner la fonction et ensuite [F1] et.... !
A une prochaine.
Salutations.
Le Pingou
La fonction [Left] renvoie une valeur contenant le nombre indiqué de caractères d'une chaîne en partant de la gauche.
Comme la chaine est : TextBox1, les 7 premiers donnent : TextBox
Note : un petit regard sur l'aide (dans le code, sélectionner la fonction et ensuite [F1] et.... !
A une prochaine.
Salutations.
Le Pingou
29 mars 2012 à 09:25
Et tout ça dans un doc Word 2007.
Est ce cela qu'il te fallait?
Merci pour le coup de main ;)