cindrella85
Messages postés12Date d'inscriptionmercredi 13 mai 2009StatutMembreDernière intervention 7 avril 2012
-
22 déc. 2011 à 15:08
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
22 déc. 2011 à 15:30
j'ai un fichier qui se bloque au niveau de la ligne Fich.Cells(num_row, i + 1) = FichierWord.activedocument.formfields(Variables(i)).result Next i
et il m'indique l'erreur 5941 erreur définie par l'objet ou par l'application
le code est le suivant
Sub import_client()
Dim Fich As Worksheet
Set Fich = ThisWorkbook.Worksheets("All_Clients")
chemin = "C:\latex"
mesfichiers = Dir(chemin & "*.doc")
Dim Variables As Variant
Variables = Array("S1", "S2", "S3", "S4", "S5", "S6", "S7","S8", "S9", "S10", "S11", "S12", "S13", "S14", "S15", "S16", "S17", "S18", "S19", "S20", "S21")
nb_Champs = 21
num_row = 1
i = 0
Set FichierWord = CreateObject("word.application")
FichierWord.Visible = True
FichierWord.DisplayAlerts = False
Do While mesfichiers <> ""
If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "tab1_xxx.doc" Then
monDocument = chemin & mesfichiers
FichierWord.documents.Open Filename:=monDocument, ReadOnly:=True
num_row = num_row + 1
num_col = 1
For i = 0 To 17
Fich.Cells(num_row, i + 1) = FichierWord.activedocument.formfields(Variables(i)).result
Next i
FichierWord.documents.Close (0)
End If
mesfichiers = Dir
Loop
FichierWord.Quit
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 déc. 2011 à 15:30
Pas bonjour non plus
Tu fais du VBA, pas du VB6
Quand tu colles du code, utilise la coloration syntaxique (3ème icone à droite) = plus facile à relire et conserver les indentations.
Que valent tes variables i, num_row et variables(i) au moment de l'erreur ?
Débogage :
- F9 sur une ligne de code; elle change de couleur
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement
Vala
Jack, =fr MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)