Bonsoir Robert,
Voici une procédure que tu peux lancer à l'ouverture du fichier, elle va
initialer tous les combobox de ta feuille d'un
seul coup.
la plage de cellules IV25000 et plus est réservée à un filtre élaboré sans
doublon pour récupérer les listes.
J'ai pris pour acquis que tu n'avais pas plus de 11 combobox dans la
feuille , chacun attaché aux 11 colonnes de ta
plage de cellules.(et ce pour les fins de la boucle dans la procécure ...
for each ... in ...)
Évidemment, les 11 colonnes doivent être adjacentes...
Tu n'as qu'à définir quelques variables selon la donne de ton projet.
'-----------------------------------------
Sub Initialer_Contenu_Des_Combobox()
Dim Rg As Range, DerLig As Long, Rg1 As Range
Dim Tblo As Variant, NomCombobox As String
Dim Sh As Worksheet, Shp As Shape
'********Variable à définir**********
NomCombobox = "Combobox" 'Sans l'index
Set Sh = Worksheets("Feuil1")
'Ne pas oublier aussi la plage de cellule
'exemple --> .Range("A:K")...
'************************************
With Sh
'Cellule de destintation où se fera
'un filtre élaboré sans doublons.
Set Rg1 = .Range("IV25000")
'détermine la dernière lignes de données
DerLig = .Range("A:K").Find("*", SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set Rg = .Range("A1:K" & DerLig)
End With
On Error Resume Next
For Each Shp In Sh.Shapes
'Cette ligne de code génère une erreur si le
'contrôle n'est pas un objet provenant de la barre
'outils contrôle --> raison du On error ...
If TypeName(Shp.OLEFormat.Object.Object) = "ComboBox" Then
If Err = 0 Then
A = A + 1
With Sh
.Range(Rg1, .Range(Rg1.Address).End(xlDown)).Clear
With Rg.Columns(A).SpecialCells(xlCellTypeConstants)
.AdvancedFilter xlFilterCopy, , Rg1, True
End With
Tblo = .Range(Rg1.Offset(1),
.Range(Rg1.Address).End(xlDown))
.Shapes(NomCombobox & A).OLEFormat.Object.Object.List Tblo
End With
Else
Err = 0
End If
End If
Next
Set Rg = Nothing: Set Rg1 = Nothing
Set Sh = Nothing: Set Shp = Nothing
End Sub
'-----------------------------------------
Salutations!
"Herdet" a écrit dans le message de
news:
Bonsoir Denis,
Bon, faisons au plus simple et j'adapterai la solution (si elle existe)
J'ai un tableau de données A1:A101 avec en A1 le nom de champ "Prix" puis
100 lignes de valeurs quelconques.
Je créé un Filtre automatique sur "Prix"
Je clique sur la petite flêche bleue qui déroule un certain nb de valeurs
sans doublon.
Comment récupérer ces valeurs sans doublon dans un tableau VBA nommé
TAprix
?
Je pense que cela devrait être plus compréhensible.
A bientôt
Robert
"michdenis" a écrit dans le message de news:
#Bonsoir Robert,
Je n'ai pas tout compris ...
tu as 11 colonnes et chacune d'elles est contenu dans un combobox.
Si tu choisis une valeur dans le combobox1 représentant les valeurs de
ta
première colonne de ta table des données, tuvoudrais que suite à un filtre automatique que le même combobox affiche
le
résultat du filtre automatique. Est-ce quej'ai bien compris ? Chaque colonne est indépendante des unes des autres
lors de l'application des filtres ?
Salutations!
"Herdet" a écrit dans le message de
news:Bonsoir à tous,
Je sais, un dimanche en plein pont du 11 novembre (en France), j'ai peu
de
chance d'avoir une réponse, mais bon... essayons.
Exposé du propblème :
Après l'utilisation de filtre automatique, je cherche à récupérer en VBA
dans des Combobox les items qui sont visibles en cliquant dans les
petites
flêches bleue de chaque colonne d'un tableau de données.
Pour mon exemple, j'ai 3 combo nommées CBX1, CBX2,CBX3 (en réalité j'en
ai
11) disposées sur une feuille.
La feuille de données est nommée Sht_base et est masquée en utilisation
(sipossible très masquée par Visible=xlSheetVeryHidden)
Si je fais une sélection dans la combo CBX1
Private Sub CBX1_Change()
Sht_base.Range("A3").AutoFilter field:=3,
Criteria1:=Sht_Rech.CBX1.Value, VisibleDropDown:=True
'-------- récupération dans CBX1 et CBX2 des valeurs des nouvelles
listes
' de la filtration automatique qui sont en principe plus
réduites
' et c'est là que j'ai besoin de vos lumières (SOS)!
End Sub
Merci et à bientôt.
Robert Dezan
Bonsoir Robert,
Voici une procédure que tu peux lancer à l'ouverture du fichier, elle va
initialer tous les combobox de ta feuille d'un
seul coup.
la plage de cellules IV25000 et plus est réservée à un filtre élaboré sans
doublon pour récupérer les listes.
J'ai pris pour acquis que tu n'avais pas plus de 11 combobox dans la
feuille , chacun attaché aux 11 colonnes de ta
plage de cellules.(et ce pour les fins de la boucle dans la procécure ...
for each ... in ...)
Évidemment, les 11 colonnes doivent être adjacentes...
Tu n'as qu'à définir quelques variables selon la donne de ton projet.
'-----------------------------------------
Sub Initialer_Contenu_Des_Combobox()
Dim Rg As Range, DerLig As Long, Rg1 As Range
Dim Tblo As Variant, NomCombobox As String
Dim Sh As Worksheet, Shp As Shape
'********Variable à définir**********
NomCombobox = "Combobox" 'Sans l'index
Set Sh = Worksheets("Feuil1")
'Ne pas oublier aussi la plage de cellule
'exemple --> .Range("A:K")...
'************************************
With Sh
'Cellule de destintation où se fera
'un filtre élaboré sans doublons.
Set Rg1 = .Range("IV25000")
'détermine la dernière lignes de données
DerLig = .Range("A:K").Find("*", SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set Rg = .Range("A1:K" & DerLig)
End With
On Error Resume Next
For Each Shp In Sh.Shapes
'Cette ligne de code génère une erreur si le
'contrôle n'est pas un objet provenant de la barre
'outils contrôle --> raison du On error ...
If TypeName(Shp.OLEFormat.Object.Object) = "ComboBox" Then
If Err = 0 Then
A = A + 1
With Sh
.Range(Rg1, .Range(Rg1.Address).End(xlDown)).Clear
With Rg.Columns(A).SpecialCells(xlCellTypeConstants)
.AdvancedFilter xlFilterCopy, , Rg1, True
End With
Tblo = .Range(Rg1.Offset(1),
.Range(Rg1.Address).End(xlDown))
.Shapes(NomCombobox & A).OLEFormat.Object.Object.List Tblo
End With
Else
Err = 0
End If
End If
Next
Set Rg = Nothing: Set Rg1 = Nothing
Set Sh = Nothing: Set Shp = Nothing
End Sub
'-----------------------------------------
Salutations!
"Herdet" <rdezan@noos.fr> a écrit dans le message de
news:ueSJCqxpDHA.1676@TK2MSFTNGP09.phx.gbl...
Bonsoir Denis,
Bon, faisons au plus simple et j'adapterai la solution (si elle existe)
J'ai un tableau de données A1:A101 avec en A1 le nom de champ "Prix" puis
100 lignes de valeurs quelconques.
Je créé un Filtre automatique sur "Prix"
Je clique sur la petite flêche bleue qui déroule un certain nb de valeurs
sans doublon.
Comment récupérer ces valeurs sans doublon dans un tableau VBA nommé
TAprix
?
Je pense que cela devrait être plus compréhensible.
A bientôt
Robert
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
#eXa4AxpDHA.2964@tk2msftngp13.phx.gbl...
Bonsoir Robert,
Je n'ai pas tout compris ...
tu as 11 colonnes et chacune d'elles est contenu dans un combobox.
Si tu choisis une valeur dans le combobox1 représentant les valeurs de
ta
première colonne de ta table des données, tu
voudrais que suite à un filtre automatique que le même combobox affiche
le
résultat du filtre automatique. Est-ce que
j'ai bien compris ? Chaque colonne est indépendante des unes des autres
lors de l'application des filtres ?
Salutations!
"Herdet" <rdezan@noos.fr> a écrit dans le message de
news:OY2YOwwpDHA.1408@TK2MSFTNGP11.phx.gbl...
Bonsoir à tous,
Je sais, un dimanche en plein pont du 11 novembre (en France), j'ai peu
de
chance d'avoir une réponse, mais bon... essayons.
Exposé du propblème :
Après l'utilisation de filtre automatique, je cherche à récupérer en VBA
dans des Combobox les items qui sont visibles en cliquant dans les
petites
flêches bleue de chaque colonne d'un tableau de données.
Pour mon exemple, j'ai 3 combo nommées CBX1, CBX2,CBX3 (en réalité j'en
ai
11) disposées sur une feuille.
La feuille de données est nommée Sht_base et est masquée en utilisation
(si
possible très masquée par Visible=xlSheetVeryHidden)
Si je fais une sélection dans la combo CBX1
Private Sub CBX1_Change()
Sht_base.Range("A3").AutoFilter field:=3,
Criteria1:=Sht_Rech.CBX1.Value, VisibleDropDown:=True
'-------- récupération dans CBX1 et CBX2 des valeurs des nouvelles
listes
' de la filtration automatique qui sont en principe plus
réduites
' et c'est là que j'ai besoin de vos lumières (SOS)!
End Sub
Merci et à bientôt.
Robert Dezan
Bonsoir Robert,
Voici une procédure que tu peux lancer à l'ouverture du fichier, elle va
initialer tous les combobox de ta feuille d'un
seul coup.
la plage de cellules IV25000 et plus est réservée à un filtre élaboré sans
doublon pour récupérer les listes.
J'ai pris pour acquis que tu n'avais pas plus de 11 combobox dans la
feuille , chacun attaché aux 11 colonnes de ta
plage de cellules.(et ce pour les fins de la boucle dans la procécure ...
for each ... in ...)
Évidemment, les 11 colonnes doivent être adjacentes...
Tu n'as qu'à définir quelques variables selon la donne de ton projet.
'-----------------------------------------
Sub Initialer_Contenu_Des_Combobox()
Dim Rg As Range, DerLig As Long, Rg1 As Range
Dim Tblo As Variant, NomCombobox As String
Dim Sh As Worksheet, Shp As Shape
'********Variable à définir**********
NomCombobox = "Combobox" 'Sans l'index
Set Sh = Worksheets("Feuil1")
'Ne pas oublier aussi la plage de cellule
'exemple --> .Range("A:K")...
'************************************
With Sh
'Cellule de destintation où se fera
'un filtre élaboré sans doublons.
Set Rg1 = .Range("IV25000")
'détermine la dernière lignes de données
DerLig = .Range("A:K").Find("*", SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set Rg = .Range("A1:K" & DerLig)
End With
On Error Resume Next
For Each Shp In Sh.Shapes
'Cette ligne de code génère une erreur si le
'contrôle n'est pas un objet provenant de la barre
'outils contrôle --> raison du On error ...
If TypeName(Shp.OLEFormat.Object.Object) = "ComboBox" Then
If Err = 0 Then
A = A + 1
With Sh
.Range(Rg1, .Range(Rg1.Address).End(xlDown)).Clear
With Rg.Columns(A).SpecialCells(xlCellTypeConstants)
.AdvancedFilter xlFilterCopy, , Rg1, True
End With
Tblo = .Range(Rg1.Offset(1),
.Range(Rg1.Address).End(xlDown))
.Shapes(NomCombobox & A).OLEFormat.Object.Object.List Tblo
End With
Else
Err = 0
End If
End If
Next
Set Rg = Nothing: Set Rg1 = Nothing
Set Sh = Nothing: Set Shp = Nothing
End Sub
'-----------------------------------------
Salutations!
"Herdet" a écrit dans le message de
news:
Bonsoir Denis,
Bon, faisons au plus simple et j'adapterai la solution (si elle existe)
J'ai un tableau de données A1:A101 avec en A1 le nom de champ "Prix" puis
100 lignes de valeurs quelconques.
Je créé un Filtre automatique sur "Prix"
Je clique sur la petite flêche bleue qui déroule un certain nb de valeurs
sans doublon.
Comment récupérer ces valeurs sans doublon dans un tableau VBA nommé
TAprix
?
Je pense que cela devrait être plus compréhensible.
A bientôt
Robert
"michdenis" a écrit dans le message de news:
#Bonsoir Robert,
Je n'ai pas tout compris ...
tu as 11 colonnes et chacune d'elles est contenu dans un combobox.
Si tu choisis une valeur dans le combobox1 représentant les valeurs de
ta
première colonne de ta table des données, tuvoudrais que suite à un filtre automatique que le même combobox affiche
le
résultat du filtre automatique. Est-ce quej'ai bien compris ? Chaque colonne est indépendante des unes des autres
lors de l'application des filtres ?
Salutations!
"Herdet" a écrit dans le message de
news:Bonsoir à tous,
Je sais, un dimanche en plein pont du 11 novembre (en France), j'ai peu
de
chance d'avoir une réponse, mais bon... essayons.
Exposé du propblème :
Après l'utilisation de filtre automatique, je cherche à récupérer en VBA
dans des Combobox les items qui sont visibles en cliquant dans les
petites
flêches bleue de chaque colonne d'un tableau de données.
Pour mon exemple, j'ai 3 combo nommées CBX1, CBX2,CBX3 (en réalité j'en
ai
11) disposées sur une feuille.
La feuille de données est nommée Sht_base et est masquée en utilisation
(sipossible très masquée par Visible=xlSheetVeryHidden)
Si je fais une sélection dans la combo CBX1
Private Sub CBX1_Change()
Sht_base.Range("A3").AutoFilter field:=3,
Criteria1:=Sht_Rech.CBX1.Value, VisibleDropDown:=True
'-------- récupération dans CBX1 et CBX2 des valeurs des nouvelles
listes
' de la filtration automatique qui sont en principe plus
réduites
' et c'est là que j'ai besoin de vos lumières (SOS)!
End Sub
Merci et à bientôt.
Robert Dezan