Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V
Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 4DE8D49D-5927-4E6D-8DF8-E959F081EA24@microsoft.com...
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V
Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V
Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V
Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 4DE8D49D-5927-4E6D-8DF8-E959F081EA24@microsoft.com...
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V
Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V
Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V
Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 4DE8D49D-5927-4E6D-8DF8-E959F081EA24@microsoft.com...
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V
Bonjour Jean-Paul,
Tu as un petit exemple avec 2 combobox :
http://cjoint.com/?kdnHm2xthI
"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai dans une feuille les champs dynamiques fournisseur et montant
respectivement en colonne A et C
Dans un Userform des ComboBox nommés fournisseurs et montants et des TextBox
nommés fournisseur et montant
J’ai cette macro qui fonctionne :
Private Sub fournisseurs_Change()
If Me.fournisseurs.Value <> "" Then
Me.fournisseur = fournisseurs.Value
MonFournisseur = Me.fournisseur
Me.fournisseurs.ListIndex = -1
'MAJ du ComboBox Montants afin de ne montrer que les montants de ce
fournisseur
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("montant").Count
If Range("fournisseur")(i) = Me.fournisseur Then
temp = Range("montant")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Montants.List = temp
Me.Montants.ListIndex = -1
Pourquoi l’opération inverse c’est à dire d’abord sélectionner le montant et
donc faire la liste des fournisseurs pour ce montant ne marche pas ?
Private Sub Montants_Change()
If Me.Montants.Value <> "" Then
Me.Montant = Montants.Value
MonMontant = Montants.Value
MonFournisseur = Me.fournisseur
If Me.fournisseur = "" Then
'Mettre à jour Combobox Fournisseurs but ne montrer que les fournisseurs
avec ce montant
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("fournisseur").Count
' If Range("montant")(i) = Me.Montant Then 'ne marche pas
If Range("montant")(i) = Me.Montants.Value Then 'ne marche pas
' If Range("montant")(i) = Montants.Value Then 'ne marche pas
temp = Range("fournisseur")(i)
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
End If
Next i
temp = MonDico.items
' Call Tri(temp, LBound(temp), UBound(temp)) 'se plante car pas de liste?
' Me.fournisseurs.List = MonDico.items ‘ne marche pas non plus
Me.fournisseurs.List = temp
Me.fournisseurs.ListIndex = -1
Où est l’erreur ?
NB : j’ai essayé en neutralisant If Me.fournisseur = "" Then, cela ne
marche pas mieux.
à + j’espère
--
Jean-Paul V