definition de range et boucle for each... next

Le
Mirv
Bonsoir,

je me resouds a demander au forum de l'aide pour le probleme suivant :

- j'ai une feuille, intitulee "config", dans laquelle figurent en
colonne les noms de x personnes (8 pour le moment, mais evolutif).
- j'ai une autre feuille, intitulee "deals" dans laquelle figurent
l'ensemble des enregistrements de ces 8 personnes.

Grace a vos contributions, je peux lancer une macro qui selectionne les
enregistrements d'une personne par le biais des autofiltres.

Probleme : Le nom de la personne est ecrit "en dur" dans la macro. Je
voudrais le remplacer par une variable qui passe les 8 personnes de la
liste une a une.

J'entrevois la solution mais me heurte au probleme de definition de
range, de selection.end(xldown), de for eachnext ca va pas
chercher sur la bonne feuille entre "deals" et "config" bref, si vous
pouviez m'indiquer une piste

Un grand merci d'avance !!!
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #19612851
Bonjour Mirv,

Voici un petit exemple :

Sub test()
Dim Rg As Range, C As Range

Nom Feuille où est la liste de noms
With Worksheets("NomDeLaFeuille")
'Choix de la colonne
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

For Each C In Rg
'Nom de la feuille où s'effectue le filtre
With Worksheets("NomFeuilleFiltre")
'Choix de la plage où le filtre s'applique
With .Range("A1").CurrentRegion
'Colonne retenue : Colonne = 2
.AutoFilter Field:=2, Criteria1:=C
'Nombre d'enregistrements obtenus
MsgBox Application.Subtotal(3, _
.Columns(2).SpecialCells(xlCellTypeVisible)) - 1 & _
" enregistrement(s) de trouver répondant au " & _
"critère de : " & C.Value
End With
End With
Next
End Sub



"Mirv"
Bonsoir,

je me resouds a demander au forum de l'aide pour le probleme suivant :

- j'ai une feuille, intitulee "config", dans laquelle figurent en
colonne les noms de x personnes (8 pour le moment, mais evolutif).
- j'ai une autre feuille, intitulee "deals" dans laquelle figurent
l'ensemble des enregistrements de ces 8 personnes.

Grace a vos contributions, je peux lancer une macro qui selectionne les
enregistrements d'une personne par le biais des autofiltres.

Probleme : Le nom de la personne est ecrit "en dur" dans la macro. Je
voudrais le remplacer par une variable qui passe les 8 personnes de la
liste une a une.

J'entrevois la solution mais me heurte au probleme de definition de
range, de selection.end(xldown), de for each...next... ca va pas
chercher sur la bonne feuille entre "deals" et "config"... bref, si vous
pouviez m'indiquer une piste...

Un grand merci d'avance !!!
Mirv
Le #19616841
Merci 1 fois de plus...
je vais m'en inspirer... je crois y trouver ce qu'il me faut...

petite question : dans la definition du range, pourquoi partir du bas de
la colonne et remonter ? J'essayais d'utiliser end(xldown)



MichDenis wrote:
Bonjour Mirv,

Voici un petit exemple :



MichDenis
Le #19622481
| petite question : dans la definition du range, pourquoi partir du bas de
| la colonne et remonter ? J'essayais d'utiliser end(xldown)

le End(xldown) s'arrête si une cellule dans la colonne est vide.
Résultat on est pas nécessairement sûr d'avoir obtenu la dernière
ligne occupée par une donnée. Pour plus d'assurance, on commence
par le BAS vers le HAUT. Cela donne à coup sûr, la dernière ligne occupée
dans la colonne nonobstant le fait qu'il peut y avoir des lignes vides entre
la première et dernière ligne de la colonne.




"Mirv"
Merci 1 fois de plus...
je vais m'en inspirer... je crois y trouver ce qu'il me faut...

petite question : dans la definition du range, pourquoi partir du bas de
la colonne et remonter ? J'essayais d'utiliser end(xldown)



MichDenis wrote:
Bonjour Mirv,

Voici un petit exemple :



Publicité
Poster une réponse
Anonyme