Récupération d'informations dans Excel depuis Word - VBA

a02halo

XLDnaute Nouveau
Bonjour à tous,

J'espère que vous allez bien !

Je me permet de poster ici ma petite question, malgré que l'on soit sur un forum Excel je me dis que certains pourraient m'aider (et après tout Excel est concerné) :

J'aimerais récupérer des informations dans Word depuis un tableau Excel.
J'ai un bout de code qui me permet : d'ouvrir le document excel, récupérer des informations dans la combobox de mon userform mais maintenant plusieurs problèmes se posent à moi :
- Je ne parviens pas à inscrire les informations en tant que signets. (Set bmrange.... Bmrange Text = Xslh (Cells (i , 1)) ... )
- J'aimerais indiquer à Excel que si la première information de la colonne est sélectionnée il faut qu'il me sélectionne automatiquement toutes les informations des autres colonnes sur la même ligne.

Jusqu'à présent j'ai tenté différentes façons, bidouiller et... je n'arrive à rien.

Je suis parti sur deux sub différentes (une pour ouvrir et sélectionner le fichier et une autre pour "écrire" les informations) je pense que ce n'est pas la bonne façon.
Je vous copie colle mon code

Si quelqu'un pouvait m'éclairer ce serait sympa

Code :
Code:
Private Sub cmdAddLetter_Click()

Dim xlApp As Object
Dim xlWb As Object
Dim xlSh As Object
Dim dlg As FileDialog
Dim stFile As String
Dim i As Integer
Dim bmks As Bookmarks
Dim nom As Object


Set xlApp = CreateObject("excel.application")
With ActiveDocument.worksheets

Set xlSh = xlWb.sheets(1)
End With
Debug.Print xlSh.usedrange.Rows.Count

For i = 1 To xlSh.usedrange.Rows.Count
Debug.Print i
    

Set bmRange = ActiveDocument.Bookmarks("signet").Range
bmRange.Text = nom.Value
Next i

Set xlSh = Nothing
Set xlWb = Nothing
Set xlApp = Nothing
xlApp.Quit

End Sub

Private Sub CommandButton2_Click()

End Sub

Private Sub UserForm_Initialize()
On Error Resume Next
Dim xlApp As Object
Dim xlWb As Object
Dim xlSh As Object
Dim dlg As FileDialog
Dim stFile As String
Dim i As Integer
Dim bmks As Bookmarks
Dim bmRange As Range
Dim nom As Object


Set dlg = Word.Application.FileDialog(msoFileDialogFilePicker)
With dlg
    .InitialFileName = "*.xls"
    .Show
End With
stFile = dlg.SelectedItems(1)
Debug.Print stFile
Set xlApp = CreateObject("excel.application")
Set xlWb = xlApp.workbooks.Open(stFile)
Set xlSh = xlWb.sheets(1)
Debug.Print xlSh.usedrange.Rows.Count

For i = 1 To xlSh.usedrange.Rows.Count
Debug.Print i
    
    Me.ComboBox1.AddItem (xlSh.Cells(i, 1))
   If Me.ComboBox1.Value = (xlSh.Cells(i, 1)) Then
nom = xlSh.Cells(i, 2).Value

End If




    Debug.Print xlSh.Cells(i, 2)
Next i




End Sub
 
Dernière édition:

a02halo

XLDnaute Nouveau
Re : Récupération d'informations dans Excel depuis Word - VBA

Alors merci franchement,

J'ai réussi à contourner le problème, je m'y étais mal pris lors de mes premiers essais ! Franchement le remplissage auto et les userform c'est top. Le seul problème que j'ai maintenant c'est dans la partie " Enregistrement fiche contrats " lorsque je valide mon formulaire. J'ai erreur 1004 Defined object error
C'est ce code qui se surligne (la première ligne pour l'instant) :
Code:
.Cells(lig, "A") = Id_contrat
            .Cells(lig, "B") = Me.TextBox0.Value
            .Cells(lig, "C") = Me.TextBox13.Value
            .Cells(lig, "D") = Me.TextBox25.Value
            .Cells(lig, "E") = Me.TextBox24.Value

Cela m'empêche de valider et continuer la construction ( c'est à dire trouver comment rajouter des signets etc.. je suppose que c'est la ou il y a des Tables, sur le sub commandclick)

Vous avez une idée d'ou cela peut provenir ? J'ai essayé de passer les lig en Variant ou en Long.. sans succès.

Arnaud
 

a02halo

XLDnaute Nouveau
Re : Récupération d'informations dans Excel depuis Word - VBA

Alors effectivement avec cette version je n'ai pas d'erreurs, cependant lorsque je fais " imprimer " j'ai bien un le "Export Word" qui apparaît et un dossier "contrats" qui se créé mais ce dossier reste désespérement vide...
 

a02halo

XLDnaute Nouveau
Re : Récupération d'informations dans Excel depuis Word - VBA

Cela marche au poil :) !! Merci beaucoup, je fais le travail pour adapter cela parfaitement aux différents contrats et je reviens pour vous faire part du succès si tout se passe bien ! Merci encore une fois.
 

a02halo

XLDnaute Nouveau
Re : Récupération d'informations dans Excel depuis Word - VBA

Me voilà de retour,

J'ai paramétré l'ensembles des contrats et des signets pour coller avec mes besoins.
Je rencontre deux problèmes :

- J'ai des signets qui s'affichent en double, notamment le signet contenant le nom du poste c'est à dire que là ou le signet doit remplir " Cariste " il me remplit " CaristeCariste"

- J'ai des informations au niveau du lieu d'affectation qui apparaissent toutes seules.. exemple à la place de "Hotel XX" j'ai "Hotel XX joursjours"

J'aimerais savoir comment je peux résoudre ces problèmes, ai-je fait une connerie lorsque j'ai défini mes signets ?. Je vous joins les documents en questions.
 

Pièces jointes

  • contrats_version28juillet.zip
    158.6 KB · Affichages: 39

a02halo

XLDnaute Nouveau
Re : Récupération d'informations dans Excel depuis Word - VBA

Bon je crois que poster sur ce forum m'inspire, puisqu'une fois encore j'ai trouvé la réponse après 4heures de recherches et simplement 10 minutes après l'avoir postée sur ce topic...
Pour les signets le problème c'était que j'en avais déclaré 4 là ou il y en avait 3.. il m'a donc suffit de faire
Code:
 If WordDoc.Bookmarks.Exists("bmtitreposte4") = True Then
             .Selection.GoTo What:=wdGoToBookmark, Name:="bmtitreposte4"
            .Selection.TypeText Text:=Me.ComboBox4.Value
            End If

Voilà...maintenant pourquoi après le lieu d'affectation je me retrouve avec "joursjours" ... Je ne sais toujours pas..
 

a02halo

XLDnaute Nouveau
Re : Récupération d'informations dans Excel depuis Word - VBA

Bon, ne cherchons pas plus loin... j'ai solutionné mon pb en répétant la condition d'existence à l'ensemble de mes signets...
Le calendrier marche en américain maintenant mais ce n'est pas un vrai problème... enfin j'espère.
 

a02halo

XLDnaute Nouveau
Re : Récupération d'informations dans Excel depuis Word - VBA

Bon ce sera ma dernière demande avant de finir totalement mon projet :
Comment puis-je rajouter une colonne sur le tableau excel et récupérer l'information dans Word ?
J'aurais besoin de rajouter comme information salarié son lieu de naissance et j'admet que je suis un peu perdu sur la récupération.

Si quelqu'un pouvait m'aider ou si je pouvais trouver miraculeusement la solution après avoir posté ce post...

Merci à tous (et plus particulièrement à Tatiak)
 

Discussions similaires

Réponses
2
Affichages
240

Statistiques des forums

Discussions
312 215
Messages
2 086 339
Membres
103 192
dernier inscrit
Corpdacier