Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1505 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Visual Basic : repeter une action jusque...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Visual Basic : repeter une action jusque...

n°293058
El Tristo
I'm no superman
Posté le 24-01-2003 à 09:53:05  profilanswer
 

je souhaite faire une macro sous Word qui fasse une recherche sur un mot et une fois qu'il est trouve, rajoute un truc (ce n'est pas un remplacement).
 
Bref, je voudrais repeter la requete jusqu'a atteindre le document, je ne sais comment ecrire la boucle Do... Loop
 
(ma macro tourne en boucle et je suis oblige de tuer l'application pour en sortir :sweat:)
 
Merci !


---------------
I fart in your general direction
mood
Publicité
Posté le 24-01-2003 à 09:53:05  profilanswer
 

n°293176
amsterdam
Posté le 24-01-2003 à 11:25:08  profilanswer
 

C'est peut etre que ta condition de fin de boucle ne peut jamais etre remplie.

n°293194
Loom the G​loom
Even coders get the blues...
Posté le 24-01-2003 à 11:28:44  profilanswer
 

El Tristo a écrit :

je souhaite faire une macro sous Word qui fasse une recherche sur un mot et une fois qu'il est trouve, rajoute un truc (ce n'est pas un remplacement).
 
Bref, je voudrais repeter la requete jusqu'a atteindre le document, je ne sais comment ecrire la boucle Do... Loop
 
(ma macro tourne en boucle et je suis oblige de tuer l'application pour en sortir :sweat:)
 
Merci !


 
poste peut être ta boucle histoire de voir


---------------
Music|Market|Feed|Loom|DVD
n°293202
amsterdam
Posté le 24-01-2003 à 11:31:32  profilanswer
 

Je n'osai le demeder.

n°293261
El Tristo
I'm no superman
Posté le 24-01-2003 à 12:32:41  profilanswer
 

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 24/01/2003 by Tristo
'
Dim Compteur As Integer
 
Compteur = 1
 
Do
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "Test #:"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.TypeText Text:="FU" + Format(Compteur, "000" )
    Compteur = Compteur + 1
Loop
 
End Sub


 
voila  :whistle:


---------------
I fart in your general direction
n°293278
Loom the G​loom
Even coders get the blues...
Posté le 24-01-2003 à 13:09:15  profilanswer
 

El Tristo a écrit :

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 24/01/2003 by Tristo
'
Dim Compteur As Integer
 
Compteur = 1
 
Do
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "Test #:"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.TypeText Text:="FU" + Format(Compteur, "000" )
    Compteur = Compteur + 1
Loop
 
End Sub


 
voila  :whistle:  


 
euh... elle est où ta condition d'arret ?


---------------
Music|Market|Feed|Loom|DVD
n°293280
El Tristo
I'm no superman
Posté le 24-01-2003 à 13:12:16  profilanswer
 

Loom the gloom a écrit :


 
euh... elle est où ta condition d'arret ?


 
ben c'est la le probleme, j'aimerais savoir comment poser comme condition d'arret la fin du document ;)
 


---------------
I fart in your general direction
n°293411
Carbon_14
Posté le 24-01-2003 à 15:48:36  profilanswer
 

Dans certains basiques, y a  
 
do
 
loop while (condition_qui_fait_continuer)
 
ou
 
do
 
loop until(condition_qui_fait_quitter)
 
voire un exit do en cours de code pour sortir du tourbillon infini.
 
Faudrait savoir ce qui provoquera l'arrêt : fin de texte, de sélection, erreur "système" genre "y a plus de caractères".
 
Si y a moyen de savoir avant entrée ds la boucle la taille (nb de caractères) de la sélection, on peut alors comparer à Compteur ?


Message édité par Carbon_14 le 24-01-2003 à 15:50:30
n°293418
nur
Posté le 24-01-2003 à 16:00:20  profilanswer
 

El Tristo a écrit :


 
ben c'est la le probleme, j'aimerais savoir comment poser comme condition d'arret la fin du document ;)
 
 

tu fais un goto:
 
do
if condition realisé goto sortie
...
loop
 
:sortie

n°293588
El Tristo
I'm no superman
Posté le 24-01-2003 à 19:21:47  profilanswer
 

merci les copains, mais justement c'est la condition de sortie que je cherche :fou: :o :D
 

Citation :

ben c'est la le probleme, j'aimerais savoir comment poser comme condition d'arret la fin du document ;)


---------------
I fart in your general direction
mood
Publicité
Posté le 24-01-2003 à 19:21:47  profilanswer
 

n°293608
amsterdam
Posté le 24-01-2003 à 20:33:44  profilanswer
 

Si ce n'est pas un remplacement ou est ce que tu veut mettre le "truc".
Est ce qu'il y a plusieurs fois le meme mot à chercher dans ton texte.
Une fois que tu l'as touvé tu met ton compteur à 1 et tu fait ta modif.
Si il y est plusieurs fois tu peut peut etre faire ligne par ligne.
 
ps:La condition d'arret il n'y a que toi qui peut la connaitre.
Mais pour ex si tu arrive à la fin du document et que tu as trouvé tous les exemplaires de ta chaine dans ton document tu peut penser à quitter ta boucle.


Message édité par amsterdam le 24-01-2003 à 20:47:24
n°293658
El Tristo
I'm no superman
Posté le 24-01-2003 à 22:32:46  profilanswer
 

amsterdam a écrit :

Si ce n'est pas un remplacement ou est ce que tu veut mettre le "truc".
Est ce qu'il y a plusieurs fois le meme mot à chercher dans ton texte.
Une fois que tu l'as touvé tu met ton compteur à 1 et tu fait ta modif.
Si il y est plusieurs fois tu peut peut etre faire ligne par ligne.
 
ps:La condition d'arret il n'y a que toi qui peut la connaitre.
Mais pour ex si tu arrive à la fin du document et que tu as trouvé tous les exemplaires de ta chaine dans ton document tu peut penser à quitter ta boucle.


 
ma condition d'arret, c'est : une fois que j'ai atteint la fin du document.
La question est : comment le coder dans ma macro ?
 
(j'ai un fichier de 50 pages de cas de tests que je dois numeroter, et je souhaite le faire de facon automatique)


---------------
I fart in your general direction
n°293661
Carbon_14
Posté le 24-01-2003 à 22:34:33  profilanswer
 

La fonction  Selection.Find.Execute ne retourne pas de valeur de retour ? Pourrait dire : y a plus rien.
 
J'y connais rien, mais Selection.Find.ClearFormatting devrait pas être hors boucle do ?
 
Y a pas une fonction qui permettrait de savoir si fin de document atteinte ? (genre EndOfDocument, ou qq chose du même style).
 
NB : je ne connais pas VBA d'Office (car je l'ai pas, trop cher) => ce ne sont que des suggestions. :)


