filtres automatiques, copier et réutiliser les critères (VBA)

Starkoala

XLDnaute Nouveau
Bonjour à tous,

J'ai recherché et n'ai trouvé que des solutions compliquées que je n'arrive pas à mettre en oeuvre, mais je suis sur qu'il existe un code tres simple.

J'ai un tableau (créer avec la fonction tableau automatique) et chacune des colonnes possèdent un filtre.
L’utilisateur manipule librement les lignes du tableau et ajouter ou supprime du texte et filtre comme bon lui semble, sur plusieurs colonnes.
_ Il arrive donc que le texte des lignes déborde. La fonction auto-fit est la pour ca. En revanche cela fait réapparaître tous les champs masqués.
_ Est il possible via VBA, de copier tous les filtres, de faire l'autofit, et de les réappliquer; du genre:

Code:
for Each Colonnes In Worksheets("Feuil1").ListObjects("tableau1").DataBodyRange.Columns
Copie filtres dans collection, ou tableaux ou autre
next colonnes

Worksheets("Feuil1").ListObjects("tableau1").DataBodyRange.Rows.EntireRow.AutoFit

for Each Colonnes In Worksheets("Feuil1").ListObjects("tableau1").DataBodyRange.Columns
colle filtres de collection, ou tableaux ou autre dans tableau1
next colonnes

C’était mon idée de départ, mais si tout autre solution me permet d'arriver au même résultat je suis bien sur preneur.

Merci, la je sèche :confused:
Thib
 

Efgé

XLDnaute Barbatruc
Re : filtres automatiques, copier et réutiliser les critères (VBA)

Bonjour Starkoala

Pourquoi modifier la hauteur des lignes, s'il s'agit d'ajuster uniquement les colonnes ?
Ceci devrait suffir:
VB:
Sub test()
Sheets("Feuil1").Columns.AutoFit
End Sub

Cordialement
 

Efgé

XLDnaute Barbatruc
Re : filtres automatiques, copier et réutiliser les critères (VBA)

Re
Alors comme ceci, peut être:
VB:
Sub test_2()
Sheets("Feuil1").Columns(1).Cells.SpecialCells(xlCellTypeVisible).EntireRow.AutoFit
End Sub

Cordialement

Edit:
On peus même se passer du .Cells
VB:
Sub test_2B()
Sheets("Feuil1").Columns(1).SpecialCells(xlCellTypeVisible).EntireRow.AutoFit
End Sub
et utiliser la valeur numérique:
VB:
Sub test_2B()
Sheets("Feuil1").Columns(1).SpecialCells(12).EntireRow.AutoFit
End Sub
Cordialement
 
Dernière édition:

Starkoala

XLDnaute Nouveau
Re : filtres automatiques, copier et réutiliser les critères (VBA) [Résolu]

Haaa super,

l'astuce était donc "SpecialCells(xlCellTypeVisible)"

Du coup pas besoin de for ni rien

Code:
Worksheets("Feuil1").ListObjects("tableau1").DataBodyRange.SpecialCells(xlCellTypeVisible).EntireRow.AutoFit

Merci Efgé :)
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 284
Membres
103 170
dernier inscrit
HASSEN@45