Rechercher de ligne selon deux critères
Résolu
kevin
-
kevin -
kevin -
Bonjour,
Je débute dans VBA, et après quelques heures de recherche je n'arrive pas à trouver la solution à mon problème.
J'ai une base de donnée qui ce remplie selon les information rentrées dans les différents UserForm crée.
L'un d'entre eux permet grâce à une "ComboBox1" de sélectioner une marque (ex : Ferrari, Peugeot, AUDI, ...) et grâce à une seconde "ComboBox2" qui elle me permet de sélectionner le type (ex: 1, 2, 3 ...).
J'ai en partie réussi grâce aux lignes de codes suivantes, à rechercher ce que je souhaite :
Dim Plage, Plage1 As Range
Dim Cel, Cel1 As Range
Dim ligne As Integer
If ComboBox1.Value = "" Then
MsgBox "Veuillez préciser le Modèle"
End If
If ComboBox2.Value = "" Then
MsgBox "Veuillez préciser le Type"
End If
<ital>If ComboBox1.Value <> "" And ComboBox2.Value <> "" Then
ligne = Sheets("donnée").Range("A" & 1).Value
Set Plage = Sheets("donnée").Range("D5:D" & ligne)
For Each Cel In Plage
If Cel.Value = UserForm3.ComboBox1.Value Then
Rows(Cel.Row).Hidden = False
Else
Rows(Cel.Row).Hidden = True
End If
Next
Set Plage1 = Sheets("donnée").Range("G5:G" & ligne)
For Each Cel1 In Plage1
If Cel1.Value = UserForm3.ComboBox2.Value Then
Rows(Cel1.Row).Hidden = False
Else
Rows(Cel1.Row).Hidden = True
End If
Next
Windows(1).WindowState = xlMaximized
Worksheets("donnée").Activate
ActiveSheet.PageSetup.Orientation = xlLandscape
UserForm3.Hide
Userform1.Hide
End If</ital>
Le problème est que si par exemple je demande a afficher le modèle ferrari et le type 2 de ce modèle, de par les lignes de code, le logiciel m'affiche tous les types 2 de tous les modèles !! et non uniquement le type 2 de ferrari.
Pouvez-vous m'aider, en espérant avoir étais assez clair, n'hesitez a demander plus de précision au cas ou.
Je remercie d'avance les personnes qui prendont le temps de lire ce message et surtout d'y répondre.
bonne fin de journée.
<config>Windows 7 / Internet Explorer 7.0</config>
Je débute dans VBA, et après quelques heures de recherche je n'arrive pas à trouver la solution à mon problème.
J'ai une base de donnée qui ce remplie selon les information rentrées dans les différents UserForm crée.
L'un d'entre eux permet grâce à une "ComboBox1" de sélectioner une marque (ex : Ferrari, Peugeot, AUDI, ...) et grâce à une seconde "ComboBox2" qui elle me permet de sélectionner le type (ex: 1, 2, 3 ...).
J'ai en partie réussi grâce aux lignes de codes suivantes, à rechercher ce que je souhaite :
Dim Plage, Plage1 As Range
Dim Cel, Cel1 As Range
Dim ligne As Integer
If ComboBox1.Value = "" Then
MsgBox "Veuillez préciser le Modèle"
End If
If ComboBox2.Value = "" Then
MsgBox "Veuillez préciser le Type"
End If
<ital>If ComboBox1.Value <> "" And ComboBox2.Value <> "" Then
ligne = Sheets("donnée").Range("A" & 1).Value
Set Plage = Sheets("donnée").Range("D5:D" & ligne)
For Each Cel In Plage
If Cel.Value = UserForm3.ComboBox1.Value Then
Rows(Cel.Row).Hidden = False
Else
Rows(Cel.Row).Hidden = True
End If
Next
Set Plage1 = Sheets("donnée").Range("G5:G" & ligne)
For Each Cel1 In Plage1
If Cel1.Value = UserForm3.ComboBox2.Value Then
Rows(Cel1.Row).Hidden = False
Else
Rows(Cel1.Row).Hidden = True
End If
Next
Windows(1).WindowState = xlMaximized
Worksheets("donnée").Activate
ActiveSheet.PageSetup.Orientation = xlLandscape
UserForm3.Hide
Userform1.Hide
End If</ital>
Le problème est que si par exemple je demande a afficher le modèle ferrari et le type 2 de ce modèle, de par les lignes de code, le logiciel m'affiche tous les types 2 de tous les modèles !! et non uniquement le type 2 de ferrari.
Pouvez-vous m'aider, en espérant avoir étais assez clair, n'hesitez a demander plus de précision au cas ou.
Je remercie d'avance les personnes qui prendont le temps de lire ce message et surtout d'y répondre.
bonne fin de journée.
<config>Windows 7 / Internet Explorer 7.0</config>
A voir également:
- Rechercher de ligne selon deux critères
- Partage de photos en ligne - Guide
- Rechercher ou entrer l'adresse - Guide
- Nombre de jours entre deux dates excel - Guide
- Mètre en ligne - Guide
- Deux ecran pc - Guide
2 réponses
Bonjour
Si j'ai bien compris, tu veux masquer les lignes où, par exemple, on a des Ferrari de type2
c'est ça?
nombre de lignes inférieur ou non à 1000 ? (utilisation ou non de filtres élaborés)
dans l'attente
au besoin:
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de répon
Michel
Si j'ai bien compris, tu veux masquer les lignes où, par exemple, on a des Ferrari de type2
c'est ça?
nombre de lignes inférieur ou non à 1000 ? (utilisation ou non de filtres élaborés)
dans l'attente
au besoin:
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de répon
Michel
Bonsoir à tous,
Dans la 2nde boucle tu démasque les lignes cachée lors de la 1ère boucle.
sans tester (faute de fichier) je ferai une seule boucle :
eric
Dans la 2nde boucle tu démasque les lignes cachée lors de la 1ère boucle.
sans tester (faute de fichier) je ferai une seule boucle :
' .... Set Plage = Sheets("donnée").Range("D5:D" & ligne) For Each Cel In Plage Rows(Cel.Row).Hidden = Not ((Cel = UserForm3.ComboBox1) And (Cel.Offset(3, 0) = UserForm3.ComboBox2)) Next Cel ' ...
eric
Car pour le moment, quand je demande ce type de recherche, il me donne tout les modèles de type 2 et non uniquement le modèle Ferrari.
le fichier possède moins de 1000 lignes.
Je déposerai le fichier demain matin quand je serait aux bureau :)
Merci bien
merci
Rien reçu: Il faut que tu copies l'URL du lien dans ton message
J'ai rajouter une condition avant la seconde boucle.
Merci d'avoir pris de ton temps pour me répondre