Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2011, 16h20   #1
Nouveau Membre du Club
 
Homme Jordan POUDROUX
Dessinateur Projeteur
Inscription : avril 2006
Messages : 31
Détails du profil
Informations personnelles :
Nom : Homme Jordan POUDROUX
Âge : 25
Localisation : Féroé

Informations professionnelles :
Activité : Dessinateur Projeteur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 31
Points : 33
Points : 33
Envoyer un message via MSN à maxxgraph
Par défaut RowSource de listbox avec contenu de tableau Excel

Bonjour à tous,

J'essaie actuellement de créer sous Word avec formulaire VBA un module d'édition de bordereau.
Par le biais de ce formulaire, je voudrais selectionné le destinataire du bordereau.

Une fois les données rapatriées dans la listbox, je pense être en mesure de pouvoir les attribuer au signet du fichier Word.

Or, je bloque sur la façon de sélectionner les données du fichier Excel pour remplir la listbox.

Mon tableau est dimensionné sur 6 colonnes avec un nombre d'enregistrements évolutifs.

J'ai trouvé quelque codes, mais pas reussi pour le moment à les adapter à mon cas.

Merci d'avance à ceux qui contriburons
maxxgraph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 16h37   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 219
Points : 29 219
Salut,

Jette un oeil à ce tuto : http://heureuxoli.developpez.com/off...cument-tiroir/

Il devrait t'aider un peu.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 12h13   #3
Nouveau Membre du Club
 
Homme Jordan POUDROUX
Dessinateur Projeteur
Inscription : avril 2006
Messages : 31
Détails du profil
Informations personnelles :
Nom : Homme Jordan POUDROUX
Âge : 25
Localisation : Féroé

Informations professionnelles :
Activité : Dessinateur Projeteur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 31
Points : 33
Points : 33
Envoyer un message via MSN à maxxgraph
Merci bien !

J'ai réussi à l'adapter sur plusieurs colonnes après une petit réflexion et je pense que la boucle sur les colonnes pour injecter les données dans le tableau est faisable ! (Histoire de faire une économie de ligne ).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Private Sub UserForm_Initialize()
 
    'Déclaration des variables
 
Dim xlApp As Excel.Application  'Application Excel pour ouvrir un fichier XLS
Dim xlWb As Excel.Workbook      'Classeur Excel
Dim xlWs As Excel.Worksheet     'Feuille du classeur
Dim intL As Integer             'Récupération de l'index de la ligne
Dim tblListe() As String        'tableau pour le remplissage de la liste.
 
 
 
    'Affectation des données aux objets
 
    'Affectation de Excel en créant un nouvelle instance
 
Set xlApp = New Excel.Application
 
 
    'Ouverture du fichier
 
Set xlWb = xlApp.Workbooks.Open("D:\Documentation\Admnistratif\Bordereau\bordereau_adresse.xls")
 
 
    'Utilisation de la première feuille
 
Set xlWs = xlWb.Worksheets(1)
 
 
 
    'Boucle pour déterminer le nombre de lignes contenant des données dans le fichier Excel
 
intL = 1
        Do Until Len(xlWs.Range(Cells(intL, 1), Cells(intL, 1))) = 0
        intL = intL + 1
        Loop
 
    'Redimensionnement du tableau en fonction du nombre de lignes remplies dans le feuille de données
 
    ReDim tblListe(intL, 6)
 
    'tblListe(0, 0) = "Nom"
    'tblListe(0, 1) = "Adresse1"
    'tblListe(0, 2) = "Adresse2"
    'tblListe(0, 3) = "Adresse3"
    'tblListe(0, 4) = "CP"
    'tblListe(0, 4) = "Ville"
 
    'Boucle sur les cellules de la feuille Excel
    intL = 1
        Do Until Len(xlWs.Range(Cells(intL, 1), Cells(intL, 1))) = 0
        'Index de la ligne
        tblListe(intL, 0) = intL
 
                'Contenu de la première colonne de la feuille de données
        tblListe(intL, 1) = xlWs.Range(Cells(intL, 1), Cells(intL, 1))
 
                'Contenu de la colonne 2 de la feuille de données
        tblListe(intL, 2) = xlWs.Range(Cells(intL, 2), Cells(intL, 2))
 
                'Contenu de la colonne 2 de la feuille de données
        tblListe(intL, 3) = xlWs.Range(Cells(intL, 3), Cells(intL, 3))
 
                'Contenu de la colonne 4 de la feuille de données
        tblListe(intL, 4) = xlWs.Range(Cells(intL, 4), Cells(intL, 4))
 
                'Contenu de la colonne 4 de la feuille de données
        tblListe(intL, 5) = xlWs.Range(Cells(intL, 5), Cells(intL, 5))
 
                'Contenu de la colonne 2 de la feuille de données
        tblListe(intL, 6) = xlWs.Range(Cells(intL, 6), Cells(intL, 6))
 
        'Debug.Print intL & " --- " &  & " --- " &
 
        intL = intL + 1
        Loop
 
    'transfert des données vers la liste du UserForm
    Me.lstChoix.List = tblListe
 
    'Fermeture et libération des objets
 
'Fermeture du classeur
    xlWb.Close
 
'Libération de l'objet
    Set xlWb = Nothing
 
'Fermeture d'Excel
    xlApp.Quit
 
'Liberation
    Set xlApp = Nothing
 
End Sub
maxxgraph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 13h21   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 219
Points : 29 219
Salut,

Il doit même être possible de faire encore plus court en utilisant une zone XL pour la mettre dans le tableau, mais je ne suis pas très familier avec XL.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h05.


 
 
 
 
Partenaires

Hébergement Web