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 31/08/2011, 15h34   #1
Invité de passage
 
Homme Ronan
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Ronan
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 3
Points : 3
Bonjour à tous,

J'ai crée un userform dans lequel j'ai inséré une "zone de liste modifiable". Je souhaiterai maintenant remplir cette zone de liste par la plage cellule suivante
(F1:MM1). C'est à dire une grande partie de la ligne 1.

Je souhaiterai que ce qui se trouve dans ces cellules (en l'occurence des chaine de caractère étant des titres) soient insérés dans cette "zone de liste modifiable".

L'objectif serait de de pouvori cliquer sur un des objets de la liste et que dans la feuille suivante (feuille7) il affiche la colonne correspondante.

Merci à ceux qui voudront bien me donner un coup de main. Et n'hésitez pas à me faire remarquer si je n'ai pas été assez claire.

Merci beaucoup de votre aide

Bien à vous

Ron

re,

Est ce normal que rien ne s'affiche dans ma liste déroulante avec le code suivant :
Code :
1
2
3
Private Sub ComboBox1_Change()
ComboBox1.RowSource = "Feuil1!F1:MM1"
End Sub
Merci de votre aide.

rON
ron13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 18h40   #2
Membre Expert
 
Avatar de rvtoulon
 
Homme Hervé
Agent Technique
Inscription : mars 2009
Messages : 823
Détails du profil
Informations personnelles :
Nom : Homme Hervé
Âge : 36
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Agent Technique
Secteur : Santé

Informations forums :
Inscription : mars 2009
Messages : 823
Points : 1 441
Points : 1 441
Bonjour,
Citation:
Je souhaiterai maintenant remplir cette zone de liste par la plage cellule suivante
(F1:MM1). C'est à dire une grande partie de la ligne 1.
Il faut initializer ta combobox au démarrage de l'userform. Une des façons est celle ci:
Code :
1
2
3
4
5
Private Sub UserForm_Initialize()
For Each cel In Sheets("Feuil1").Range("F1:MM1")
  Me.ComboBox1.AddItem cel.Value
Next cel
End Sub
__________________
@+

Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
Ou sur si ce n'est pas le cas
rvtoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 09h34   #3
Invité de passage
 
Homme Ronan
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Ronan
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 3
Points : 3
Bonjour,

Merci pour votre aide rvtoulon. J'ai initialisé et crée un userform comprenant une "listbox" affichant les titres des colonnes qui m'intéresent.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub UserForm_Initialize()
 
Dim i As Integer
 
Dim oSh2 As Excel.Worksheet
Set oSh2 = ThisWorkbook.Worksheets("Feuil6")
 
i = 6
 
While oSh2.Cells(1, i) <> ""
  ListBox1.AddItem (oSh2.Cells(1, i))
  i = i + 1
Wend
 
End Sub
Je souhaiterai maintenant lorsque je clique sur un de ces "titres" (1ere cellule d'une colonne) que sur la feuille suivante apparaisse la colonne correspondante au nom de la cellule sur laquelle j'ai cliqué. Suis je assez claire ?

Merci

Bonne journée

Ron
ron13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 10h38   #4
Membre Expert
 
Avatar de rvtoulon
 
Homme Hervé
Agent Technique
Inscription : mars 2009
Messages : 823
Détails du profil
Informations personnelles :
Nom : Homme Hervé
Âge : 36
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Agent Technique
Secteur : Santé

Informations forums :
Inscription : mars 2009
Messages : 823
Points : 1 441
Points : 1 441
Bonjour,
maintenant il faut utiliser les événements du contrôle listbox. Tu peux utiliser l'événement change et utiliser la méthode find pour trouver le nom recherché :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub ListBox1_Change()
Dim vval As String, vrech As Range
 
vval = Me.ListBox1.Value
 
'je rech la valeur sélectionnée dans la feuille 7 ligne 1
Set vrech = Sheets("Feuil7").Rows(1).Find(vval)
 
  If Not vrech Is Nothing Then
    'ferme le userform
    Unload Me
 
    'Active la feuille 7
    Sheets("Feuil7").Activate
 
    'Selectionne toute la colonne du nom recherché
    vrech.EntireColumn.Select
  Else
    MsgBox "Il n'y a pas de colonne qui porte ce nom"
  End If
 
End Sub
__________________
@+

Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
Ou sur si ce n'est pas le cas
rvtoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 10h56   #5
Invité de passage
 
Homme Ronan
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Ronan
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 3
Points : 3
Re,

Merci beaucoup mais il y'a une erreur de type 1004 , la "méthode select de la classe range a échoué".
Il me surligne ensuite en jaune la ligne suivante :

Code :
vrech.EntireColumn.Select
Une idée ?

Ps : Les valeurs que je séléctionne dans la listbox sont en réalité dans la ligne 1 de la feuille 6. En ligne 7 j'ai juste remplacé le feuil7 par feuil6.

Merci de votre aide
Ron
ron13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 11h15   #6
Membre Expert
 
Avatar de rvtoulon
 
Homme Hervé
Agent Technique
Inscription : mars 2009
Messages : 823
Détails du profil
Informations personnelles :
Nom : Homme Hervé
Âge : 36
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Agent Technique
Secteur : Santé

Informations forums :
Inscription : mars 2009
Messages : 823
Points : 1 441
Points : 1 441
Citation:
Je souhaiterai maintenant lorsque je clique sur un de ces "titres" (1ere cellule d'une colonne) que sur la feuille suivante apparaisse la colonne correspondante au nom de la cellule sur laquelle j'ai cliqué
Je suis parti sur l'hypothèse ou sur la première ligne de la feuille 7 on retrouvait les noms ou titres.

si je comprend bien ceci doit faire l'affaire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub ListBox1_Change()
Dim vval As String, vrech As Range
vval = Me.ListBox1.Value
'je rech la valeur sélectionnée dans la feuille 6 ligne 1
Set vrech = Sheets("Feuil6").Rows(1).Find(vval)
  If Not vrech Is Nothing Then
    'ferme le userform
    Unload Me
 
    'Active la feuille 7
    Sheets("Feuil7").Activate
 
    'Selectionne toute la colonne du nom recherché
    ActiveSheet.Columns(vrech.Column).Select
  End If
End Sub
__________________
@+

Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
Ou sur si ce n'est pas le cas
rvtoulon est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/09/2011, 11h51   #7
Invité de passage
 
Homme Ronan
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Ronan
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 3
Points : 3
Merci beaucoup rvtoulon, cela fonctionne parfaitement. Je trouve ce forum particulièrement performant, je suis impressionné.

Merci à vous.

A bientôt.
ron13 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 21h44.


 
 
 
 
Partenaires

Hébergement Web