Remplir un formulaire word avec données excel
Résolu/Fermé
A voir également:
- Remplir automatiquement formulaire word à partir de données excel
- Liste déroulante excel - Guide
- Supprimer une page word - Guide
- Formule excel - Guide
- Word excel gratuit - Guide
- Organigramme a remplir word - Guide
1 réponse
Bonsoir,
j'ai avancé mais je suis confronté à un soucis.
je lance ma macro en cliquant, je tape ma référence et tout se passe comme voulu.
je veux réaliser un nouvel essai et là j'ai ce message qui apparaît "Erreur d'exécution '462' : le serveur distant n'existe pas ou n'est pas disponible"
si je referme mon fichier excel et retape la même référence tout fonctionne. en fait ça plante quand je lance 2 fois la macro sans avoir fermé le fichier excel.
voici mon code, qu'en pensez vous ?
Sub Acceptation_FR()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim i As Byte
Set WordApp = CreateObject("Word.Application") 'ouvre une session
WordApp.Visible = True 'word est affiché
Set WordDoc = WordApp.Documents.Open("\\C:\Users\Thony\Desktop\à bosser\FORME NC FR - CF FAB F 070 VB.doc", ReadOnly:=True) 'ouvrie le document en lecture seule
Dim chEntree As String
chEntree = InputBox(Prompt:="Saisir la référence de la NC")
If chEntree = Empty Then
MsgBox Prompt:="Aucune référence tapée"
End If
Dim celluletrouvee As Range
Set celluletrouvee = Range("L2:L65000").Find(chEntree, lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox (chEntree & " n'a pas été trouvée")
Else
ligne = celluletrouvee.Row
col = celluletrouvee.Column
celluletrouvee.Select
End If
ActiveDocument.FormFields(1).Result = celluletrouvee
ActiveDocument.FormFields(2).Result = celluletrouvee.Offset(0, -6)
ActiveDocument.FormFields(4).Result = celluletrouvee.Offset(0, -4)
ActiveDocument.FormFields(5).Result = celluletrouvee.Offset(0, -5)
ActiveDocument.FormFields(8).Result = celluletrouvee.Offset(0, -2)
ActiveDocument.FormFields(10).Result = celluletrouvee.Offset(0, -3)
End Sub
j'ai avancé mais je suis confronté à un soucis.
je lance ma macro en cliquant, je tape ma référence et tout se passe comme voulu.
je veux réaliser un nouvel essai et là j'ai ce message qui apparaît "Erreur d'exécution '462' : le serveur distant n'existe pas ou n'est pas disponible"
si je referme mon fichier excel et retape la même référence tout fonctionne. en fait ça plante quand je lance 2 fois la macro sans avoir fermé le fichier excel.
voici mon code, qu'en pensez vous ?
Sub Acceptation_FR()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim i As Byte
Set WordApp = CreateObject("Word.Application") 'ouvre une session
WordApp.Visible = True 'word est affiché
Set WordDoc = WordApp.Documents.Open("\\C:\Users\Thony\Desktop\à bosser\FORME NC FR - CF FAB F 070 VB.doc", ReadOnly:=True) 'ouvrie le document en lecture seule
Dim chEntree As String
chEntree = InputBox(Prompt:="Saisir la référence de la NC")
If chEntree = Empty Then
MsgBox Prompt:="Aucune référence tapée"
End If
Dim celluletrouvee As Range
Set celluletrouvee = Range("L2:L65000").Find(chEntree, lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox (chEntree & " n'a pas été trouvée")
Else
ligne = celluletrouvee.Row
col = celluletrouvee.Column
celluletrouvee.Select
End If
ActiveDocument.FormFields(1).Result = celluletrouvee
ActiveDocument.FormFields(2).Result = celluletrouvee.Offset(0, -6)
ActiveDocument.FormFields(4).Result = celluletrouvee.Offset(0, -4)
ActiveDocument.FormFields(5).Result = celluletrouvee.Offset(0, -5)
ActiveDocument.FormFields(8).Result = celluletrouvee.Offset(0, -2)
ActiveDocument.FormFields(10).Result = celluletrouvee.Offset(0, -3)
End Sub
Modifié par Mytå le 6/03/2013 à 21:27
Essaye en libèrant les variables à la fin du code
Mytå
6 mars 2013 à 21:29
d'après toi mon code est bien construit ?
6 mars 2013 à 21:35
Et comme ceci :
Mytå
6 mars 2013 à 21:37
WordApp.ActiveDocument.FormFields(1).Result = celluletrouvee
WordApp.ActiveDocument.FormFields(2).Result = celluletrouvee.Offset(0, -6)
WordApp.ActiveDocument.FormFields(4).Result = celluletrouvee.Offset(0, -4)
WordApp.ActiveDocument.FormFields(5).Result = celluletrouvee.Offset(0, -5)
WordApp.ActiveDocument.FormFields(8).Result = celluletrouvee.Offset(0, -2)
WordApp.ActiveDocument.FormFields(10).Result = celluletrouvee.Offset(0, -3)
Set WordDoc = Nothing
Set WordApp = Nothing
End sub
et là plus aucun soucis
merci pour les conseils, ça m'a permis d'avancer et maintenant je sais qu'il faut libérer le processus appelé
Bonne soirée et merci