Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" a écrit dans le message de groupe de discussion :
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" <circe@aea.gr> a écrit dans le message de groupe de discussion :
mn.6c347da463e18c8c.46999@aea.gr...
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" a écrit dans le message de groupe de discussion :
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
DanielPas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
DanielBonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que j'ai
une liste vide, ça plante ! et je ne comprends vraiment pas pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien que
plus concis, m'affiche le titre dans la liste déroulante lorsque celle ci
est vide... Et c'est ça mon problème... Si la liste est vide dans la
feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
Daniel
Pas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :
Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
Daniel
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que j'ai
une liste vide, ça plante ! et je ne comprends vraiment pas pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien que
plus concis, m'affiche le titre dans la liste déroulante lorsque celle ci
est vide... Et c'est ça mon problème... Si la liste est vide dans la
feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
DanielPas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
DanielBonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que j'ai
une liste vide, ça plante ! et je ne comprends vraiment pas pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien que
plus concis, m'affiche le titre dans la liste déroulante lorsque celle ci
est vide... Et c'est ça mon problème... Si la liste est vide dans la
feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
DanielPas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
DanielBonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que j'ai
une liste vide, ça plante ! et je ne comprends vraiment pas pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien que
plus concis, m'affiche le titre dans la liste déroulante lorsque celle
ci est vide... Et c'est ça mon problème... Si la liste est vide dans la
feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :
J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
Daniel
Pas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :
Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
Daniel
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que j'ai
une liste vide, ça plante ! et je ne comprends vraiment pas pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien que
plus concis, m'affiche le titre dans la liste déroulante lorsque celle
ci est vide... Et c'est ça mon problème... Si la liste est vide dans la
feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
DanielPas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
DanielBonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que j'ai
une liste vide, ça plante ! et je ne comprends vraiment pas pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien que
plus concis, m'affiche le titre dans la liste déroulante lorsque celle
ci est vide... Et c'est ça mon problème... Si la liste est vide dans la
feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Euh... j'ai parlé trop vite...
En fait, ça fonctionne quand la liste est vide
ça fonctionne quand elle a au moins 2 items
mais ça plante quand elle n'a qu'un seul item...
Circé
http://faqword.com
Le 14/04/2010, Circé a supposé :Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
DanielPas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
DanielBonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Euh... j'ai parlé trop vite...
En fait, ça fonctionne quand la liste est vide
ça fonctionne quand elle a au moins 2 items
mais ça plante quand elle n'a qu'un seul item...
Circé
http://faqword.com
Le 14/04/2010, Circé a supposé :
Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :
J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
Daniel
Pas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :
Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
Daniel
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Euh... j'ai parlé trop vite...
En fait, ça fonctionne quand la liste est vide
ça fonctionne quand elle a au moins 2 items
mais ça plante quand elle n'a qu'un seul item...
Circé
http://faqword.com
Le 14/04/2010, Circé a supposé :Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
DanielPas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
DanielBonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Bonjour.
En utilisant le classeur fourni hier, change la macro :
Private Sub ComboBox1_Change()
Dim Ligne As Long, Adresse As String
With Worksheets("Feuil1")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
Ligne = .Range("A65536").End(xlUp).Row
Adresse = "A2:A"
Case "machin"
Ligne = .Range("B65536").End(xlUp).Row
Adresse = "B2:B"
End Select
End With
If Ligne = 1 Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.RowSource = Adresse & Ligne
End If
End Sub
DanielEuh... j'ai parlé trop vite...
En fait, ça fonctionne quand la liste est vide
ça fonctionne quand elle a au moins 2 items
mais ça plante quand elle n'a qu'un seul item...
Circé
http://faqword.com
Le 14/04/2010, Circé a supposé :Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
DanielPas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
DanielBonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Bonjour.
En utilisant le classeur fourni hier, change la macro :
Private Sub ComboBox1_Change()
Dim Ligne As Long, Adresse As String
With Worksheets("Feuil1")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
Ligne = .Range("A65536").End(xlUp).Row
Adresse = "A2:A"
Case "machin"
Ligne = .Range("B65536").End(xlUp).Row
Adresse = "B2:B"
End Select
End With
If Ligne = 1 Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.RowSource = Adresse & Ligne
End If
End Sub
Daniel
Euh... j'ai parlé trop vite...
En fait, ça fonctionne quand la liste est vide
ça fonctionne quand elle a au moins 2 items
mais ça plante quand elle n'a qu'un seul item...
Circé
http://faqword.com
Le 14/04/2010, Circé a supposé :
Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :
J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
Daniel
Pas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :
Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
Daniel
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Bonjour.
En utilisant le classeur fourni hier, change la macro :
Private Sub ComboBox1_Change()
Dim Ligne As Long, Adresse As String
With Worksheets("Feuil1")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
Ligne = .Range("A65536").End(xlUp).Row
Adresse = "A2:A"
Case "machin"
Ligne = .Range("B65536").End(xlUp).Row
Adresse = "B2:B"
End Select
End With
If Ligne = 1 Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.RowSource = Adresse & Ligne
End If
End Sub
DanielEuh... j'ai parlé trop vite...
En fait, ça fonctionne quand la liste est vide
ça fonctionne quand elle a au moins 2 items
mais ça plante quand elle n'a qu'un seul item...
Circé
http://faqword.com
Le 14/04/2010, Circé a supposé :Daniel
Je rétablis une vérité...
Ton code marche très bien ! Ouf !
Je l'ai adopté.
Il est vrai que celui de michdenis aurait été plus pratique car j'ai une
douzaine de CASE, mais bon... ça fonctionne et c'est le principal.
Un grand merci.
Circé
http://faqword.com
Daniel.C a utilisé son clavier pour écrire :J'ai sans doute mal compris; regarde le classeur suivant :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijlI1tmcS.xls
DanielPas mieux ! :(
Plantage immédiat ! :(
ça m'agace ce truc !
Circé
Daniel.C avait écrit le 13/04/2010 :Essaie plutôt :
With Worksheets("mafeuille")
monchoix = ComboBox1.Value
Select Case monchoix
Case "truc"
If .Range("A65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End If
Case "machin"
If .Range("B65536").End(xlUp).Row = 1 Then
Set rg = Nothing
Else
Set rg = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
End If
End Select
End With
If rg Is Nothing Then
Me.ComboBox2.Clear
Else
Me.ComboBox2.List = rg.Value
End If
DanielBonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" a écrit dans le message de groupe de discussion :
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" <circe@aea.gr> a écrit dans le message de groupe de discussion :
mn.6c347da463e18c8c.46999@aea.gr...
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" a écrit dans le message de groupe de discussion :
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Voici un fichier exemple avec le code commenté.
Tu ne devrais pas éprouver de difficulté à adapter !
http://cjoint.com/?eondzywkJY
"Circé" a écrit dans le message de groupe de discussion :
Bonjour à tous les deux
Bon, je n'y comprends rien !
J'ai essayé vos deux codes qui fonctionnenent très bien sauf dans mon
classeur...
Il n'y a rien à faire, j'ai toujours cette première ligne qui s'affiche
dans la combobox quand la liste est vide...
J'abandonne et je passe à la bidouille.
Merci quand même... Je garde ça précieusement pour une autre fois...
Circé
http://faqword.com
michdenis a exposé le 13/04/2010 :Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" a écrit dans le message de groupe de discussion :
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Voici un fichier exemple avec le code commenté.
Tu ne devrais pas éprouver de difficulté à adapter !
http://cjoint.com/?eondzywkJY
"Circé" <circe@aea.gr> a écrit dans le message de groupe de discussion :
mn.724c7da4ab77d0df.46999@aea.gr...
Bonjour à tous les deux
Bon, je n'y comprends rien !
J'ai essayé vos deux codes qui fonctionnenent très bien sauf dans mon
classeur...
Il n'y a rien à faire, j'ai toujours cette première ligne qui s'affiche
dans la combobox quand la liste est vide...
J'abandonne et je passe à la bidouille.
Merci quand même... Je garde ça précieusement pour une autre fois...
Circé
http://faqword.com
michdenis a exposé le 13/04/2010 :
Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" <circe@aea.gr> a écrit dans le message de groupe de discussion :
mn.6c347da463e18c8c.46999@aea.gr...
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Voici un fichier exemple avec le code commenté.
Tu ne devrais pas éprouver de difficulté à adapter !
http://cjoint.com/?eondzywkJY
"Circé" a écrit dans le message de groupe de discussion :
Bonjour à tous les deux
Bon, je n'y comprends rien !
J'ai essayé vos deux codes qui fonctionnenent très bien sauf dans mon
classeur...
Il n'y a rien à faire, j'ai toujours cette première ligne qui s'affiche
dans la combobox quand la liste est vide...
J'abandonne et je passe à la bidouille.
Merci quand même... Je garde ça précieusement pour une autre fois...
Circé
http://faqword.com
michdenis a exposé le 13/04/2010 :Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" a écrit dans le message de groupe de discussion :
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Voici un fichier exemple avec le code commenté.
Tu ne devrais pas éprouver de difficulté à adapter !
http://cjoint.com/?eondzywkJY
"Circé" a écrit dans le message de groupe de discussion :
Bonjour à tous les deux
Bon, je n'y comprends rien !
J'ai essayé vos deux codes qui fonctionnenent très bien sauf dans mon
classeur...
Il n'y a rien à faire, j'ai toujours cette première ligne qui s'affiche
dans la combobox quand la liste est vide...
J'abandonne et je passe à la bidouille.
Merci quand même... Je garde ça précieusement pour une autre fois...
Circé
http://faqword.com
michdenis a exposé le 13/04/2010 :Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" a écrit dans le message de groupe de discussion :
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Voici un fichier exemple avec le code commenté.
Tu ne devrais pas éprouver de difficulté à adapter !
http://cjoint.com/?eondzywkJY
"Circé" <circe@aea.gr> a écrit dans le message de groupe de discussion :
mn.724c7da4ab77d0df.46999@aea.gr...
Bonjour à tous les deux
Bon, je n'y comprends rien !
J'ai essayé vos deux codes qui fonctionnenent très bien sauf dans mon
classeur...
Il n'y a rien à faire, j'ai toujours cette première ligne qui s'affiche
dans la combobox quand la liste est vide...
J'abandonne et je passe à la bidouille.
Merci quand même... Je garde ça précieusement pour une autre fois...
Circé
http://faqword.com
michdenis a exposé le 13/04/2010 :
Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" <circe@aea.gr> a écrit dans le message de groupe de discussion :
mn.6c347da463e18c8c.46999@aea.gr...
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com
Voici un fichier exemple avec le code commenté.
Tu ne devrais pas éprouver de difficulté à adapter !
http://cjoint.com/?eondzywkJY
"Circé" a écrit dans le message de groupe de discussion :
Bonjour à tous les deux
Bon, je n'y comprends rien !
J'ai essayé vos deux codes qui fonctionnenent très bien sauf dans mon
classeur...
Il n'y a rien à faire, j'ai toujours cette première ligne qui s'affiche
dans la combobox quand la liste est vide...
J'abandonne et je passe à la bidouille.
Merci quand même... Je garde ça précieusement pour une autre fois...
Circé
http://faqword.com
michdenis a exposé le 13/04/2010 :Ça y est, une dernière petite correction a été faite :
Code du formulaire du fichier exemple
Dim RgCombobox1 As Range
Dim Sh As Worksheet
'--------------------------------
Private Sub ComboBox1_Change()
Dim Rg As Range, S As Long
With Me.ComboBox1
S = IIf(Sh.Cells(65536, .ListIndex + 1).End(xlUp). _
Row = 1, 2, Sh.Cells(65536, .ListIndex + 1). _
End(xlUp).Row)
Set Rg = Sh.Range(RgCombobox1(1, .ListIndex + 1). _
Offset(1).Resize(S).Address)
Me.ComboBox2.List = Rg.Value
End With
End Sub
'--------------------------------
Private Sub UserForm_Initialize()
Dim X As Variant
Set Sh = Worksheets("Feuil1")
With Sh
Set RgCombobox1 = .Range("A1", .Cells(1, .Range("IV1"). _
End(xlToLeft).Column))
X = RgCombobox1
Me.ComboBox1.List = Application.Transpose(X)
End With
End Sub
'--------------------------------
"Circé" a écrit dans le message de groupe de discussion :
Bonsoir Daniel et MichDenis
DDaniel, j'avais utilisé à peu près la même technique, mais dès que
j'ai une liste vide, ça plante ! et je ne comprends vraiment pas
pourquoi...
MichDenis, en fait tu n'as compris mon problème... Car ton code bien
que plus concis, m'affiche le titre dans la liste déroulante lorsque
celle ci est vide... Et c'est ça mon problème... Si la liste est vide
dans la feuille Excel, je veux qu'elle soit vide dans mon formulaire.
D'autres idées ?
Circé
http://faqword.com