Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Limiter une plage de valeurs indentiques dans un tableau en VBA

20 réponses
Avatar
Apitos
Bonjour =E0 tous,

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

L'id=E9e qui m'est venu et de d=E9terminer la premi=E8re ligne et la derni=
=E8re ligne contenant la valeur recherch=E9e, ensuite nomm=E9e les lignes t=
rouv=E9es dans une plage.

Mais pas code =E0 l'instant !

Merci d'avance.

10 réponses

1 2
Avatar
DanielCo
Bonjour,
Dim Adr As String
With Sheets("Feuil1")
Adr = "=offset(Feuil1!$B$" & Application.Match("secondaire",
.[B:B], 0) & ",,," & _
Application.CountIf(.[B:B], "secondaire") & ")"
ThisWorkbook.Names.Add "PlageNommée", RefersTo:­r
End With
Daniel


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.
Avatar
Apitos
Bonjour Daniel et merci pour ton nouveau code.

Merci à Jacky également pour la rectification.
Avatar
Apitos
J'ai essayé la recherche "Secondaire*" avec le joker "*" mais ça me d éclenche une erreur d'exécution.

Erreur d'exécution '1004':

La méthode Autofilter de la classe Range a échoué.

Pour le code de Jacky :

'--------------------------
Sub Plage2()
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:="=" & .Spec ialCells(xlCellTypeVisible).Address
.AutoFilter
End With
'------------
'Debug.Print "plage Jacky = " & [plage].Address
'Ou
MsgBox "plage Jacky = " & [plage].Address '
'--------------
End Sub
'--------------------------

et

Erreur d'exécution '13':

Incompatibilité de type

Pour le code de Daniel :

'---------------------
Sub plage3()
Dim Adr As String
With Sheets("Feuil1")
Adr = "=offset(Feuil1!$A$" & Application.Match("Secondaire*", . [B:B], 0) & ",,," & _
Application.CountIf(.[B:B], "Secondaire*") & ",2)"
ThisWorkbook.Names.Add "PlageNommée", RefersTo:­r
End With
MsgBox "plage Daniel = " & [plagenommée].Address '
End Sub
'---------------------
Avatar
DanielCo
Erreur d'exécution '13':

Incompatibilité de type
Pour le code de Daniel :

'---------------------
Sub plage3()
Dim Adr As String
With Sheets("Feuil1")
Adr = "=offset(Feuil1!$A$" & Application.Match("Secondaire*", .[B:B],
0) & ",,," & _ Application.CountIf(.[B:B], "Secondaire*") & ",2)"
ThisWorkbook.Names.Add "PlageNommée", RefersTo:­r
End With
MsgBox "plage Daniel = " & [plagenommée].Address '
End Sub
'---------------------



Ce n'est pas ce que j'ai écrit. Pourquoi "Feuil1!$A". J'ai mis
"Feuil1!$B".
Daniel
Avatar
DanielCo
Ce n'est pas ce que j'ai écrit. Pourquoi "Feuil1!$A". J'ai mis "Feuil1!$B".
Daniel



Oups, au temps pour moi. Mais il n'y a pas d'erreur ? Sur quelle ligne
en as-tu une ?
Daniel
Avatar
Jacky
Avec les deux codes dans le classeur.
Regarde ici
http://www.cjoint.com/c/EFtmcneoWOh

--
Salutations
JJ
Avatar
DanielCo
Salut Jacky,
Apitos a rectifié mon code dans son dernier mail.
Cordialement.
Daniel


Avec les deux codes dans le classeur.
Regarde ici
http://www.cjoint.com/c/EFtmcneoWOh
Avatar
Jacky
Hello Daniel
Apitos a rectifié mon code dans son dernier mail.


Ok...rectification ;o)
http://www.cjoint.com/c/EFtmp7DQMXh

Perso, je n'ai aucune des erreurs que signale Apitos......
--
Salutations
JJ
Avatar
DanielCo
Hello Daniel
Apitos a rectifié mon code dans son dernier mail.


Ok...rectification ;o)
http://www.cjoint.com/c/EFtmp7DQMXh

Perso, je n'ai aucune des erreurs que signale Apitos......



En fait, je n'ai pas compris qui était concerné ;-))
Daniel
Avatar
Apitos
J'ai corrigé, d'après vos remarques, et je n'ai aucune erreurs maintena nt !
1 2