MilkaQuercy
XLDnaute Nouveau
Bonjour,
Je rencontre un problème. Je boucle sur les lignes visibles d'un tableau avec la méthode Range.SpecialCells(xlCellTypeVisible).Rows
Tableau sur lequel j'applique des filtres via la méthode Range.AutoFilter.
Dans l'exemple ci-dessous, la variable "Tab" correspond au nom de l'onglet. La variable "TableName" correspond au nom du tableau dans lequel je travail.
SortList() est un tableau Array de type string. Je vous passe l'étape dans laquelle je le remplie. L'opération de filtrage de mon tableau "TableName" fonctionne.
Admettons que mon tableau fait 10 lignes. Si les lignes filtrées visibles sont consécutives, la 3ème & la 4ème. La variable "J" va bien me renvoyer "2" pour 2 lignes visibles. La boucle va bien effectuer 2 tours.
Mon problème est le suivant : si les lignes filtrées visibles ne sont pas consécutives, la 3ème et la 5ème par exemple.
Dans ce cas la variable "J" va renvoyer "1" là où j'aimerais qu'elle me renvoie "2" pour 2 lignes visibles. La boucle va boucler plusieurs fois sur la 3ème ligne et plusieurs fois sur la 5ème. Donc la variable "I" va renvoyer "3" sur plusieurs tour avant de passer à "5" sur plusieurs tour et enfin sortir de la boucle. Alors que je devrais effectuer 2 tours, un pour la ligne 3 puis un pour la ligne 5.
Suivant les cas et essaies que j'ai pu faire, elle boucle plusieurs fois sur la même ligne : 6, 9 ou 12 fois. Multiple de 3...
Est-ce que cette méthode Range.SpecialCells(xlCellTypeVisible).Rows ne fonctionne que sur des lignes visibles successivent?
Est-ce que je fais une erreur, est-ce qu'il me manque un argument?
Je ne peux pas poster mon fichier, si besoin je peux en créer un avec la même fonction, ce serait très rapide.
Je rencontre un problème. Je boucle sur les lignes visibles d'un tableau avec la méthode Range.SpecialCells(xlCellTypeVisible).Rows
Tableau sur lequel j'applique des filtres via la méthode Range.AutoFilter.
Dans l'exemple ci-dessous, la variable "Tab" correspond au nom de l'onglet. La variable "TableName" correspond au nom du tableau dans lequel je travail.
SortList() est un tableau Array de type string. Je vous passe l'étape dans laquelle je le remplie. L'opération de filtrage de mon tableau "TableName" fonctionne.
Admettons que mon tableau fait 10 lignes. Si les lignes filtrées visibles sont consécutives, la 3ème & la 4ème. La variable "J" va bien me renvoyer "2" pour 2 lignes visibles. La boucle va bien effectuer 2 tours.
Mon problème est le suivant : si les lignes filtrées visibles ne sont pas consécutives, la 3ème et la 5ème par exemple.
Dans ce cas la variable "J" va renvoyer "1" là où j'aimerais qu'elle me renvoie "2" pour 2 lignes visibles. La boucle va boucler plusieurs fois sur la 3ème ligne et plusieurs fois sur la 5ème. Donc la variable "I" va renvoyer "3" sur plusieurs tour avant de passer à "5" sur plusieurs tour et enfin sortir de la boucle. Alors que je devrais effectuer 2 tours, un pour la ligne 3 puis un pour la ligne 5.
Suivant les cas et essaies que j'ai pu faire, elle boucle plusieurs fois sur la même ligne : 6, 9 ou 12 fois. Multiple de 3...
Est-ce que cette méthode Range.SpecialCells(xlCellTypeVisible).Rows ne fonctionne que sur des lignes visibles successivent?
Est-ce que je fais une erreur, est-ce qu'il me manque un argument?
Je ne peux pas poster mon fichier, si besoin je peux en créer un avec la même fonction, ce serait très rapide.
VB:
Dim Ws As WorkSheet
Dim I, J As Integer
Dim Tab, TableName As String
Set Ws = WorkSheets(Tab)
Ws.ListObjects(TableName).Range.AutoFilter Field:=13, Criteria1:=SortList(), Operator:=xlFilterValues
J = Range(TableName).SpecialCells(xlCellTypeVisible).Rows.Count
For Each Line In Range(TableName).SpecialCells(xlCellTypeVisible).Rows
I = Line.Row
Next Line