Message édité par Carbon_14 le 24-01-2003 à 22:36:41
n°293664
El Tristo
I'm no superman
Posté le 24-01-2003 à 22:39:46  profilanswer
 

CARBON_14 a écrit :

La fonction  Selection.Find.Execute ne retourne pas de valeur de retour ? Pourrait dire : y a plus rien.
 
J'y connais rien, mais Selection.Find.ClearFormatting devrait pas être hors boucle do ?
 
Y a pas une fonction qui permettrait de savoir si fin de document atteinte ? (genre EndOfDocument, ou qq chose du même style).
 
NB : je ne connais pas VBA d'Office (car je l'ai pas, trop cher) => ce ne sont que des suggestions. :)  


 
je connais encore moins que toi :/
Il existe une fonction EOF, mais ca marche si j'ouvre le document avant au moyen d'une autre fonction, et ca devient compliqué, y a plusieurs modes d'ouverture :sweat:
 
En fait ce qu'il se passe, c'est que la macro tourne trop bien : une fois arrivée à la fin du document, elle recommence depuis le début, indéfiniment :fou:


---------------
I fart in your general direction
n°293722
Loom the G​loom
Even coders get the blues...
Posté le 25-01-2003 à 01:24:39  profilanswer
 

comme ça sans réfléchir :  
si tu vire ton compteur et que tu remplace le do...loop par un while not (tondocument).eof....Wend
 
 
ça pourrait marcher
dis moi si je me trompe


Message édité par Loom the Gloom le 25-01-2003 à 01:24:58

---------------
Music|Market|Feed|Loom|DVD
n°293745
El Tristo
I'm no superman
Posté le 25-01-2003 à 13:54:15  profilanswer
 

Loom the gloom a écrit :

comme ça sans réfléchir :  
si tu vire ton compteur et que tu remplace le do...loop par un while not (tondocument).eof....Wend
 
 
ça pourrait marcher
dis moi si je me trompe


 
oki, j'essayerai lundi et je te dis ca :d


---------------
I fart in your general direction
n°294675
El Tristo
I'm no superman
Posté le 27-01-2003 à 10:46:56  profilanswer
 

Loom the gloom a écrit :

comme ça sans réfléchir :  
si tu vire ton compteur et que tu remplace le do...loop par un while not (tondocument).eof....Wend
 
 
ça pourrait marcher
dis moi si je me trompe


 
ca marche pas [:ruisseau de larmes]
ThisDocument.eof n'existe pas :fou:
 
c'est de la merde en barre VBA [:toad666]


---------------
I fart in your general direction

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Visual Basic : repeter une action jusque...

 

Sujets relatifs
Visual basique 6 et barres de defilementUrgent... .Text dans Visual Basic 6.0
Probleme Visual StduioSource control avec Visual Studio .NET
MFC Visual C++ et Excel[vb] lancer l'impression d'un état d'access 97 par visual basic ?
comment faire pour changer de jdk sous visual age ??? urgentC++ -> Visual C++
Plus de sujets relatifs à : Visual Basic : repeter une action jusque...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR