[Catégorie modifiée VB6 -> VBA] erreur 5941

cindrella85 Messages postés 12 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 7 avril 2012 - 22 déc. 2011 à 15:08
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 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)

End Sub

Merci pour votre aide
Cindrella

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
Rejoignez-nous