Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 24/11/2011, 21h13   #1
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
Par défaut inscriptions des entêtes de listbox

bonjour a vous tous

comment puisse faire pour qu'une listbox prennent en entêtes les entêtes de "A1:K1 des feuilles qui sont ouvertes a l'aide d'une combobox, en sachant que toutes les feuilles sont identiques.
cordialement

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 22h27   #2
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Dans les propriété de ta listbox, tu mets columnheaders à true

Ensuite tu renseignes sa propriété SourceRow avec A2:K8 (bien sur il faudra adapter)

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 07h00   #3
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonjour Qwazerty
merci de ta réponse qui me semble bien mais j'ai une erreur non répertorié a l'appui sur le bouton qui ouvre l'usf et la ligne de bug est
Citation:
"userform1.show"
je joint un fichier exemple

cordialement

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 25/11/2011, 07h29   #4
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
SAlut
Je suis en retard, mais ton erreur vient d'ici


++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 20h10   #5
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonsoir Qwazerty

j'avais essayer justement avec =" " mais sans succès mais j'ai supprimé cette ligne et c'est parfait, mais la combobox qui se trouve dessous bug quand je veux ouvrir une feuile dans la listbox
Citation:
erreur 70 permission refusée
et débogage a la ligne du merci pour ce qui est de ta solution

cordialement

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 20h33   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
et il y as quoi dans cette sub ?








-----------------------------------------------------------------------
Je n'ouvre pas les pièces jointes.
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 21h26   #7
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonjour bbil
voici le contenu de la sub
Code :
UserForm1.ListBox1.List = ActiveSheet.Range("A2:L240").Value
cordialement

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 23h10   #8
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut
Essai plutôt quelque chose comme
Code :
UserForm1.ListBox1.RowSource = ActiveSheet.Name & "!" & Range("A2:L240").Address
Dans ce cas, si tu modifies le contenu des cellules le contenu de ta liste sera modifié. Si tu ne souhaites pas une telle liaison, il faudra boucler sur chaque cellule contenant les valeurs et les insérer une à une dans la listBox à l'aide de la méthode AddItem.
++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 18h59   #9
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonsoir Qwazerty

j'ai essayer le code modifié mais aucun changement, mais quand la page bug arrive en cliquant sur F8 cela m'envoie sur le code sur l'initialisation de l'usf
Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub UserForm_Initialize()
Me.ListBox1.Clear
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Me.ComboBox1.AddItem Sh.Name
Next
ListBox1.ColumnCount = 9
ListBox1.ColumnWidths = "20;1;230;1;1;40;40;1;20"
 ListBox1.ColumnHeads = True
ListBox1.RowSource = Range("A1:f" & Cells(Rows.Count, "a").End(xlUp).Row).Address
End Sub
voila maintenant vous avez toutes les données et même le fichier

cordialement

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 19h17   #10
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub UserForm_Initialize()
Dim Sh As Worksheet
 
'Ce qui suit est utile uniquement si tu ne souhaites pas faire une laison avec des cellules
'Me.ListBox1.Clear
'For Each Sh In ThisWorkbook.Worksheets
'Me.ComboBox1.AddItem Sh.Name
'Next
 
ListBox1.ColumnCount = 9
ListBox1.ColumnWidths = "20;1;230;1;1;40;40;1;20"
'Ici on fait la liaison avec les cellules qui nous interesse
'On commence le tableau à la ligne 2, la ligne 1 sera automatiquement prise en compte pour les entêtes
ListBox1.RowSource = Range("A2:F" & Cells(Rows.Count, "A").End(xlUp).Row).Address
 
End Sub
Attention au code présent dans UserForm_Activate

Dans cette configuration soit bien conscient que les modification faite sur la listebox sont répercutées dans ta feuille excel et vice versa

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 19h53   #11
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonsoir Qwazerty

merci de ta réponse mais maintenant dans l'initialisation il y a un activex qui manque, je remets le fichier modifié et tu vas constater si j'opère mal la transcription ou s'il y a autre chose ce n'est qu'une ébauche pour autre chose
Merci pour tout

Pascal
grisan29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 20h15   #12
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Que souhaites tu faire avec ce code exactement?

Code :
1
2
3
4
5
6
7
8
9
10
Private Sub UserForm_Activate()
Dim tableau As Variant
    ListBox1.ColumnCount = 6
    ListBox1.ColumnHeads = True
    tableau = Sheets("feuil1").Range("a2:j" & Sheets("feuil1").Range("a65530").End(xlUp).Row)
    ListBox1.List = tableau
  UserForm1.Caption = "Sélection d'un article"
 
 
End Sub
Je ne comprend pas, tu initialises ta listBox, lors de la création de ton UserForm (Initialize), en lui plaçant 9 colonnes et en liant sont contenu aux valeurs contenu dans une des feuille de ton classeur.

Et lorsque tu actives la UserForm (a chaque fois qu'elle prend le focus), tu redimensionnes de nouveau ta listBox pour qu'elle ne contienne que 6 colonnes... pourquoi l'initialiser à 9 colonnes?

Essai en enlevant tout le code contenu dans UserForm_Activate et dit nous

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/11/2011, 20h57   #13
Membre habitué
 
pascal
artisan poseur
Inscription : octobre 2006
Messages : 342
Détails du profil
Informations personnelles :
Nom : pascal

Informations professionnelles :
Activité : artisan poseur
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2006
Messages : 342
Points : 137
Points : 137
bonsoir Qwazerty
merci de ta réponse, en fait le code de l'activation de l'usf a été placé avant la venue de ton code en initializant et oubli de l'enlever comme tu vient de le dire
désolé pour tous les désagrément que j'ai causé a vos réponses qui était parfaite si je n'avais pas mélangé activate et initialize

maintenant qu'activate a disparu plus de problème
un très grand Merci

cordialement

Pascal
grisan29 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 17h52.


 
 
 
 
Partenaires

Hébergement Web