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

Selection plage sur critére

2 réponses
Avatar
glop
Bonsoir

Grace aux conseils éclairés déjà reçus sur ce forum mon projet avance.
Maintenant je voudrais, par VBA, sélectionner dans un tableau une
partie de tous les enregistrements contenant un critère défini par
l'utilisateur.
Par exemple tous les enregistrements ayant "VAR" en ligne A et de la
colonne A a BD. Le résultat comporte un nombre variable de lignes
(quelques unes à quelques centaines) et la partie intéressante pour le
traitement représente une trentaine de colonnes contigues.
Pour ce faire la fonction filtre automatique, voire élaboré, peut
satisfaire au besoin.
La question est comment récupérer cette plage variable pour traitement
ultérieur (copie, effacement...) en utilisant une macro ?
Si il y a moyen de procéder directement sans utiliser le filtre c'est
encore mieux.
Autre question (la première en fait) : comment recueillir auprés de
l'utilisateur au début de la procédure son choix de critére à utiliser
("VAR" pour cet exemple).

Merci pour vos éclairages.

2 réponses

Avatar
DanielCo
Bonsoir,

Sub test()
Dim Plage As Range, I As Integer
ActiveSheet.AutoFilterMode = False
Set Plage = Range([A1], Cells(Rows.Count, 1).End(xlUp)).Resize(,
56)
For I = 1 To Plage.Rows.Count
Cells(I, "BE") = Application.CountIf(Range(Cells(I, 1),
Cells(I, "BD")), "VAR")
Next I
Range([BE1], Cells(Plage.Rows.Count, "BE")).AutoFilter 1, ">0"
If Application.Subtotal(103, [BE:BE]) > 0 Then
Set Plage = Plage.SpecialCells(xlCellTypeVisible)
Plage.Select
End If
End Sub

Cordialement.

Daniel


Bonsoir

Grace aux conseils éclairés déjà reçus sur ce forum mon projet avance.
Maintenant je voudrais, par VBA, sélectionner dans un tableau une partie de
tous les enregistrements contenant un critère défini par l'utilisateur.
Par exemple tous les enregistrements ayant "VAR" en ligne A et de la colonne
A a BD. Le résultat comporte un nombre variable de lignes (quelques unes à
quelques centaines) et la partie intéressante pour le traitement représente
une trentaine de colonnes contigues.
Pour ce faire la fonction filtre automatique, voire élaboré, peut satisfaire
au besoin.
La question est comment récupérer cette plage variable pour traitement
ultérieur (copie, effacement...) en utilisant une macro ?
Si il y a moyen de procéder directement sans utiliser le filtre c'est encore
mieux.
Autre question (la première en fait) : comment recueillir auprés de
l'utilisateur au début de la procédure son choix de critére à utiliser ("VAR"
pour cet exemple).

Merci pour vos éclairages.
Avatar
glop
Bonjour

C'est bôôô et ça répond au parfaitement au besoin.
Merci.



Le 04/10/2012, DanielCo a supposé :
Bonsoir,

Sub test()
Dim Plage As Range, I As Integer
ActiveSheet.AutoFilterMode = False
Set Plage = Range([A1], Cells(Rows.Count, 1).End(xlUp)).Resize(, 56)
For I = 1 To Plage.Rows.Count
Cells(I, "BE") = Application.CountIf(Range(Cells(I, 1), Cells(I,
"BD")), "VAR")
Next I
Range([BE1], Cells(Plage.Rows.Count, "BE")).AutoFilter 1, ">0"
If Application.Subtotal(103, [BE:BE]) > 0 Then
Set Plage = Plage.SpecialCells(xlCellTypeVisible)
Plage.Select
End If
End Sub

Cordialement.

Daniel


Bonsoir

Grace aux conseils éclairés déjà reçus sur ce forum mon projet avance.
Maintenant je voudrais, par VBA, sélectionner dans un tableau une partie de
tous les enregistrements contenant un critère défini par l'utilisateur.
Par exemple tous les enregistrements ayant "VAR" en ligne A et de la
colonne A a BD. Le résultat comporte un nombre variable de lignes (quelques
unes à quelques centaines) et la partie intéressante pour le traitement
représente une trentaine de colonnes contigues.
Pour ce faire la fonction filtre automatique, voire élaboré, peut
satisfaire au besoin.
La question est comment récupérer cette plage variable pour traitement
ultérieur (copie, effacement...) en utilisant une macro ?
Si il y a moyen de procéder directement sans utiliser le filtre c'est
encore mieux.
Autre question (la première en fait) : comment recueillir auprés de
l'utilisateur au début de la procédure son choix de critére à utiliser
("VAR" pour cet exemple).

Merci pour vos éclairages.