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).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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).
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.
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.
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).
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).