Limiter une plage de valeurs indentiques dans un tableau en VBA

Le
Apitos
Bonjour à tous,

J'aimerais, dans un tableau de données trié sur plusieurs colonnes, d=
éterminer une plage de valeurs identiques situées dans la colonne B de =
ce tableau.

L'idée qui m'est venu et de déterminer la première ligne et la derni=
ère ligne contenant la valeur recherchée, ensuite nommée les lignes t=
rouvées dans une plage.

Mais pas code à l'instant !

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #26356982
bonjour Apitos,

voici un exemple avec la fonction EQUIV

TexteChercher = "Secondaire"
debut = Application.Match(TexteChercher, Range("B:B"), 0)
fin = Application.Match(TexteChercher, Range("B:B"), 1)
Set plage = Range("A" & debut & ":B" & fin)

isabelle

Le 2015-06-17 17:41, Apitos a écrit :
Un exemple :


http://www.cjoint.com/c/EFrvPoie7au

Jacky
Le #26356983
Bonjour,

....ensuite nommée les lignes trouvées dans une plage
'--------------------------
Sub test()
With ActiveSheet.Range("A6:B" & Cells(Rows.Count, 1).End(xlUp).Row)
Range("A5:B5").AutoFilter Field:=2, Criteria1:="Secondaire"
ActiveWorkbook.Names.Add Name:="plage", RefersTo:="=" & .SpecialCells(xlCellTypeVisible).Address
.AutoFilter
End With
End Sub
'---------------------------
--
Salutations
JJ


"Apitos"
Bonjour à tous,

J'aimerais, dans un tableau de données trié sur plusieurs colonnes, déterminer une plage de valeurs identiques
situées dans la colonne B de ce tableau.

L'idée qui m'est venu et de déterminer la première ligne et la dernière ligne contenant la valeur recherchée,
ensuite nommée les lignes trouvées dans une plage.

Mais pas code à l'instant !

Merci d'avance.
MichD
Le #26357047
Bonjour,

Si tu veux obtenir toutes les données dont l'occurrence est plus grande que 1,
utilise le filtre élaboré (avancé) et comme critère, emploie ce type de formule :

=NB.SI($A$1:$A$10;A2)>1

A1:A10 est la base de données, la cellule A1 est l'étiquette de colonne
A2 est la première cellule de la plage contenant les données.

Pour utiliser une formule comme critère dans un filtre avancé, tu dois définir une plage
de cellules de 2 cellules

Exemple :

G1 : Totalement vide ou une étiquette que tu NE retrouves PAS dans la plage de données.
G2 : La formule : =NB.SI($A$1:$A$10;A2)>1

Si tu utilises l'enregistreur de code, ce dernier te donnera l'essentiel du code. Si tu as par la
suite de la difficulté à le peaufiner, publie ce code ici, on pourra certainement t'aider.
Apitos
Le #26357063
Bonjour Isabelle, Jacky, MichD,

Merci pour vos réponses respectives.

MichD :: Déterminer et nommer la plage des cellules qui répondent aux c ritères de la recherche et nécessaire pour boucler sur toutes les ligne s de cette plage, afin d'extraire les données des autres colonnes dans un nouvelle feuille.

Je vais essayé ce que tu m'as demandé...
Apitos
Le #26357062
Je vais essayé ce que tu m'as demandé...



Voila le code, mais sans uncun résultat :

'---------------------------
Sub Macro1()
'
' Macro1 Macro
'

'
Range("A5:B14").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange := _
Range("G1:G2"), Unique:úlse
End Sub
'--------------------------
MichD
Le #26357092
'---------------------------
Sub Macro1()
'
' Macro1 Macro
'

'
Range("A5:B14").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("G1:G2"), Unique:úlse
End Sub
'--------------------------

****** Dans l'exemple que je t'ai expliqué, la plage où il y a des doublons n'a QU'UNE COLONNE!
MichD
Le #26357091
****** Dans l'exemple que je t'ai expliqué, la plage où il y a des doublons n'a QU'UNE COLONNE!

Je veux dire que le filtre s'effectue que sur une colonne de la plage de données.
Apitos
Le #26357183
Bonjour,

****** Dans l'exemple que je t'ai expliqué, la plage où il y a des do ublons n'a QU'UNE COLONNE!

Je veux dire que le filtre s'effectue que sur une colonne de la plage de données.



Même en appliquant un filtre élaboré sur une seule colonne, ça ne d onne rien !

Jacky :: Quand je voulais avoir l'adresse de la plage résultante avec la ligne :

Debug.Print "plage Jacky = " & plage.Address

ça me déclenche une erreur :

Erreur d'exécution 424 . Objet requis !
Jacky
Le #26357186
Re...
Debug.Print "plage Jacky = " & plage.Address
ça me déclenche une erreur :








'------------
Debug.Print "plage Jacky = " & [plage].Address
'Ou
MsgBox "plage Jacky = " & [plage].Address'
'--------------

Nb:Tu peux aussi vérifier dans le gestionnaire des noms que celui-ci est bien créé
--
Salutations
JJ


"Apitos"
Bonjour,

****** Dans l'exemple que je t'ai expliqué, la plage où il y a des doublons n'a QU'UNE COLONNE!

Je veux dire que le filtre s'effectue que sur une colonne de la plage de données.



Même en appliquant un filtre élaboré sur une seule colonne, ça ne donne rien !

Jacky :: Quand je voulais avoir l'adresse de la plage résultante avec la ligne :

Debug.Print "plage Jacky = " & plage.Address

ça me déclenche une erreur :

Erreur d'exécution 424 . Objet requis !
Publicité
Poster une réponse
Anonyme