Ok. Ma macro et la façon de l'appeler (comme précisé dans mon dernier message) fait cela
Version imprimable
Ok. Ma macro et la façon de l'appeler (comme précisé dans mon dernier message) fait cela
Bon je reprend a zéro parce que c'est sur qu'on risque de tourner en rond.:D
alors j'ai un tableau de deux colonnes A et B j'ai deux valeur : une dans la cellule C1 et l'autre dans la cellule C2
A B
1 1 12 Si C1 = 1 et C2 = 12
2 2 12 alors je selectionne mes lignes 1 et 5 uniquements
3 3 11
4 1 22
5 1 12
6 2 21
7 3 22
Vous comprennez mieux ???
Merci les gars:ccool:
Hum...
D'accord j'ai pigé
Mais là j'ai un soucis avec cette ligne qui s'affiche en jaune
C'est plage.Select
Code:
1
2
3
4 Plage.Select Range("C1").Select End Sub
Dans la procédure que je t'ai donnée, la ligne Range("c1").select. Relis mes derniers posts stp!
Donne tout le code que tu as utilisé, car juste la ligne qui plante, c'est un peu court
la ça ne bug plus mais ça ne fonctionne pas y a rien qui se passeCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub SelectionnerLignes(Feuille As Worksheet, ValA As Variant, ValB As Variant) Dim Cellule As Range, Plage As Range Dim i As Long For Each Cellule In Feuille.Range("a2:a" & Feuille.Range("a" & Feuille.Rows.Count).End(xlUp).Row) If Cellule = ValA And Cellule(1, 2) = ValB Then If Plage Is Nothing Then Set Plage = Feuille.Rows(Cellule.Row) Else Set Plage = Union(Plage, Feuille.Rows(Cellule.Row)) End If Next Cellule Feuille.Select Plage.Select End Sub Sub Rectangle1_Clic() SelectionnerLignes Worksheets("Feuil1"), Worksheets("Feuil1").Range("c1").Value, Worksheets("Feuil1").Range("c2").Value End Sub
Tu es certain d'avoir des concordances? N'oublie pas d'ajuster le nom de la feuille... :roll:
Regarde ce fichier
Heu vraiment mais vraiment désolé je sais que c'est pénible mais là en fait j'avais enlever (plage).select qui me créait mes bugs donc normal
Et maintenant, ça fonctionne?
Ben je sais pas j'ai exactement là même chose que toi donc je pige pas mais c'est bon je me calque avec se que tu as fais . Par contre si j'ai pas de valeur dans c2 ça me fait tous bugger.
Y a pas un moyen de rectifier le tir.
Après juré c'est terminé:oops:
J'ai été mangé un morceau mais depuis j'ai adapté un peu le code de Pierre, à ma façon
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub SelectionnerLignes() Dim Cellule As Range, Plage As Range, vala, valb, fl As Worksheet Set fl = Sheets("feuil1") vala = Range("c1") valb = Range("c2") For Each Cellule In fl.Range("a1:a" & fl.Range("a" & fl.Rows.Count).End(xlUp).Row) If Cellule = vala And Cellule(1, 2) = valb Then If Plage Is Nothing Then Set Plage = fl.Rows(Cellule.Row) Else Set Plage = Union(Plage, fl.Rows(Cellule.Row)) End If Next Cellule fl.Select Plage.Select End Sub
Remplace
parCode:Plage.Select
Code:If Not Plage Is Nothing Then Plage.Select
Dans le code de Dominique comme dans le mien, la ligne
est de trop (c'est un résidu de mon premier code)Code:Dim i As Long
Personnellement, je préfère le mien (:roll: ) car il permet d'être générique grâce aux paramètres, ce qui facilite la maintenance.
Mais chacun fera évidemment "à sa sauce"...
Oui je te remercie je viens de tester ton code ça fonctionne sauf que j'aurais aimé sélectionner non pas la ligne mais mes cellules;
Et j'ai essayer de voir aussi pour mettre une condition : si ma valeur en C2 est rien alors je sélectionne tout les valeur C1 sans regarder C2.
Je suis désolé je suis débutant et à mon boulot on me demande de faire ça j'ai pas le choix. Je suis en panique :cry:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Option Explicit Sub SelectionnerLignes(Feuille As Worksheet, ValA As Variant, ValB As Variant) Dim Cellule As Range, Plage As Range Dim i As Long For Each Cellule In Feuille.Range("a2:a" & Feuille.Range("a" & Feuille.Rows.Count).End(xlUp).Row) If Cellule = ValA And Cellule(1, 2) = ValB Then If Plage Is Nothing Then Set Plage = Feuille.Rows(Cellule.Row) Else Set Plage = Union(Plage, Feuille.Rows(Cellule.Row)) End If Next Cellule Feuille.Select If Not Plage Is Nothing Then Plage.Select End Sub Sub Rectangle_Clic() If Not (Range("C1").Value = "") And Range("C2").Value = "" Then SelectionnerLignes Feuil1, Feuil1.[c1] Else SelectionnerLignes Feuil1, Feuil1.[c1], Feuil1.[c2] End If End Sub
J'espère que cette discussion pourra permettre à d'autre qui se pose les même question de moin bloquer que moi.
pour tes cellules et ta condition c2 = ""
essayes ce code
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Sub SelectionnerLignes(Feuille As Worksheet, ValA As Variant, ValB As Variant) Dim Cellule As Range, Plage As Range For Each Cellule In Feuille.Range("a2:a" & Feuille.Range("a" & Feuille.Rows.Count).End(xlUp).Row) If Not IsEmpty(ValB) Then If Cellule = ValA And Cellule(1, 2) = ValB Then If Plage Is Nothing Then Set Plage = Union(Cellule, Cellule(1, 2)) Else Set Plage = Union(Plage, Cellule, Cellule(1, 2)) End If Else If Cellule = ValA Then If Plage Is Nothing Then Set Plage = Cellule Else Set Plage = Union(Plage, Cellule) End If End If Next Cellule Feuille.Select If Not Plage Is Nothing Then Plage.Select End Sub Sub Rectangle1_Clic() SelectionnerLignes Worksheets("Feuil1"), Worksheets("Feuil1").Range("c1").Value, Worksheets("Feuil1").Range("c2").Value End Sub
Nikel vous êtes nikel de chez nikel