Robinwood01
Messages postés153Date d'inscriptionjeudi 25 avril 2002StatutMembreDernière intervention 3 juillet 2014
-
26 juil. 2006 à 12:29
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
27 juil. 2006 à 15:00
Bonjour
Voici le code qui me pose problème :
On Error GoTo 1
Word.ActiveDocument.Bookmarks("civilité").Select
Word.Selection.InsertAfter Requete!civilité
1:
On Error GoTo 2
Word.ActiveDocument.Bookmarks("prénom").Select
Word.Selection.InsertAfter Requete!prénom
2:
On Error GoTo 3
Word.ActiveDocument.Bookmarks("nom").Select
Word.Selection.InsertAfter Requete!nom
3:
On Error GoTo 4
Word.ActiveDocument.Bookmarks("adresse").Select
Word.Selection.InsertAfter Requete!adresse
4:
On erreur GoTo 0
En faite ca me permet de faire des publipostage dans word.
J'ai plusieurs documents word certain non pas tous les champs, donc je me suis dis que j'allais gérer cela avec des erreurs.
Si je n'ai pas de signet dans le fichier word il me sort une erreur. Si dans un fichir word je n'ai pas le signet civilité, j'ai une erreur à la ligne :
Word.ActiveDocument.Bookmarks("civilité").Select
Et ca passe bien a mon 1: mais la ou ca marche plus c'est si j'ai encore une erreur, il l'affiche toujours et ne passe pas au 2:
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 juil. 2006 à 18:33
Arf autant pour moi, j'ai lu trop vite.
Salut Julien, et oui, très peu là en ce moment (mais je trouve une heure ou deux qd même !!)
Tiens d'ailleurs ça me fait penser, j'ai pas eu le mail pour ce Topic (retour ici par hasard)
Bon, sinon, il faut jouer avec le numéro de l'erreur (humm si PCPT vois ça, je vais me faire gronder.. à cause des GoTo) lol
On Error Resume Next
Word.ActiveDocument.Bookmarks("civilité").Select
If Err.Number = ??? Then 'met le numéro de l'erreur
GoTo 1
Else
Word.Selection.InsertAfter Requete!civilité
End If
1:
Word.ActiveDocument.Bookmarks("prénom").Select
If Err.Number = ??? Then 'met le numéro de l'erreur
GoTo 2
Else
Word.Selection.InsertAfter Requete!prénom
End If
2:
Word.ActiveDocument.Bookmarks("nom").Select
If Err.Number = ??? Then 'met le numéro de l'erreur
GoTo 3
Else
Word.Selection.InsertAfter Requete!nom
End If
3:
Word.ActiveDocument.Bookmarks("adresse").Select
If Err.Number = ??? Then 'met le numéro de l'erreur
GoTo 4
Else
Word.Selection.InsertAfter Requete!adresse
End If
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 27 juil. 2006 à 08:59
Salut,
Sinon ce que tu peux faire c'est une SEULE procédure que tu appelles différemment.
EXEMPLE NON TESTE:
Private Sub BookMarksTest(BookMarkName as string)
On Error Got HandleError
Word.ActiveDocument.Bookmarks(BookMarkName).Select
'Petite modification ou je suppose que requete est un Recordset
Word.Selection.InsertAfter Requete.Fields(BookMarkName)
Exit Sub
HandleError:
Err.Clear
End Sub
'Et Tu l'appelle de cette maniere
Call BookMarksTest("civilité")
Call BookMarksTest("prénom")
Call BookMarksTest("nom")
Call BookMarksTest("adresse")
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 juil. 2006 à 16:05
Salut,
pourquoi ne pas faire tout simplement :
On Error Resume Next
Word.ActiveDocument.Bookmarks("civilité").Select
Word.Selection.InsertAfter Requete!civilité
' si erreur, passe à la ligne suivante
Word.ActiveDocument.Bookmarks("prénom").Select
Word.Selection.InsertAfter Requete!prénom
' si erreur, passe à la ligne suivante
Word.ActiveDocument.Bookmarks("nom").Select
Word.Selection.InsertAfter Requete!nom
' si erreur, passe à la ligne suivante
Word.ActiveDocument.Bookmarks("adresse").Select
Word.Selection.InsertAfter Requete!adresse
' si erreur, passe à la ligne suivante
On erreur GoTo 0
@++
Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 26 juil. 2006 à 22:14
Réctifier
Sub ...
On error goto 1
ligne 1 .....................
ligne 2 .....................
On error goto 2
ligne 3 .....................
ligne 4.....................
On error goto 3
ligne 5 .....................
ligne 6 .....................
On error goto 4
ligne 7 .....................
ligne 8 .....................
Exit Sub 'Tout ce passe bien
1:
Message d' erreur
On error goto 2
ligne 3 .....................
ligne 4.....................
On error goto 3
ligne 5 .....................
ligne 6 .....................
On error goto 4
ligne 7 .....................
ligne 8 .....................
Exit sub
2:
Message d' erreur
On error goto 3
ligne 5 .....................
ligne 6 .....................
On error goto 4
ligne 7 .....................
ligne 8 .....................
Exit sub
3:
Message d' erreur
On error goto 4
ligne 7 .....................
ligne 8 .....................
Exit sub
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 27 juil. 2006 à 00:01
Qu' est-ce qui ne marche pas ?
Ce que je t' ai proposé ou ce que toi tu as testé au départ?
Tu' as reproduis là la même procédure qu' au début de ta question.
Montre-nous ou ça bloque dans la dernière réponse pour qu' on puisse faire évoluer la chose..
A+
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 27 juil. 2006 à 15:00
Bonjour tout le monde,
Tant mieux si ça marche.
Je crois que j' ai trouvé une explication au problème.
La raison pour laquelle il ne tient pas compte de On error goto 2, c' est tout simplement
parce qu' il ne la lit pas.
Autrement dit on ne peut pas lire l' instruction on error deux foix de suite.
Je m' explique :S' il rencontre une une erreure au niveau on error goto 1, lorsqu' il se pointe
vers l' etiquette 1, il ignore on error goto 2 et va directement vers WORD.....
La solution consiste donc à insérer une instruction bidon entre l' etiquette et le on error suivante.
Je vois que j' arrive trop tard, mais c' est bon à savoir.