J'ai vu une plage nommée : Maplage_FilterDatabase. Y a-t-il un intérêt particulier à faire cela ?
Cette plage nommée est créée par Excel dès que tu actionne un filtre automatique ou élaboré. La plage nommée représente toute l'étendue sur laquelle le filtre s'est appliqué. Cette plage nommée sera redéfinie seulement lors du prochain lancement du filtre.
Cette plage nommée est inaccessible par l'interface de la feuille de calcul via le menu : Insertion / nom / définir. Ceci permet accessoirement de créer des plages invisibles... En effet, si tu crées un nom à avec VBA, tu peux mettre le paramètre "Visible" à "Faux".
(voir l'aide Excel sur le sujet)
Par exemple, le nom Denis, créé par ce code VBA
ThisWorkbook.Names.Add "Denis", Range("A1:A10"), False
N'apparaît dans la liste des noms disponibles via l'interface de calcul, mais tu peux l'utiliser dans une formule d'une feuille :
=somme(denis), tout comme tu peux faire = somme(_filterDataBase)
Pour supprimer cette plage nommée, il faut aussi utiliser du code VBA :
ThisWorkbook.Names("_FilterDataBase").Delete
Attention : Si tu fais cela pendant qu'un filtre est en application sur la feuille, Excel ne pourra pas afficher toutes les lignes lorsque tu le lui demanderas par la commande du menu. Il n'aura plus en mémoire l'étendue de la plage filtrée.
Cette plage nommée est inaccessible par l'interface de la feuille de calcul via le menu : Insertion / nom / définir. Ceci permet accessoirement de créer des plages invisibles... En effet, si tu crées un nom à avec VBA, tu peux mettre le paramètre "Visible" à "Faux".
(voir l'aide Excel sur le sujet)
Par exemple, le nom Denis, créé par ce code VBA
ThisWorkbook.Names.Add "Denis", Range("A1:A10"), False
N'apparaît dans la liste des noms disponibles via l'interface de calcul, mais tu peux l'utiliser dans une formule d'une feuille :
=somme(denis), tout comme tu peux faire = somme(_filterDataBase)
Pour supprimer cette plage nommée, il faut aussi utiliser du code VBA :
ThisWorkbook.Names("_FilterDataBase").Delete
Attention : Si tu fais cela pendant qu'un filtre est en application sur la feuille, Excel ne pourra pas afficher toutes les lignes lorsque tu le lui demanderas par la commande du menu. Il n'aura plus en mémoire l'étendue de la plage filtrée.
Denis Michon,
Ajouté ou modifié le 14/10/2007 (N°1908)
Ajouté ou modifié le 14/10/2007 (N°1908)
Comment fait-on en VBA pour
- savoir qu'un filtre automatique est mis sur une feuille
- enlever celui ci
Il faut distinguer 2 choses :
A ) les boutons du filtre automatique peuvent être affichés sur une feuille, que ce filtre soit en application ou non. Si tu veux détecter seulement la présence ou l'absence de ces boutons :
Sub PrésenceDesBoutonsDuFiltre()
With Worksheets("Feuil5")
If .AutoFilterMode Then
MsgBox "Filtre auto. en application."
Else
MsgBox "Aucun filtre auto. en application."
End If
End With
End Sub
'-------------------------------
B ) Si tu veux savoir si effectivement il y a un filtre en application sur la feuille:
Sub FiltreAutoEnApplication()
Dim Rg As Range
On Error Resume Next
Set Rg = Worksheets("Feuil5").AutoFilter.Range
If Err = 0 Then
For Each C In Rg.Columns
'C.column représente la colonne où est
'appliquée le filtre auto.
If Me.AutoFilter.Filters(C.Column).On = True Then
MsgBox "Plage filtrée"
Exit For
End If
Next
Else
Err = 0
MsgBox "Aucun filtre en application"
End If
Set Rg = Nothing
End Sub
'-------------------------------------
A ) les boutons du filtre automatique peuvent être affichés sur une feuille, que ce filtre soit en application ou non. Si tu veux détecter seulement la présence ou l'absence de ces boutons :
Sub PrésenceDesBoutonsDuFiltre()
With Worksheets("Feuil5")
If .AutoFilterMode Then
MsgBox "Filtre auto. en application."
Else
MsgBox "Aucun filtre auto. en application."
End If
End With
End Sub
'-------------------------------
B ) Si tu veux savoir si effectivement il y a un filtre en application sur la feuille:
Sub FiltreAutoEnApplication()
Dim Rg As Range
On Error Resume Next
Set Rg = Worksheets("Feuil5").AutoFilter.Range
If Err = 0 Then
For Each C In Rg.Columns
'C.column représente la colonne où est
'appliquée le filtre auto.
If Me.AutoFilter.Filters(C.Column).On = True Then
MsgBox "Plage filtrée"
Exit For
End If
Next
Else
Err = 0
MsgBox "Aucun filtre en application"
End If
Set Rg = Nothing
End Sub
'-------------------------------------
Denis Michon,
Ajouté ou modifié le 16/05/2007 (N°1832)
Ajouté ou modifié le 16/05/2007 (N°1832)
En VBA, la commande selection.autofilter bascule un filtre automatique du statut actif à
inactif et inversement. Avant de faire une opération par macro, j'ai besoin de savoir si
le filtre est actif. Comment tester cela ?
If Worksheets("Sheet1").AutoFilterMode Then
isOn = "On"
Else
isOn = "Off"
End If
MsgBox "AutoFilterMode is " & isOn
isOn = "On"
Else
isOn = "Off"
End If
MsgBox "AutoFilterMode is " & isOn
AnonymousA,
Ajouté ou modifié le 23/04/2005 (N°1612)
Ajouté ou modifié le 23/04/2005 (N°1612)
Comment récupérer après filtrage le critère ayant servi à le faire ?
Récupérer le critère de filtre pour chacun des champs :
Sub zzz_Filtre()
Dim f As Filter
Set w = Sheets("Feuil1")
For Each f In w.AutoFilter.Filters
If f.On Then crit = Right(f.Criteria1, Len(f.Criteria1) - 1)
MsgBox crit
Next
End Sub
Sub zzz_Filtre()
Dim f As Filter
Set w = Sheets("Feuil1")
For Each f In w.AutoFilter.Filters
If f.On Then crit = Right(f.Criteria1, Len(f.Criteria1) - 1)
MsgBox crit
Next
End Sub
Alain Vallon,
Ajouté ou modifié le 16/02/2005 (N°1574)
Ajouté ou modifié le 16/02/2005 (N°1574)
Je voudrais connaitre le nombre de lignes filtrees par un filtre automatique.
Ce nombre s'affiche dans la barre de tache si la liste contient moins de 26 lignes,
mais affiche "Mode Filtre" s'il ya plus de 25 lignes. Pourquoi ?
Si tu n'obtiens pas l'affichage du nombre d'enregistrements dans ta barre d'état
suite à un filtre automatique, c'est que ta plage de données doit contenir plusieurs
formules et comme excel est occupé à réévaluer ces formules ... il n'a plus le temps ( ! )
pour compter le nombre d'enregistrements.
Pour retrouver cette fonctionnalité, tu passes en mode de calcul manuel sur ordre
(barre des menus / outils / options / onglet calcul) juste avant de lancer ton filtre auto.
suite à un filtre automatique, c'est que ta plage de données doit contenir plusieurs
formules et comme excel est occupé à réévaluer ces formules ... il n'a plus le temps ( ! )
pour compter le nombre d'enregistrements.
Pour retrouver cette fonctionnalité, tu passes en mode de calcul manuel sur ordre
(barre des menus / outils / options / onglet calcul) juste avant de lancer ton filtre auto.
Denis Michon,
Ajouté ou modifié le 29/10/2004 (N°1513)
Ajouté ou modifié le 29/10/2004 (N°1513)
Lorsque j'applique un filtre automatique sur une colonne de tableau qui en contient 10,
parmi lesquelles il ya des formules, il ne m'affiche pas le nombre d'enregistrements
trouvé en bas à gauche de la fenêtre excel, mais me met "Mode filtre",
si on retire toutes les colonnes qui contienne des formules, ca me met bien le nombre
d'enregistrements triés.
C'est un bug d'Excel qui traîne depuis toujours, mais il existe au moins deux façons de
contourner le problème:
1-mettre Excel en mode de calcul manuel pendant qu'on joue avec les filtres automatiques
2-utiliser la fonction SOUS.TOTAL. Elle est assez "intelligente" pour ne compter que les
lignes visibles:
=SOUS.TOTAL(3;A:A)-1
retourne le nombre de cellules visibles dans la colonne A. Je soustrait 1, car je suppose
que tu ne veux pas compter l'en-tête de la colonne!
contourner le problème:
1-mettre Excel en mode de calcul manuel pendant qu'on joue avec les filtres automatiques
2-utiliser la fonction SOUS.TOTAL. Elle est assez "intelligente" pour ne compter que les
lignes visibles:
=SOUS.TOTAL(3;A:A)-1
retourne le nombre de cellules visibles dans la colonne A. Je soustrait 1, car je suppose
que tu ne veux pas compter l'en-tête de la colonne!
Laurent Mortezai,
Ajouté ou modifié le 19/05/2004 (N°1418)
Ajouté ou modifié le 19/05/2004 (N°1418)
Sur une colonne A j'ai mis un filtre qui masque certaines données. Quand je fais la somme de la
colonne excel prend en compte les données masquées. Comment faire pour éviter cela ?
Utilise la fonction sous.total(9;A:A)
le premier chiffre c'est pour:
no Fonction
1 MOYENNE
2 NB
3 NBVAL
4 MAX
5 MIN
6 PRODUIT
7 ECARTYPE
8 ECARTYPEP
9 SOMME
10 VAR
11 VAR.P
le premier chiffre c'est pour:
no Fonction
1 MOYENNE
2 NB
3 NBVAL
4 MAX
5 MIN
6 PRODUIT
7 ECARTYPE
8 ECARTYPEP
9 SOMME
10 VAR
11 VAR.P
Isabelle,
Ajouté ou modifié le 16/04/2004 (N°862)
Ajouté ou modifié le 16/04/2004 (N°862)
J'ai un tableau avec des noms en colonne A et des valeurs en colonne B. Comment après
application d'un filtre compter les noms correspondant aux valeurs < 50 ?
Avec une plage nommée "Noms" (A2:Ax) et une autre nommée "Valeurs" (B2:Bx)
(étiquettes en A1 et B1) utilise cette formule :
=SOMMEPROD((SOUS.TOTAL(3;DECALER(Noms;LIGNE(Noms)-MIN(LIGNE(Noms));;1)))*(Valeurs<50))
(étiquettes en A1 et B1) utilise cette formule :
=SOMMEPROD((SOUS.TOTAL(3;DECALER(Noms;LIGNE(Noms)-MIN(LIGNE(Noms));;1)))*(Valeurs<50))
Alain Vallon,
Ajouté ou modifié le 25/10/2003 (N°734)
Ajouté ou modifié le 25/10/2003 (N°734)

