IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

AutoFit Lignes non Masquées [XL-2007]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 12
    Points : 13
    Points
    13
    Par défaut AutoFit Lignes non Masquées
    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

  2. #2
    Membre confirmé Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 353
    Points : 633
    Points
    633
    Par défaut
    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

    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
    Bertrand

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    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

  4. #4
    Membre confirmé Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 353
    Points : 633
    Points
    633
    Par défaut
    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 :
    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
    puis pour gérer les contrôles :
    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
    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).

    Tu pourras, je pense l'adapter à ton contexte.

    Cela correspond à tes attentes ?

    Bertrand

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    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".

    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
    Cordialement.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] tri décroissant sur ligne non masqué
    Par tmk21fr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/12/2010, 16h33
  2. Réponses: 2
    Dernier message: 07/11/2006, 11h08
  3. [VBA-E]derniere ligne non vide
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2006, 10h48
  4. retour a la ligne non voulu dans mes tableaux ????
    Par cedre22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/03/2006, 15h48
  5. Lecture de fichier - dernière ligne non prise en compte
    Par JulienPles dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo