OVH Cloud OVH Cloud

macro qui ne boucle pas

5 réponses
Avatar
bertrouf
Bonjour,
J'ai une base de 4000 photos avec uniquement des noms à 5 chiffres. (exemple
: 64055.jpg)
J'ai par ailleurs (un copier collé d'une query de ma base d'articles) un
tableau word avec les numéros des articles et leur nom.
Je voudrais regrouper les 2 sur une seule édition pour avoir toutes les
photos avec leur nom au-dessus dans un seul catalogue.
J'ai donc tapoté cette macro, qui fonctionne pour insérer une photo, mais
qui refuse d'insérer la deuxième photo. Elle s'arrete au deuxième tour au
niveau de l'*.

J'avoue qu'elle n'est pas très belle, en particulier dans le déplacement de
curseur, mais c'est une macro enregistrée.
PS : la base photo est sur le lecteur réseau V:\

Est-ce que quelqu'un peut de débloquer ça ?
Merci d'avance.
Bertrand

---------------------------------------
Sub Inserer()
'
'
A = 1 'Variable photo
B = 1 'Chemin
'
'---
Do While A <> ""
Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
Selection.Copy
A = Selection.Text
B = "V:\" + A + ".jpg"
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.InsertRows 1
Selection.Collapse Direction:=wdCollapseStart
* Selection.InlineShapes.AddPicture FileName:=B, LinkToFile:=False,
SaveWithDocument:=True
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=5
Loop
'---
'
End Sub

5 réponses

Avatar
Geo

C'est pas de chance, d'habitude on râle parce que ça boucle !

Avez-vous regardé ce que vous récupérez ici :
A = Selection.Text


dans une image il n'y a pas grand'chose comme texte.

Puisque vous semblez débuter :
Affichez les fenêtres d'exécution et de variables.

mettez des debug.print, ça vous aide à comprendre ce qui se passe.
Mettez des points d'arrêt et regardez ce qu'il y a dans la fenêtre des
variables.

Amha un debug.print "A= " & a doit renvoyer une chaîne vide et la macro
s'arrête.

Il manque un Dir() dans votre boucle, non ?
Plutôt à la place du a=selection.text et de l'instruction qui suit,
mais il faut l'initialiser.
Pi je ne vois pas quand vous accédez à vos autres images.
J'ai la vague impression que vous allez recopier la première image un
certain nombre de fois.

--
A+

Avatar
bertrouf
Merci de vos pistes.
Je récupère le texte dans la case qui contient le numéro de la photo. (Un
texte)
Ensuite j'insère une ligne, puis j'insère la photo qui porte ce numéro.
Je vais à la ligne, je récupère le texte de la case suivante, j'insère une
ligne, etc.
J'ai trouvé le problème, la macro cherchait une photo qui n'existe pas parce
que sur la seconde boucle, je ne récupérais que les 4 derniers chiffres. Je
l'avais présenti, c'était un problème de déplacement de curseur.
Il faut que je sorte de la boucle s'il n'y a pas de photo correspondante.

Par contre maintenant, j'aimerai bien définir une largeur d'affichage à ces
photos.
Bertrand



C'est pas de chance, d'habitude on râle parce que ça boucle !

Avez-vous regardé ce que vous récupérez ici :
A = Selection.Text


dans une image il n'y a pas grand'chose comme texte.

Puisque vous semblez débuter :
Affichez les fenêtres d'exécution et de variables.

mettez des debug.print, ça vous aide à comprendre ce qui se passe.
Mettez des points d'arrêt et regardez ce qu'il y a dans la fenêtre des
variables.

Amha un debug.print "A= " & a doit renvoyer une chaîne vide et la macro
s'arrête.

Il manque un Dir() dans votre boucle, non ?
Plutôt à la place du a=selection.text et de l'instruction qui suit,
mais il faut l'initialiser.
Pi je ne vois pas quand vous accédez à vos autres images.
J'ai la vague impression que vous allez recopier la première image un
certain nombre de fois.

--
A+



Avatar
Geo

Merci de vos pistes.
Je récupère le texte dans la case qui contient le numéro de la photo. (Un
texte)


Ça veut dire que vos photos sont déjà sur un document.


Par contre maintenant, j'aimerai bien définir une largeur d'affichage à ces
photos.


Il me semble que cela a déjà été traité sur le forum, vous devriez
retrouver dans l'historique.

--
A+

Avatar
bertrouf
Juste pour répondre et remercier.

Merci de vos pistes.
Je récupère le texte dans la case qui contient le numéro de la photo. (Un
texte)


Ça veut dire que vos photos sont déjà sur un document.


Non, elles sont dans un dossier. Seuls les noms et les numéros sont dans le
document. C'est d'ailleurs l'objet de la macro d'associer les deux.

Par contre maintenant, j'aimerai bien définir une largeur d'affichage à ces
photos.
Il me semble que cela a déjà été traité sur le forum, vous devriez

retrouver dans l'historique.


OK merci, je recherche.

A+


De même.
Bertrand


Avatar
Geo

Juste pour répondre et remercier.


C'est sympathique de votre part.


Ça veut dire que vos photos sont déjà sur un document.


Non, elles sont dans un dossier. Seuls les noms et les numéros sont dans le
document. C'est d'ailleurs l'objet de la macro d'associer les deux.


Ok c'est clair.

Par contre maintenant, j'aimerai bien définir une largeur d'affichage à ces
photos.
Il me semble que cela a déjà été traité sur le forum, vous devriez

retrouver dans l'historique.


OK merci, je recherche.


Si vous ne trouvez pas la solution, revenez-nous.

--
A+