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 :
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: