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

Je vous remercie pour ce fichier,

Il semble convenir à mes besoins cependant lorsque j'ouvre le dossier j'ai une erreur " Compilation error : Type Mismatch " avec la première ligne de Requête SQL qui se surligne en jaune.

Savez-vous d'où cela peut provenir et comment solutionner ce problème ?
 

a02halo

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

J'ai bien dézippé les fichiers dans le même dossier,

Et l'erreur se répète.
La ligne surlignée est la première du module SQL : Function Query(Requete As String, Optional NDF As String = "Q") As Long

Cependant j'ai également la sélection d'une ligne : Query = Rst.RecordCount

Je vous joins également une photographie error.jpg
 

Pièces jointes

  • error.jpg
    error.jpg
    44.7 KB · Affichages: 84
  • error.jpg
    error.jpg
    44.7 KB · Affichages: 76

a02halo

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

Je m'excuse de vous déranger cependant le déclarer en Integer n'a pas solutionner le problème (j'ai bien évidemment enregistrer dans le VBE + le doc word en lui même)
La ligne est toujours surlignée en jaune.
J'ai toujours la ligne : "Query = Rst.RecordCount" de sélectionnée (enfin le ".RecordCount")

Je ne comprends pas car quand je lance pour la première fois le document la liaison semble fonctionner l'espace de quelques secondes.
 

a02halo

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

J'ai finalement déclarer en Variant dans le doute et cela fonctionne. J'aimerais savoir si il est possible d'assigner les données que vous m'avez fait parvenir à des signets (en effet les informations doivent se trouver à différents endroits du texte..) Sinon pourriez vous m'indiquer vers ou se trouve le code qui récupère les infos du tableur Excel svp.
 

a02halo

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

Oulah, mon identité IRL est mise à mal ! :) Nous connaissons nous ? Ou serait-ce quelques recherches qui vous a indiqué qui j'étais ?

Je vous remercie, je teste cela au plus vite ! (c'est à dire tout de suite !)
Je vous tiens au courant de l'avancée et si je connais des problèmes.

Dans tous les cas merci pour l'aide que vous m'avez apporté pour l'instant !
 
Dernière édition:

a02halo

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

Dites moi,

Savez-vous comment je peux modifier le tableaux rcDst ?
Je ne parviens pas à rajouter de données, ni même à trouver ou est défini la largeur du tableau (je souhaiterais rajouter des colonnes)
Voilà après ça je vous promet de vous laisser tranquille un minimum de temps

Cordialement
 

a02halo

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

Bonjour, je me permet de revenir sur cette conversation car je bloque...

En effet j'ai essayé de rajouter des informations via une seconde combobox et depuis... c'est la panade, cela fait plusieurs jours que je tatônne sans aucun résultat.

J'aimerais que les combobox soient accessibles directement depuis le Userform : je n'ai pas réussi
Les bookmarks fonctionnaient bien...depuis ils ne fonctionnent plus
J'ai quelques messages d'erreurs de SQL me disant que trop peu d'éléments sont requêtés...

Bref je me noie entre différents messages d'erreurs.

Si quelqu'un pouvait m'aider et jeter un coup d'oeil a mon code me corriger, m'indiquer la bonne voie..surtout que une fois les bookmarks fonctionnant et les combobox dans le userform.. mon projet est fini..

En vous remerciant,

a02halo
 

Pièces jointes

  • Correction.zip
    114.4 KB · Affichages: 46
  • Correction.zip
    114.4 KB · Affichages: 43
  • Correction.zip
    114.4 KB · Affichages: 41

a02halo

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

Bonjour,

Alors j'ai pas mal avancé ! J'ai réussi à copier le code du ComBobox dans le userform.
Maintenant je reste bloqué à la création d'un second ComboBox... J'ai copié collé le code, et j'ai modifié le nom des requêtes SQL, du tableau et des variables.

Je me retrouve avec une erreur " Run Type Error 9 - Subscript out of range"
Je me demandais, pour ajouter un tableau comme il a été fait pour le doc " Data " je suis allé dans le menu d'Excel et j'ai créé une table "Table4" : est-ce la bonne façon de procéder ? Dois-je faire d'une autre façon ?

Je vous copie/colle le bout de code qui semble poser problème (bout de code contenu dans le module du Userform)

Code:
Private Sub Userform_Initialize()
Dim lig As Integer, i As Integer
Dim lig2 As Integer, f As Integer

    With ComboBox2
    With ActiveDocument
       
        lig = Get_List_Noms
        If lig > 0 Then
            ReDim List_Noms(3, lig)
            List_Noms = RcdSt
            For i = 0 To lig - 1
                Me.ComboBox2.AddItem RcdSt(0, i) & " " & RcdSt(1, i) & " " & RcdSt(2, i)
            Next i
            Me.ComboBox2.ListIndex = -1
        End If
    End With
    End With
    
     With ComboBox3
    With ActiveDocument
    
        lig2 = Get_List_Noms2
        If lig2 > 0 Then
            ReDim List_Noms2(3, lig2)
            List_Noms2 = Table4
            For f = 0 To lig2 - 1
                Me.ComboBox3.AddItem Table4(0, f) & " " & Table4(1, f)
            Next f
           Me.ComboBox3.ListIndex = -1
        End If
    End With
     End With
End Sub
 

a02halo

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

Alors effectivement je m'y étais mal pris, j'ai renommé le tableau RCDST et maintenant cela fait appel aux bonnes données !
Le problème s'est déplacé (les joies du bricolage du code...)

J'ai maintenant un message invalid use of type Null qui apparaît sur la 2ème ligne du code suivant :
Code:
 If Not Index = -1 Then
        Id2 = List_Noms2(3, Index)
        lig2 = Get_Fiche2(Id)
        If lig2 > 0 Then
      
            With ActiveDocument
             .Bookmarks("bminterlocuteur").Range.Text = RcdSt(3, 0)
              
            
            End With
        End If
    End If
Apparemment Index est empty, voyez vous un moyen de remeder à cela ?
 

a02halo

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

Oulah je vous remercie pour vos contributions. Désolé pour les réponses tardives j'ai été envoyé sur un dossier assez chaud au boulot. Franchement c'est exactement ce que je souhaitais obtenir, ça a l'air génial.

Juste je ne peux pas regarder le résultat final, en effet au moment de valider j'ai une erreur 1004 object defined error.
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

Pour l'instant c'est la première ligne qui se surligne,je suis en train de chercher quelle déclaration peut poser problème !
Je reviens vers vous dèsque j'ai solutionné ce premier pour vous faire un rendu de l'avancée.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG