Bonjour,
A l'aide d'un userform, je masque des lignes à l'aide de checkbox.
Je souhaiterai réaliser un autofit uniquement de certaines lignes non masquées.
Avez vous une idée ?
Vous remerciant par avance
Estaque 3394
Bonjour,
A l'aide d'un userform, je masque des lignes à l'aide de checkbox.
Je souhaiterai réaliser un autofit uniquement de certaines lignes non masquées.
Avez vous une idée ?
Vous remerciant par avance
Estaque 3394
Bonjour Estaque3394,
Si tu veux ajuster automatiquement la hauteur de tes lignes, tu peux utiliser Rows(x).EntireRow.AutoFit (si j'ai bien compris ta question ?)
Exemple pour les lignes 1, 10 et 15
Bertrand
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Rows(1).EntireRow.AutoFit Rows(10).EntireRow.AutoFit Rows(15).EntireRow.AutoFit
Bonjour Bear the french,
Effectivement cela fonctionne pour toutes les lignes qu'elles soient masquées ou pas. Le problème en fait est de ne faire un autofit uniquement sur les lignes non masquées.
Si nous reprenons votre exemple, et que suite à l'exécution de l'UF la ligne 1 est masquée celle ci réapparaitra à l'execution de votre code et c'est ce que je veux éviter.
En fait, voici le processus :
Je lance le fichier excel et l'UF s'exécute. Je sélectionne via des chekbox les lignes que je veux masquer. Je ferme mon UF et j'obtiens un fichier excel voulu.
De là, un "1" dans la cellule "A1" de ce fichier va faire que certaines lignes devront utiliser un autofit et uniquement celles qui ne sont pas masquées par l'éxécution de la macro de l'UF.
Merci de votre retour
Estaque3394
Bonjour Estaque3394,
Mon premier post aura le mérite de me permettre de mieux cerner ta demande
Prenons un exemple avec la ligne 15 et un UserForm1 comme celui là :
Première chose, je crée un module pour afficher le formulaire :
puis pour gérer les contrôles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub macropourestaque3394() ' Lance le Userform1 UserForm1.Show End Sub
J'ai ajouté une conditionnel (un IF THEN ELSE) pour gérer l'AutoFit ou le Hidden de la ligne (AutoFit = affichage ajusté en hauteur; Hidden = va masquer la ligne).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Sub CheckBox1_Change() ' gère le changement d'état de la CheckBox1 ' répercute l'état en mise en forme sur la ligne 15 If CheckBox1 = False Then Rows(15).EntireRow.Hidden = True Else Rows(15).EntireRow.AutoFit End If End Sub Private Sub CommandButton1_Click() ' Pour quitter la macro UserForm1.Hide Exit Sub End Sub Private Sub UserForm1_Initialize() ' Initialise au lancement l'état de la CheckBox1 If Rows(15).EntireRow.Hidden = True Then CheckBox1 = False Else CheckBox1 = True End Sub
Tu pourras, je pense l'adapter à ton contexte.
Cela correspond à tes attentes ?
Bertrand
Bonjour,
Une autre solution pour réaliser cet ajustement de lignes.
A la fermeture de ton UF tu lances une procédure qui réalise un Autofit des lignes qui ne sont pas masquées si la cellule A1 a pour valeur "1".
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub AjusterLignes() Dim Cel As Range If Range("A1") = "1" Then Application.ScreenUpdating = False For Each Cel In UsedRange If Cel.EntireRow.Hidden = False Then Cel.EntireRow.AutoFit End If Next Cel Application.ScreenUpdating = True End If End Sub
Bonjour,
Génial à grace à vous j'ai réussi à faire ce que je m'étais imaginer.
Cela fonctionne au poil. Trop bien
Merci à vous gFZT82 et Bear the french
Bonne journée à tous
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager