OVH Cloud OVH Cloud

problème combox

4 réponses
Avatar
luigi
Bonjour à tous

Dans un classeur j'ai 24 feuilles ..lorsque j'ouvre ce classeur un userform
apparait avec un combobox et j'aimerais avoir les noms initialisés ds le
combo (en premier lieu) et que la feuille sélectionée s'active (en 2e
phase)..

L'exemple ci dessous ne marche pas mais je n'ai trouvé que ça qui s'approche


"Private Sub ComboBox1_Change()

ComboBox1.AddItem "1_toto" = Feuil4.Activate
ComboBox1.AddItem "1_titi" = Feuil5.Activate
ComboBox1.AddItem "2_toto" = Feuil6.Activate
ComboBox1.AddItem "2_titi" = Feuil7.Activate
....
...
...

End Sub"

PS: 1= janvier
2= Fevrier
...soit 2x12 feuilles
--
Merci
Luigi
(enlever les chiffres pour me répondre)

4 réponses

Avatar
michdenis
Bonjour Luigi,


'---------------------------
Private Sub ComboBox1_AfterUpdate()
'Différents événements possible ...
On Error Resume Next
With Me.ComboBox1
If .ListIndex <> -1 Then
Sheets(.Value).Select
On Error GoTo 0
End If
End With

End Sub

'---------------------------
Private Sub UserForm_Initialize()

With Me.ComboBox1
For Each sh In Sheets
.AddItem sh.Name
Next
End With

End Sub
'---------------------------


Salutations!


"luigi" a écrit dans le message de news: %
Bonjour à tous

Dans un classeur j'ai 24 feuilles ..lorsque j'ouvre ce classeur un userform
apparait avec un combobox et j'aimerais avoir les noms initialisés ds le
combo (en premier lieu) et que la feuille sélectionée s'active (en 2e
phase)..

L'exemple ci dessous ne marche pas mais je n'ai trouvé que ça qui s'approche


"Private Sub ComboBox1_Change()

ComboBox1.AddItem "1_toto" = Feuil4.Activate
ComboBox1.AddItem "1_titi" = Feuil5.Activate
ComboBox1.AddItem "2_toto" = Feuil6.Activate
ComboBox1.AddItem "2_titi" = Feuil7.Activate
....
...
...

End Sub"

PS: 1= janvier
2= Fevrier
...soit 2x12 feuilles
--
Merci
Luigi
(enlever les chiffres pour me répondre)
Avatar
luigi
Super
merci bien michdenis,ça marche parfaitement..
Pour finir j'aurais aimé une petite explication de texte..

Merci
Luigi

"michdenis" a écrit dans le message de
news:
Bonjour Luigi,


'---------------------------
Private Sub ComboBox1_AfterUpdate()
'Différents événements possible ...
On Error Resume Next
With Me.ComboBox1
If .ListIndex <> -1 Then
Sheets(.Value).Select
On Error GoTo 0
End If
End With

End Sub

'---------------------------
Private Sub UserForm_Initialize()

With Me.ComboBox1
For Each sh In Sheets
.AddItem sh.Name
Next
End With

End Sub
'---------------------------


Salutations!


"luigi" a écrit dans le message de news:
%

Bonjour à tous

Dans un classeur j'ai 24 feuilles ..lorsque j'ouvre ce classeur un
userform

apparait avec un combobox et j'aimerais avoir les noms initialisés ds le
combo (en premier lieu) et que la feuille sélectionée s'active (en 2e
phase)..

L'exemple ci dessous ne marche pas mais je n'ai trouvé que ça qui
s'approche



"Private Sub ComboBox1_Change()

ComboBox1.AddItem "1_toto" = Feuil4.Activate
ComboBox1.AddItem "1_titi" = Feuil5.Activate
ComboBox1.AddItem "2_toto" = Feuil6.Activate
ComboBox1.AddItem "2_titi" = Feuil7.Activate
....
...
...

End Sub"

PS: 1= janvier
2= Fevrier
...soit 2x12 feuilles
--
Merci
Luigi
(enlever les chiffres pour me répondre)





Avatar
michdenis
Bonjour Luigi,



'Dans le cas où quelqu'un modifie le nom d'un des
'onglets de ta feuille pendant que le formulaire est affiché.
'C'est seulement au cas où ...
On Error Resume Next

With Me.ComboBox1
' si listindex = -1, le combobox n'affiche pas
'une sélection de l'usager...est vide
If .ListIndex <> -1 Then
'Sélection de la feuille
'Le .Value c'est la même chose que d'écrire
'Me.combobox1.value
'C'est l'avantage d'utiliser de With ...End With
'la saisie du code est plus court et le références plus précises !
Sheets(.Value).Select
'Si une erreur est provoquée par un nom d'onglet de feuille
'inexistant ...c'est une façon de dire à excel, d'effacer cette erreur
'et de continuer comme si il n'y en avait pas ....
On Error GoTo 0
End If
End With

End Sub

'---------------------------
Private Sub UserForm_Initialize()
' UserForm_Initialize = événement exécuté lorsque le
'formulaire se charge

With Me.ComboBox1
'Boucle : Pour chaque feuiille de la collection Sheets
'présents dans le classeur
For Each sh In Sheets
'Sh est une variable représentant une feuille (L'objet) différente
'de ton classeur à chaque boucle... ce qui lui permet
d'ajouter le nom de chacune d'entre elles.
.AddItem sh.Name
Next
End With

End Sub



Salutations!






"luigi" a écrit dans le message de news:
Super
merci bien michdenis,ça marche parfaitement..
Pour finir j'aurais aimé une petite explication de texte..

Merci
Luigi

"michdenis" a écrit dans le message de
news:
Bonjour Luigi,


'---------------------------
Private Sub ComboBox1_AfterUpdate()
'Différents événements possible ...
On Error Resume Next
With Me.ComboBox1
If .ListIndex <> -1 Then
Sheets(.Value).Select
On Error GoTo 0
End If
End With

End Sub

'---------------------------
Private Sub UserForm_Initialize()

With Me.ComboBox1
For Each sh In Sheets
.AddItem sh.Name
Next
End With

End Sub
'---------------------------


Salutations!


"luigi" a écrit dans le message de news:
%

Bonjour à tous

Dans un classeur j'ai 24 feuilles ..lorsque j'ouvre ce classeur un
userform

apparait avec un combobox et j'aimerais avoir les noms initialisés ds le
combo (en premier lieu) et que la feuille sélectionée s'active (en 2e
phase)..

L'exemple ci dessous ne marche pas mais je n'ai trouvé que ça qui
s'approche



"Private Sub ComboBox1_Change()

ComboBox1.AddItem "1_toto" = Feuil4.Activate
ComboBox1.AddItem "1_titi" = Feuil5.Activate
ComboBox1.AddItem "2_toto" = Feuil6.Activate
ComboBox1.AddItem "2_titi" = Feuil7.Activate
....
...
...

End Sub"

PS: 1= janvier
2= Fevrier
...soit 2x12 feuilles
--
Merci
Luigi
(enlever les chiffres pour me répondre)





Avatar
luigi
un grand merci pour tout..

Luigi

"michdenis" a écrit dans le message de
news:
Bonjour Luigi,



'Dans le cas où quelqu'un modifie le nom d'un des
'onglets de ta feuille pendant que le formulaire est affiché.
'C'est seulement au cas où ...
On Error Resume Next

With Me.ComboBox1
' si listindex = -1, le combobox n'affiche pas
'une sélection de l'usager...est vide
If .ListIndex <> -1 Then
'Sélection de la feuille
'Le .Value c'est la même chose que d'écrire
'Me.combobox1.value
'C'est l'avantage d'utiliser de With ...End With
'la saisie du code est plus court et le références plus précises !
Sheets(.Value).Select
'Si une erreur est provoquée par un nom d'onglet de feuille
'inexistant ...c'est une façon de dire à excel, d'effacer cette
erreur

'et de continuer comme si il n'y en avait pas ....
On Error GoTo 0
End If
End With

End Sub

'---------------------------
Private Sub UserForm_Initialize()
' UserForm_Initialize = événement exécuté lorsque le
'formulaire se charge

With Me.ComboBox1
'Boucle : Pour chaque feuiille de la collection Sheets
'présents dans le classeur
For Each sh In Sheets
'Sh est une variable représentant une feuille (L'objet) différente
'de ton classeur à chaque boucle... ce qui lui permet
d'ajouter le nom de chacune d'entre elles.
.AddItem sh.Name
Next
End With

End Sub



Salutations!






"luigi" a écrit dans le message de news:


Super
merci bien michdenis,ça marche parfaitement..
Pour finir j'aurais aimé une petite explication de texte..

Merci
Luigi

"michdenis" a écrit dans le message de
news:
Bonjour Luigi,


'---------------------------
Private Sub ComboBox1_AfterUpdate()
'Différents événements possible ...
On Error Resume Next
With Me.ComboBox1
If .ListIndex <> -1 Then
Sheets(.Value).Select
On Error GoTo 0
End If
End With

End Sub

'---------------------------
Private Sub UserForm_Initialize()

With Me.ComboBox1
For Each sh In Sheets
.AddItem sh.Name
Next
End With

End Sub
'---------------------------


Salutations!


"luigi" a écrit dans le message de news:
%

Bonjour à tous

Dans un classeur j'ai 24 feuilles ..lorsque j'ouvre ce classeur un
userform

apparait avec un combobox et j'aimerais avoir les noms initialisés ds
le


combo (en premier lieu) et que la feuille sélectionée s'active (en 2e
phase)..

L'exemple ci dessous ne marche pas mais je n'ai trouvé que ça qui
s'approche



"Private Sub ComboBox1_Change()

ComboBox1.AddItem "1_toto" = Feuil4.Activate
ComboBox1.AddItem "1_titi" = Feuil5.Activate
ComboBox1.AddItem "2_toto" = Feuil6.Activate
ComboBox1.AddItem "2_titi" = Feuil7.Activate
....
...
...

End Sub"

PS: 1= janvier
2= Fevrier
...soit 2x12 feuilles
--
Merci
Luigi
(enlever les chiffres pour me répondre)