WORD Demande correction code VBA de macro qui buggue
Résolu/Fermé
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
-
Modifié le 17 sept. 2021 à 10:16
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 - 19 sept. 2021 à 11:39
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 - 19 sept. 2021 à 11:39
A voir également:
- WORD Demande correction code VBA de macro qui buggue
- Espace insécable word - Guide
- Supprimer une page word - Guide
- Organigramme word - Guide
- Code ascii de a - Guide
- Suivi des modifications word - Guide
9 réponses
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
17 sept. 2021 à 12:08
17 sept. 2021 à 12:08
bonjour,
le message indique qu'il y a autre chose ayant le nom "Remplacer", et que ce n'est pas autorisé.
renomme peut-être les deux occurrences de "Remplacer", en lignes 11 et 15.
le message indique qu'il y a autre chose ayant le nom "Remplacer", et que ce n'est pas autorisé.
renomme peut-être les deux occurrences de "Remplacer", en lignes 11 et 15.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
17 sept. 2021 à 12:12
17 sept. 2021 à 12:12
Bonjour,
Cette macro fonctionne jusqu'à présent.
Avec combien d'element dans le tableau?
Pourquoi la ligne de tableau est rose?
Cette macro fonctionne jusqu'à présent.
Avec combien d'element dans le tableau?
Pourquoi la ligne de tableau est rose?
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
17 sept. 2021 à 15:35
17 sept. 2021 à 15:35
Re,
Avec votre code de depart et en laissant seulement 238 elements dans le tableau, pas de probleme. Vous avez un office 64bits je suppose, perso 32 bits.
Si vous remplacez "Remplacer" cote procedure, faites le aussi pour l'appel de procedure
Avec votre code de depart et en laissant seulement 238 elements dans le tableau, pas de probleme. Vous avez un office 64bits je suppose, perso 32 bits.
Si vous remplacez "Remplacer" cote procedure, faites le aussi pour l'appel de procedure
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
17 sept. 2021 à 17:24
17 sept. 2021 à 17:24
Vous avez surement raison, mais dites moi ce que je dois faire SVP, le VBA m'est quasi inconnu. cote procedure ? appel de procedure ? Si vous me faisiez ça sur le code ça me redrait service, tout au moins me dire ce que je dois mettre à la place de Remplacer; Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
17 sept. 2021 à 17:48
17 sept. 2021 à 17:48
Je rajoute : Pourtant voici ci dessous ma macro "modèle" avec des mots clés différents, mais beaucoup moins, elle comporte 2 fois "remplacer" et elle fonctionne tout à fait, je viens de la tester à l'instant. Vous ne pensez pas que c'est un pb de nombre de mots ? Si c'est le cas, dois je faire plusieurs macro avec chacune une partie des mots clé ? Existe t il alors un moyen des les enchaîner pour ne faire qu'un seul code ?
Merci de m'aider pcq là je nage, je ne comprends pas pourquoi là ca fonctionne ici et pas avec celle qui me pose pb. Vous dites que le nb de mots n'est pas un pb ....
Sub Textesofficiels()
Dim lesMots() As Variant
Dim mot As Variant
lesMots = Array("convention", "déclaration", "pacte", "traité", "droit", "international", "charte", "conférence", "protocole", "facultatif", "manifeste", "article", "préambule", "introduction", "loi", "décret", "arrêté", "circulaire", "plate-forme", "plateforme", "sommet", "acte", "objectif", "résolution", "communication", "entrée", "vigueur", "sign", "ratif", "additif", "secrétaire", "général", "application", "exécution", "programme", "document", "orientation", "partenariat", "accomodation", "agenda", "rapport", "commission", "commissaire", "mesure", "plan", "action", "dispos", "UN", "ONU", "FAO", "UNESCO", "UNICEF", "WHO", "WORLDBANK", "BM", "OMS", "UNAID", "ONUSIDA", "BIT", "OIT", "UNWOMEN", "ONUFEMME", "PNUD", "UNDP", "HCT", "OCR", "FNUAP", "PNUE", "HI", " UE ")
For Each mot In lesMots
Remplacer mot
Next mot
End Sub
Sub Remplacer(ByVal LeTexte As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorRed
With Selection.Find
.Text = LeTexte
.Replacement.Text = LeTexte
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Merci de m'aider pcq là je nage, je ne comprends pas pourquoi là ca fonctionne ici et pas avec celle qui me pose pb. Vous dites que le nb de mots n'est pas un pb ....
Sub Textesofficiels()
Dim lesMots() As Variant
Dim mot As Variant
lesMots = Array("convention", "déclaration", "pacte", "traité", "droit", "international", "charte", "conférence", "protocole", "facultatif", "manifeste", "article", "préambule", "introduction", "loi", "décret", "arrêté", "circulaire", "plate-forme", "plateforme", "sommet", "acte", "objectif", "résolution", "communication", "entrée", "vigueur", "sign", "ratif", "additif", "secrétaire", "général", "application", "exécution", "programme", "document", "orientation", "partenariat", "accomodation", "agenda", "rapport", "commission", "commissaire", "mesure", "plan", "action", "dispos", "UN", "ONU", "FAO", "UNESCO", "UNICEF", "WHO", "WORLDBANK", "BM", "OMS", "UNAID", "ONUSIDA", "BIT", "OIT", "UNWOMEN", "ONUFEMME", "PNUD", "UNDP", "HCT", "OCR", "FNUAP", "PNUE", "HI", " UE ")
For Each mot In lesMots
Remplacer mot
Next mot
End Sub
Sub Remplacer(ByVal LeTexte As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorRed
With Selection.Find
.Text = LeTexte
.Replacement.Text = LeTexte
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
17 sept. 2021 à 18:01
17 sept. 2021 à 18:01
se pourrait-il que tu ne nous montres qu'une partie de ton code, et que tu aies plusieurs fois
moins tu connais, plus tu dois nous montrer!
Sub Remplacer(ByVal LeTexte As String)dans le même module?
moins tu connais, plus tu dois nous montrer!
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
>
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
17 sept. 2021 à 19:56
17 sept. 2021 à 19:56
Merci, non pas du tout voila ci-dessous mon code complet avec mes 268 mots, de même que je montre ci dessus celui qui me sert de modèle et qui fonctionne lui (Sub Textesofficiels). Ce sont exactement les mêmes et je ne m'explique pas pourquoi Sub ProjetDj() buggue.
Par contre oui, comme j'ai toutes mes macro dans le même module, il y a forcément d'autres Sub Remplacer(ByVal LeTexte As String) dont celui ci ci-dessus (Sub Textesofficiels)
Ca aurait une incidence ?
Sub ProjetDj()
Dim lesMots() As Variant
Dim mot As Variant
lesMots = Array("abandon", "accept", "accès", "accr", "achev", "acteur", "administra", "adopt", "AIV", "agence", "ajuste", "amélior", "analys", "analyse", "ann", "annex", "annuel", "appliq", "apprenti", "apprentissage", "approb", "approuv", "appui", "arabe", "assur", "assurance", "atelier", "attein", "audit", "augment", "béneficiaire", "besoin", "brut", "cadr", "calcul", "centr", "chiffre", "class", "classe", "collabor", "collecte", "comment", "communauté", "communi", "compéten", "conclu", "confirm", "connaissance", , "conseil", "construction", "consult", "continu", "contract", "contrainte", "contrôle", "conv", "convenu","corrige", "cour", "curricul", "cycle", "décaiss", "défi", "défini", "définition", "délais", "demand", "détail", "développ", "diffic", "diminu", "disciplin", "discipline", "discuss", "diverge", "diversification", "document", "donnée", "durée", "dys", "échantillon", "école", "éducatif", "éducation", "efficace", "efficient", "élabor", "élarg", "élève", "emplacement", "encadr", "ENS", "enseign", "environnement", "équit", "établissement", "étudiant", "éval", "exact", "exam", "exécut", "exist", "expérience", "expert", "faible", "faisab", "femme", "fiab", "fille", "final", "flux", "focus", "fondamental", "form", "formul", "formule", "français", "fréquence", "général", "genre", "géographi", "gestion", "group", "handicap", "identifiant", "ILD", "impliq", "inclu", "incri", "indépendant", "indic", "infirm", "inform", "infrastructure", "initi", "inopiné", "intégration", "inval", "justif", "lacune", "langue", "lien", "list", "livr", "local", "logistique", "loi", "maint", "maintenance", "mathématique", "matrice", "max", "mécanisme", "MENFOP", "mesur", "méthod", "mini", "mis", "mise", "mission", "modalité", "module", "moyen", "nive", "norm", "note", "nouvel", "novateur", "objectif" , "observ", "obt", "œuvre", "officie", "offre", "opportunité", "OTI", "outil", "paiement", "parité", "part", "partenaire", "partenariat", "parti", "particip", "pédagog", "person", "pertin", "phys", "pièce", "pilot", "plan", "politique", "ponctuel", "porteur", "pourcentage", "prati", "pratique", "précis", "préliminaire", "prenant", "préscolaire", "preuve", "primaire", "priorité", "priv", "profession", "programm", "proje", "promo", "protocole", "prouv", "publi", "qualité", "question", "rapport", "réalis", "recommand", "recueil", "redoubl", "référence", "réfug", "région", "registre", "renforcement", "renseign", "respect", "responsab", "résult", "rétention", "revendi", "révis", "scénario", "scol", "scolaris", "sélection", "session", "seuil", "sex", "significati", "site", "source", "statistique", "statut", "structur", "suiv", "supervis", "supplément", "surveil", "systém", "tableau", "taux", "techno", "terme", "terrain", "test", "TICE", "tranche", "universel", "variable", "ventil", "vérifi", "visite", "vulnérable")
For Each mot In lesMots
Remplacer mot
Next mot
End Sub
Sub Remplacer(ByVal LeTexte As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorRed
With Selection.Find
.Text = LeTexte
.Replacement.Text = LeTexte
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Par contre oui, comme j'ai toutes mes macro dans le même module, il y a forcément d'autres Sub Remplacer(ByVal LeTexte As String) dont celui ci ci-dessus (Sub Textesofficiels)
Ca aurait une incidence ?
Sub ProjetDj()
Dim lesMots() As Variant
Dim mot As Variant
lesMots = Array("abandon", "accept", "accès", "accr", "achev", "acteur", "administra", "adopt", "AIV", "agence", "ajuste", "amélior", "analys", "analyse", "ann", "annex", "annuel", "appliq", "apprenti", "apprentissage", "approb", "approuv", "appui", "arabe", "assur", "assurance", "atelier", "attein", "audit", "augment", "béneficiaire", "besoin", "brut", "cadr", "calcul", "centr", "chiffre", "class", "classe", "collabor", "collecte", "comment", "communauté", "communi", "compéten", "conclu", "confirm", "connaissance", , "conseil", "construction", "consult", "continu", "contract", "contrainte", "contrôle", "conv", "convenu","corrige", "cour", "curricul", "cycle", "décaiss", "défi", "défini", "définition", "délais", "demand", "détail", "développ", "diffic", "diminu", "disciplin", "discipline", "discuss", "diverge", "diversification", "document", "donnée", "durée", "dys", "échantillon", "école", "éducatif", "éducation", "efficace", "efficient", "élabor", "élarg", "élève", "emplacement", "encadr", "ENS", "enseign", "environnement", "équit", "établissement", "étudiant", "éval", "exact", "exam", "exécut", "exist", "expérience", "expert", "faible", "faisab", "femme", "fiab", "fille", "final", "flux", "focus", "fondamental", "form", "formul", "formule", "français", "fréquence", "général", "genre", "géographi", "gestion", "group", "handicap", "identifiant", "ILD", "impliq", "inclu", "incri", "indépendant", "indic", "infirm", "inform", "infrastructure", "initi", "inopiné", "intégration", "inval", "justif", "lacune", "langue", "lien", "list", "livr", "local", "logistique", "loi", "maint", "maintenance", "mathématique", "matrice", "max", "mécanisme", "MENFOP", "mesur", "méthod", "mini", "mis", "mise", "mission", "modalité", "module", "moyen", "nive", "norm", "note", "nouvel", "novateur", "objectif" , "observ", "obt", "œuvre", "officie", "offre", "opportunité", "OTI", "outil", "paiement", "parité", "part", "partenaire", "partenariat", "parti", "particip", "pédagog", "person", "pertin", "phys", "pièce", "pilot", "plan", "politique", "ponctuel", "porteur", "pourcentage", "prati", "pratique", "précis", "préliminaire", "prenant", "préscolaire", "preuve", "primaire", "priorité", "priv", "profession", "programm", "proje", "promo", "protocole", "prouv", "publi", "qualité", "question", "rapport", "réalis", "recommand", "recueil", "redoubl", "référence", "réfug", "région", "registre", "renforcement", "renseign", "respect", "responsab", "résult", "rétention", "revendi", "révis", "scénario", "scol", "scolaris", "sélection", "session", "seuil", "sex", "significati", "site", "source", "statistique", "statut", "structur", "suiv", "supervis", "supplément", "surveil", "systém", "tableau", "taux", "techno", "terme", "terrain", "test", "TICE", "tranche", "universel", "variable", "ventil", "vérifi", "visite", "vulnérable")
For Each mot In lesMots
Remplacer mot
Next mot
End Sub
Sub Remplacer(ByVal LeTexte As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorRed
With Selection.Find
.Text = LeTexte
.Replacement.Text = LeTexte
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
>
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
17 sept. 2021 à 20:20
17 sept. 2021 à 20:20
pour faire suite, j'ai collé mon code dans un nouveau module en lui donnant un autre nom, il se passe exactement la mêmee chose
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
17 sept. 2021 à 20:39
17 sept. 2021 à 20:39
as-tu appliqué ma suggestion en #7?
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
17 sept. 2021 à 20:43
17 sept. 2021 à 20:43
comment s'appele le module?
je pense que le moment est venu de partager ton fichier.
je pense que le moment est venu de partager ton fichier.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
17 sept. 2021 à 18:15
17 sept. 2021 à 18:15
Re,
code post <8>, vous avez 69 elements
perso, le max que j'ai pu mettre c'est 238 car le VBA averti que la longueur maxi de la ligne est atteinte
Si votre Office est un 64bits, je ne sais pas si vous pourrez depasser ce nombre
Pour verifier, faites des renvois a la ligne comme ceci avec votre variable de votre premiere demande
code post <8>, vous avez 69 elements
perso, le max que j'ai pu mettre c'est 238 car le VBA averti que la longueur maxi de la ligne est atteinte
Si votre Office est un 64bits, je ne sais pas si vous pourrez depasser ce nombre
Pour verifier, faites des renvois a la ligne comme ceci avec votre variable de votre premiere demande
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
17 sept. 2021 à 20:11
17 sept. 2021 à 20:11
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
17 sept. 2021 à 20:31
17 sept. 2021 à 20:31
Re,
Regardez attentivement ce qu'il y a à la fin de chaque ligne dans l'image que j'ai mise
Regardez attentivement ce qu'il y a à la fin de chaque ligne dans l'image que j'ai mise
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
18 sept. 2021 à 10:02
18 sept. 2021 à 10:02
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
>
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
18 sept. 2021 à 10:33
18 sept. 2021 à 10:33
Bonjour,
Comme demande par yg_be, pouvez vous mettre votre fichier a dispo
Ce qui me tracasse, c'est la couleur rose de votre ligne array, comme si elle n''est pas valide
Vous n'avez toujours pas repondu sur votre version Office: 32bits ou 64bits
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
www.transfernow.net 'fichier jusqu'a 4G
Comme demande par yg_be, pouvez vous mettre votre fichier a dispo
Ce qui me tracasse, c'est la couleur rose de votre ligne array, comme si elle n''est pas valide
Vous n'avez toujours pas repondu sur votre version Office: 32bits ou 64bits
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
www.transfernow.net 'fichier jusqu'a 4G
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
>
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
18 sept. 2021 à 10:51
18 sept. 2021 à 10:51
Re, CJOINT / https://www.cjoint.com/c/KIsiV1aCwKw
Je suis en Office 64 bits
pas de confidentialité c'est un rapport officiel de la BM que j'utilise pour faire des essais sur un texte long
Cordialement.
Je suis en Office 64 bits
pas de confidentialité c'est un rapport officiel de la BM que j'utilise pour faire des essais sur un texte long
Cordialement.
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
18 sept. 2021 à 13:05
18 sept. 2021 à 13:05
le code VBA n'est pas dans ce fichier, il est probablement dans le fichier normal.dotm
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
>
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
18 sept. 2021 à 18:42
18 sept. 2021 à 18:42
Solution ! .. enfin presque.
Merci à vous deux pour toute votre aide et votre patience.
En fait en prenant toutes vos remarques en compte, j'ai bricolé ainsi : j'ai divisé en 4 en gros mes 268 mots, (70 mots en gros), j'ai fait 4 macros Sub ProjDj1, 2, 3, et 4 (visibles dans la liste des macro) sur le modèle sub Textesofficiels dont je savais qu'il fonctionnait, j'ai collé chacun de ces 1/4 dans chaque lesMots=Array, mais chacune en insérant chaque fois un module différent (pcq sur un même module effectivement le problème "Remplacer" réapparait) et ... ça marche, les 4 macros se déroulent bien les unes après les autres. Je l'ai fait sur plusieurs word différents et sur ce fichier contrôle :
https://www.cjoint.com/c/KIsqzt8ijTw
C'était donc à la base un problème de nombre de mots, enfin en partie au moins.
Il n'en reste pas moins que ce bricolage m'oblige à relancer sur un même fichier 4 macro différentes. Est ce que vous avez une idée pour n'en faire qu'une seule ? ce qui conduirait à reconsidérer le pb du "Remplacer", et puis ca ne me parait pas très catholique d'ouvrir chaque fois un module différent, mais bon vous m'avez déjà bien amené à faire un truc qui fonctionne et qui me rend service pour mon boulot de consultant.
Merci à vous deux pour toute votre aide et votre patience.
En fait en prenant toutes vos remarques en compte, j'ai bricolé ainsi : j'ai divisé en 4 en gros mes 268 mots, (70 mots en gros), j'ai fait 4 macros Sub ProjDj1, 2, 3, et 4 (visibles dans la liste des macro) sur le modèle sub Textesofficiels dont je savais qu'il fonctionnait, j'ai collé chacun de ces 1/4 dans chaque lesMots=Array, mais chacune en insérant chaque fois un module différent (pcq sur un même module effectivement le problème "Remplacer" réapparait) et ... ça marche, les 4 macros se déroulent bien les unes après les autres. Je l'ai fait sur plusieurs word différents et sur ce fichier contrôle :
https://www.cjoint.com/c/KIsqzt8ijTw
C'était donc à la base un problème de nombre de mots, enfin en partie au moins.
Il n'en reste pas moins que ce bricolage m'oblige à relancer sur un même fichier 4 macro différentes. Est ce que vous avez une idée pour n'en faire qu'une seule ? ce qui conduirait à reconsidérer le pb du "Remplacer", et puis ca ne me parait pas très catholique d'ouvrir chaque fois un module différent, mais bon vous m'avez déjà bien amené à faire un truc qui fonctionne et qui me rend service pour mon boulot de consultant.
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
18 sept. 2021 à 17:32
18 sept. 2021 à 17:32
Re, j'avoue que je ne comprends strictement rien : pourquoi Sub Textesofficiels() qui se trouve à la réponse5/7, que j'ai copié, supprimé, recollé dans un autre module et testé sur ce nouveau fichier :
https://www.cjoint.com/c/KIsptrA2htw
fonctionne parfaitement, (vous pouvez tester aussi Sub Textesofficiels() est dans la liste des macro), et pourquoi Sub ProjetDj() construite exactement sur le même modèle, dasn un module différent, je n'y ai changé que les mots dans lesMots = Array, bogue. C'est vrai que les mots apparaissent en rouge sans que je comprenne pourquoi, et où il dénote une erreur de syntaxe alors que la syntaxe me parait correcte (et avant même de parler du "Remplacer" qui lui pose problème aussi).
c'est pourtant sur Sub ProjetDj() qu'il me faut trouver une solution.
Continuez de m'aider SVP sachant que VBA pour moi c'est du chinois
https://www.cjoint.com/c/KIsptrA2htw
fonctionne parfaitement, (vous pouvez tester aussi Sub Textesofficiels() est dans la liste des macro), et pourquoi Sub ProjetDj() construite exactement sur le même modèle, dasn un module différent, je n'y ai changé que les mots dans lesMots = Array, bogue. C'est vrai que les mots apparaissent en rouge sans que je comprenne pourquoi, et où il dénote une erreur de syntaxe alors que la syntaxe me parait correcte (et avant même de parler du "Remplacer" qui lui pose problème aussi).
c'est pourtant sur Sub ProjetDj() qu'il me faut trouver une solution.
Continuez de m'aider SVP sachant que VBA pour moi c'est du chinois
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
18 sept. 2021 à 18:20
18 sept. 2021 à 18:20
essaie de créer des modules dans le fichier lui-même, pas dans "normal".
FVR812
Messages postés
109
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
31 mars 2024
2
19 sept. 2021 à 11:33
19 sept. 2021 à 11:33
SOLUTION 2 : Bonjour, j'ai continué à fouiller le pb et réussi à mettre tous mes 268 mots dans un seul code (module séparé naturellement) : il faut répéter à chaque portion lesMots=Array(.....
Pour l'instant je ne sais pas à combien se limite chaque portion, moi j'étais aux alentours de 70; Si quelqu'un sait ça m'intéresse. Merci à vous 2 !
Sub ProjDj268()
Dim lesMots() As Variant
Dim mot As Variant
lesMots = Array("abandon", "accept", "accès", "accr", "achev", "acteur", "administra", "adopt", "AIV", "agence", "ajuste", "amélior", "analys", "analyse", "ann", "annex", "annuel", "appliq", "apprenti", "apprentissage", "approb", "approuv", "appui", "arabe", "assur", "assurance", "atelier", "attein", "audit", "augment", "béneficiaire", "besoin", "brut", "cadr", "calcul", "centr", "chiffre", "class", "classe", "collabor", "collecte", "comment", "communauté", "communi", "compéten", "conclu", "confirm", "connaissance", "conseil", "construction", "consult", "continu", "contract", "contrainte", "contrôle", "conv", "convenu", "corrige", "cour", "curricul", "cycle", "décaiss", "défi", "défini", "définition", "délais", "demand", "détail", "développ", "diffic")
lesMots = Array("diminu", "disciplin", "discipline", "discuss", "diverge", "diversification", "document", "donnée", "durée", "dys", "échantillon", "école", "éducatif", "éducation", "efficace", "efficient", "élabor", "élarg", "élève", "emplacement", "encadr", "ENS", "enseign", "environnement", "équit", "établissement", "étudiant", "éval", "exact", "exam", "exécut", "exist", "expérience", "expert", "faible", "faisab", "femme", "fiab", "fille", "final", "flux", "focus", "fondamental", "form", "formul", "formule", "français", "fréquence", "général", "genre", "géographi", "gestion", "group", "handicap", "identifiant", "ILD", "impliq", "inclu", "incri", "indépendant", "indic", "infirm", "inform", "infrastructure", "initi", "inopiné", "intégration", "inval")
lesMots = Array("justif", "lacune", "langue", "lien", "list", "livr", "local", "logistique", "loi", "maint", "maintenance", "mathématique", "matrice", "max", "mécanisme", "MENFOP", "mesur", "méthod", "mini", "mis", "mise", "mission", "modalité", "module", "moyen", "nive", "norm", "note", "nouvel", "novateur", "objectif", "observ", "obt", "œuvre", "officie", "offre", "opportunité", "OTI", "outil", "paiement", "parité", "part", "partenaire", "partenariat", "parti", "particip", "pédagog", "person", "pertin", "phys", "pièce", "pilot", "plan", "politique", "ponctuel", "porteur", "pourcentage", "prati", "pratique", "précis", "préliminaire", "prenant", "préscolaire", "preuve", "primaire")
lesMots = Array("priorité", "priv", "profession", "programm", "proje", "promo", "protocole", "prouv", "publi", "qualité", "question", "rapport", "réalis", "recommand", "recueil", "redoubl", "référence", "réfug", "région", "registre", "renforcement", "renseign", "respect", "responsab", "résult", "rétention", "revendi", "révis", "scénario", "scol", "scolaris", "sélection", "session", "seuil", "sex", "significati", "site", "source", "statistique", "statut", "structur", "suiv", "supervis", "supplément", "surveil", "systém", "tableau", "taux", "techno", "terme", "terrain", "test", "TICE", "tranche", "universel", "variable", "ventil", "vérifi", "visite", "vulnérable")
For Each mot In lesMots
Remplacer mot
Next mot
End Sub
Sub Remplacer(ByVal LeTexte As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorRed
With Selection.Find
.Text = LeTexte
.Replacement.Text = LeTexte
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Pour l'instant je ne sais pas à combien se limite chaque portion, moi j'étais aux alentours de 70; Si quelqu'un sait ça m'intéresse. Merci à vous 2 !
Sub ProjDj268()
Dim lesMots() As Variant
Dim mot As Variant
lesMots = Array("abandon", "accept", "accès", "accr", "achev", "acteur", "administra", "adopt", "AIV", "agence", "ajuste", "amélior", "analys", "analyse", "ann", "annex", "annuel", "appliq", "apprenti", "apprentissage", "approb", "approuv", "appui", "arabe", "assur", "assurance", "atelier", "attein", "audit", "augment", "béneficiaire", "besoin", "brut", "cadr", "calcul", "centr", "chiffre", "class", "classe", "collabor", "collecte", "comment", "communauté", "communi", "compéten", "conclu", "confirm", "connaissance", "conseil", "construction", "consult", "continu", "contract", "contrainte", "contrôle", "conv", "convenu", "corrige", "cour", "curricul", "cycle", "décaiss", "défi", "défini", "définition", "délais", "demand", "détail", "développ", "diffic")
lesMots = Array("diminu", "disciplin", "discipline", "discuss", "diverge", "diversification", "document", "donnée", "durée", "dys", "échantillon", "école", "éducatif", "éducation", "efficace", "efficient", "élabor", "élarg", "élève", "emplacement", "encadr", "ENS", "enseign", "environnement", "équit", "établissement", "étudiant", "éval", "exact", "exam", "exécut", "exist", "expérience", "expert", "faible", "faisab", "femme", "fiab", "fille", "final", "flux", "focus", "fondamental", "form", "formul", "formule", "français", "fréquence", "général", "genre", "géographi", "gestion", "group", "handicap", "identifiant", "ILD", "impliq", "inclu", "incri", "indépendant", "indic", "infirm", "inform", "infrastructure", "initi", "inopiné", "intégration", "inval")
lesMots = Array("justif", "lacune", "langue", "lien", "list", "livr", "local", "logistique", "loi", "maint", "maintenance", "mathématique", "matrice", "max", "mécanisme", "MENFOP", "mesur", "méthod", "mini", "mis", "mise", "mission", "modalité", "module", "moyen", "nive", "norm", "note", "nouvel", "novateur", "objectif", "observ", "obt", "œuvre", "officie", "offre", "opportunité", "OTI", "outil", "paiement", "parité", "part", "partenaire", "partenariat", "parti", "particip", "pédagog", "person", "pertin", "phys", "pièce", "pilot", "plan", "politique", "ponctuel", "porteur", "pourcentage", "prati", "pratique", "précis", "préliminaire", "prenant", "préscolaire", "preuve", "primaire")
lesMots = Array("priorité", "priv", "profession", "programm", "proje", "promo", "protocole", "prouv", "publi", "qualité", "question", "rapport", "réalis", "recommand", "recueil", "redoubl", "référence", "réfug", "région", "registre", "renforcement", "renseign", "respect", "responsab", "résult", "rétention", "revendi", "révis", "scénario", "scol", "scolaris", "sélection", "session", "seuil", "sex", "significati", "site", "source", "statistique", "statut", "structur", "suiv", "supervis", "supplément", "surveil", "systém", "tableau", "taux", "techno", "terme", "terrain", "test", "TICE", "tranche", "universel", "variable", "ventil", "vérifi", "visite", "vulnérable")
For Each mot In lesMots
Remplacer mot
Next mot
End Sub
Sub Remplacer(ByVal LeTexte As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorRed
With Selection.Find
.Text = LeTexte
.Replacement.Text = LeTexte
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
19 sept. 2021 à 11:39
19 sept. 2021 à 11:39
j'ai m'impression que tu ne tiens aucun compte de ce que nous t'expliquons.
Modifié le 17 sept. 2021 à 13:53
merci si tu trouves la solution
17 sept. 2021 à 14:43
17 sept. 2021 à 17:31