Lorsque j'utilise un " filtre automatique " dans un fichier pour sélectionner les
enregistrements qui m'interessent,comment me déplacer par VBA d'une ligne filtrée à la suivante
~?
Do While ActiveCell.Offset(1, 0).EntireRow.Hidden = True
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(1, 0).Select
Pierre Fauconnier, (N°733)
Je fais un filtre sur une feuille Excel et j'aimerais ramener le N° de ligne de chaque ligne du
résultat .
Pour lire des aires ligne par ligne, il faut utiliser deux boucles
imbriquées:
For Each Aire In Range(...).Areas
For Each Ligne In Aire.Rows
' ...
Next Ligne
Next Aire
Dans le cas des filtres, il est sans doute plus efficace de recourir à la
méthode Find:
Dim C As Range, Adr
With ActiveSheet.AutoFilter.Range.Columns(1)
Adr = .Cells(1).Address
Set C = .Columns(1).Find("*")
Do
MsgBox C.Row
Set C = .FindNext(C)
Loop Until C.Address = Adr
End With
Find ne prend pas en compte les lignes masquées.
imbriquées:
For Each Aire In Range(...).Areas
For Each Ligne In Aire.Rows
' ...
Next Ligne
Next Aire
Dans le cas des filtres, il est sans doute plus efficace de recourir à la
méthode Find:
Dim C As Range, Adr
With ActiveSheet.AutoFilter.Range.Columns(1)
Adr = .Cells(1).Address
Set C = .Columns(1).Find("*")
Do
MsgBox C.Row
Set C = .FindNext(C)
Loop Until C.Address = Adr
End With
Find ne prend pas en compte les lignes masquées.
Laurent Longre,
Ajouté ou modifié le 25/10/2003 (N°732)
Ajouté ou modifié le 25/10/2003 (N°732)
Après avoir appliqué un filtre automatique, comment récupérer dans une cellule le nombre de
lignes renvoyé par le filtre ?
Si ton filtre est sur la colonne A :
=SOUS.TOTAL(3;A:A)-1
et en VBA :
MsgBox Application.Subtotal(3, [A:A]) - 1
=SOUS.TOTAL(3;A:A)-1
et en VBA :
MsgBox Application.Subtotal(3, [A:A]) - 1
Alain Vallon, (N°731)
Combien d'enregistrements un filtre auto peut-il visualiser ?
le nombre d'enregistrements affichés lors d'un filtre automatique n'est pas limité.
Ce qui est limité,à 999, c'est le nombre de lignes de la liste déroulante permettant
le choix de la valeur.
Ce qui est limité,à 999, c'est le nombre de lignes de la liste déroulante permettant
le choix de la valeur.
Pierre Fauconnier, Alain Vallon, (N°730)
J'extrais des données avec un filtre élaboré. Je m'apercois que si le critère est
"Dassault Falcon", tous les enregistrements extraits concernent Dassault Falcon, mais
aussi ceux qui sont associés à "Dassault Falcon Jet", "Dassault Falcon
Service", etc... Comment définir un critère qui respecterait la casse exacte...
Si tu mets un texte, Excel recherche quelquechose qui commence par ton texte
Pour obtenir une stricte égalité (sauf sur la casse) tu écrit
="=ce que tu cherche"
Ben oui, pourquoi faire simple quand on peut faire compliqué ;-)
Comme j'utilise une variable (MyChoix) pour le critère, j'en profite pour
donner la syntaxe à ceux qui seraient intéréssés
Sheets("Liste").Range("V2").Value = "=""=" & MyChoix & """"
Pour obtenir une stricte égalité (sauf sur la casse) tu écrit
="=ce que tu cherche"
Ben oui, pourquoi faire simple quand on peut faire compliqué ;-)
Comme j'utilise une variable (MyChoix) pour le critère, j'en profite pour
donner la syntaxe à ceux qui seraient intéréssés
Sheets("Liste").Range("V2").Value = "=""=" & MyChoix & """"
JièL, Eric Renaud, (N°729)
J'ai un tableau avec des noms (en colonne) et 30 colonnes pour les 30 (ou 31) jours d'un mois.
Je mets des 1 ou des 0 en fonction de la prise ou non de repas chaque jour. Je souhaiterais,
sur un feuille séparée que s'affiche la liste des personnes qui ont pris un repas un jour
donné. En plus, comment éviter les blancs créés par les vides de ceux qui ne prennent pas ce
repas ?
Tu pourrais utiliser un filtre élaboré...
Si ton tableau est en feuille 1, en feuille 2, tu récupères par ex. en A1 l'étiquette de ta colonne "Noms" de
la feuille 1 et en B1 l'étiquette de ta colonne "Repas" toujours de la
feuille 1, en Feuil!A2 tu laisses vide, en B2 tu saisis 1.
Puis par les menus : Données/Filtre élaboré
Plages : tu cliques sur ta Feuil!1 et tu sélectionnes l'ensemble des données
(y compris les étiquettes de colonnes).
Zone de critères : tu sélectionnes la plage A1:B2 (tu devrais normalement
être automatiquement revenu sur ta Feuil!2)
Puis tu cliques : Copier vers un autre emplacement
dans la zone Copier dans : tu cliques sur A4 (par ex.) de ta Feuil!2
Tu valides par OK
L'extraction est faite...
Si ton tableau est en feuille 1, en feuille 2, tu récupères par ex. en A1 l'étiquette de ta colonne "Noms" de
la feuille 1 et en B1 l'étiquette de ta colonne "Repas" toujours de la
feuille 1, en Feuil!A2 tu laisses vide, en B2 tu saisis 1.
Puis par les menus : Données/Filtre élaboré
Plages : tu cliques sur ta Feuil!1 et tu sélectionnes l'ensemble des données
(y compris les étiquettes de colonnes).
Zone de critères : tu sélectionnes la plage A1:B2 (tu devrais normalement
être automatiquement revenu sur ta Feuil!2)
Puis tu cliques : Copier vers un autre emplacement
dans la zone Copier dans : tu cliques sur A4 (par ex.) de ta Feuil!2
Tu valides par OK
L'extraction est faite...
ChrisV, (N°728)

Comment faire un filtre élaboré avec extraction sur une autre feuille ?
Pour faire un filtre élaboré avec extraction sur une autre feuille, on peut
le faire, même sans VBA. Créer la zone d'extraction (copier les titres des champs), puis écrire
dans la ligne en dessous n'importe quoi (c'est pour faire croire à XL que c'est
une liste de données, il lui faut ne serait-ce qu'un XXX dans une cellule
pour qu'il en convienne). Ensuite tout baigne : se placer dans cette zone d'extraction pour
lancer la commande de Filtre, sélectionner la plage Source de données (celle qui est sur une
autre feuille, vous suivez ?), la plage de critère, la zone destination et hop
Et pour le faire plusieurs fois sur les mêmes plages, c'est bien plus pratique en nommant les
plages.
Pour extraire les données sur une autre feuille, il faut
demander le filtre élaboré à partir de cette feuille et
non à partir de la base de donnée.
Il semblerait que les filtres élaborées avec des critères calculés utilisant
des noms automatiques (genre : =Ventes>Achats) ait un
peu de mal quand l'extraction se fait
le faire, même sans VBA. Créer la zone d'extraction (copier les titres des champs), puis écrire
dans la ligne en dessous n'importe quoi (c'est pour faire croire à XL que c'est
une liste de données, il lui faut ne serait-ce qu'un XXX dans une cellule
pour qu'il en convienne). Ensuite tout baigne : se placer dans cette zone d'extraction pour
lancer la commande de Filtre, sélectionner la plage Source de données (celle qui est sur une
autre feuille, vous suivez ?), la plage de critère, la zone destination et hop
Et pour le faire plusieurs fois sur les mêmes plages, c'est bien plus pratique en nommant les
plages.
Pour extraire les données sur une autre feuille, il faut
demander le filtre élaboré à partir de cette feuille et
non à partir de la base de donnée.
Il semblerait que les filtres élaborées avec des critères calculés utilisant
des noms automatiques (genre : =Ventes>Achats) ait un
peu de mal quand l'extraction se fait
JièL, Catherine et Sainte Zaza, Beabou, (N°727)
J'utilise dans une macro un filtrage automatique du type Selection.AutoFilter Field:=1,
Criteria1:=DR.Value Selection.AutoFilter Field:=2, Criteria1:=Mag.Value Je veux par macro
copier la ou les ligne(s) résultante(s) du filtrage dans une nouvelle feuille. Comment écrire
cette ligne dans la macro ?
Copie la procédure qui suit dans un module,
Il est supposé que le filtre automatique a déjà
eu lieu avant de lancer cette procédure.
Sub RecupereDataAutofiltre()
Dim Destination As Range
'Définis ta plage où sera copiée les données.
'si même feuille oublis "Sheets" seulement Range(??)
Set Destination = Sheets(3).Range("A1")
Dim MaPlage As Range
'représente les données filtrées et les titres.
Set MaPlage = Sheets("NomdeTaFeuille").AutoFilter.Range
'représente seulement les données
Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1,
MaPlage.Rows.Count)
MaPlage.Copy Destination
End sub
Il est supposé que le filtre automatique a déjà
eu lieu avant de lancer cette procédure.
Sub RecupereDataAutofiltre()
Dim Destination As Range
'Définis ta plage où sera copiée les données.
'si même feuille oublis "Sheets" seulement Range(??)
Set Destination = Sheets(3).Range("A1")
Dim MaPlage As Range
'représente les données filtrées et les titres.
Set MaPlage = Sheets("NomdeTaFeuille").AutoFilter.Range
'représente seulement les données
Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1,
MaPlage.Rows.Count)
MaPlage.Copy Destination
End sub
Denis Michon, (N°726)
J'ai un grand tableau dont j'élimine avec un filtre la majorité des lignes. Le tableau filtré
sert de source pour un tcd. Comment éliminer par macro les lignes filtrées ou faire une copie
sur une autre feuille ?
Si vous souhaitez supprimer toutes les lignes masquées de votre tableau
Sub SuppLignesMasquees()
Dim cell
Range("A1").CurrentRegion.Select
For Each cell In Selection
If cell.Rows.Hidden = True Then
cell.EntireRow.Delete Shift:=xlUp
End If
Next
End Sub
===============
Si vous souhaitez copier les lignes filtrées vers une nouvelle feuille :
Sub NouvelleListe()
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Rows.Copy
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Mes2000Lignes"
ActiveSheet.Paste
End Sub
Sub SuppLignesMasquees()
Dim cell
Range("A1").CurrentRegion.Select
For Each cell In Selection
If cell.Rows.Hidden = True Then
cell.EntireRow.Delete Shift:=xlUp
End If
Next
End Sub
===============
Si vous souhaitez copier les lignes filtrées vers une nouvelle feuille :
Sub NouvelleListe()
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Rows.Copy
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Mes2000Lignes"
ActiveSheet.Paste
End Sub
Lydia,
Ajouté ou modifié le 25/10/2003 (N°725)
Ajouté ou modifié le 25/10/2003 (N°725)
Dans une liste de codes articles, je voudrais sélectionner ceux qui ne répondent pas à
plusieurs critères.
Pour "dire" au filtre élaboré différent de --- ET différent de--- ET différent de---
Ex:
Tes données en A2:Ax (étiquettes en A1 = "Données")
En C1, D1, E1 : "Données"
En C2 : <> fifi1
En D2 : <> fifi2
En E2 : <> fifi3
Zone de critères = C1:D2
Ex:
Tes données en A2:Ax (étiquettes en A1 = "Données")
En C1, D1, E1 : "Données"
En C2 : <> fifi1
En D2 : <> fifi2
En E2 : <> fifi3
Zone de critères = C1:D2
Alain Vallon,
Ajouté ou modifié le 25/10/2003 (N°724)
Ajouté ou modifié le 25/10/2003 (N°724)
Comment utiliser le critère "< à la valeur d'une cellule donnée" dans un critère
de filtre élaboré ?
Dès que tu veux créer un critère complexe (comparaison avec une autre
cellule plutôt qu'avec une valeur), la structure du critère est
différente: la première ligne doit être vide (oui oui!) et la seconde
doit contenir la formule complète de comparaison. Dans ton cas, dédies
-disons- la zone G1:H2 à l'écriture de ton critère, et fais ce qui suit:
-G1 et H1 doivent être vides
-G2 contient la formule: =C5>0.04*$F$1
-H2 contient la formule: =C5<0.07*$F$1
Dans ce type de critère, il faut utiliser la référence du premier
enregistrement (C5 dans ton exemple).
Pour l'extraction, n'oublie pas d'ajuster la zone des critères (G1:H2).
cellule plutôt qu'avec une valeur), la structure du critère est
différente: la première ligne doit être vide (oui oui!) et la seconde
doit contenir la formule complète de comparaison. Dans ton cas, dédies
-disons- la zone G1:H2 à l'écriture de ton critère, et fais ce qui suit:
-G1 et H1 doivent être vides
-G2 contient la formule: =C5>0.04*$F$1
-H2 contient la formule: =C5<0.07*$F$1
Dans ce type de critère, il faut utiliser la référence du premier
enregistrement (C5 dans ton exemple).
Pour l'extraction, n'oublie pas d'ajuster la zone des critères (G1:H2).
Laurent Mortézai, (N°723)
Existe-t-il une collection des cellules visibles que je pourrais utiliser ou y a-t-il un moyen
de boucler directement sur les cellules visibles après un filtre ?
For Each cel In ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
'blabla....
Next
'blabla....
Next
Alain Vallon, (N°722)
