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

Macros et VBA Excel Discussion :

Condition hauteur de ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    technicien BE
    Inscrit en
    Juin 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : technicien BE

    Informations forums :
    Inscription : Juin 2016
    Messages : 50
    Par défaut Condition hauteur de ligne
    Bonjour,

    Je suis en train de creer une macro pour automatiser la mise en page d'un fichier.
    Je cale sur un point, je mets les lignes sur une hauteur de 17 par contre certaines cellules ont plusieurs lignes qui ne doivent pas etre caché après ma macro.

    Je cherche donc a faire un truc dans le genre vulgarisé pour plus de compréhension:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rows("430:430").EntireRow.AutoFit
    if ligne 430 <hauteur 17 alors Selection.RowHeight = 17.
    Quelqu'un a une idée.

    Merci d'avance.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Florent6744 Voir le message
    Je cherche donc a faire un truc dans le genre vulgarisé pour plus de compréhension:

    Rows("430:430").EntireRow.AutoFit
    if ligne 430 <hauteur 17 alors Selection.RowHeight = 17
    Il suffit d'écrire ça en utilisant la syntaxe VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rows(430).AutoFit
    If Rows(430).Height < 17 Then Rows(430).Height = 17

  3. #3
    Membre confirmé
    Homme Profil pro
    technicien BE
    Inscrit en
    Juin 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : technicien BE

    Informations forums :
    Inscription : Juin 2016
    Messages : 50
    Par défaut
    Merci pour ta réponse,

    Du coup j'ai ecrit ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Rows(430).AutoFit
        Rows(431).AutoFit
        Rows(432).AutoFit
     
        If Rows(430).Height < 17 Then Rows(430).Height = 17
            ElseIf Rows(431).Height < 17 Then Rows(431).Height = 17
            ElseIf Rows(432).Height < 17 Then Rows(432).Height = 17
        End If
    Et quand je test ma macro il bug et me dit Else sans if.
    Why?

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Florent6744 Voir le message
    Et quand je test ma macro il bug et me dit Else sans if.
    C'est normal.
    En mettant l'action du Then sur la même ligne que la condition du If, tu as créé une structure sur une seule ligne.
    Tu ne peux donc pas y ajouter des ElseIf sur d'autres lignes.

    La syntaxe correcte aurait été :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Rows(430).AutoFit
        Rows(431).AutoFit
        Rows(432).AutoFit
     
        If Rows(430).Height < 17 Then 
            Rows(430).Height = 17
        ElseIf Rows(431).Height < 17 Then
            Rows(431).Height = 17
        ElseIf Rows(432).Height < 17 Then
            Rows(432).Height = 17
        End If
    Mais ça n'est pas correct fonctionnellement puisqu'une seule de ces conditions peut être exécutée et donc que ça ne mettrait pas tes 3 lignes à hauteur.

    Ceci est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Rows(430).AutoFit
        Rows(431).AutoFit
        Rows(432).AutoFit
     
        If Rows(430).Height < 17 Then Rows(430).Height = 17
        If Rows(431).Height < 17 Then Rows(431).Height = 17
        If Rows(432).Height < 17 Then Rows(432).Height = 17
    Mais ceci est mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Lig As Long
     
    For Lig = 430 To 432
        Rows(Lig).AutoFit
        If Rows(Lig).Height < 17 Then Rows(Lig).Height = 17
    Next Lig

  5. #5
    Membre confirmé
    Homme Profil pro
    technicien BE
    Inscrit en
    Juin 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : technicien BE

    Informations forums :
    Inscription : Juin 2016
    Messages : 50
    Par défaut
    Merci pour ton aide.

    Ca a presque fonctionné j'ai eu juste une petite modif a faire.

    Lorsque je notais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Rows(430).Height < 17 Then 
            Rows(430).Height = 17
    cela buggait quand la ligne est inferieur a 17, j'ai changé comme ça et cette fois ca marche nickel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Rows(430).Height < 17 Then 
            Rows(430).RowHeight = 17
    Merci de ton aide.

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

Discussions similaires

  1. [XL-2013] Augmentation hauteur de ligne suivant condition.
    Par Novice72 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/02/2018, 20h33
  2. Réponses: 2
    Dernier message: 11/04/2017, 12h22
  3. Hauteur de lignes dans état
    Par kiki.gaby dans le forum IHM
    Réponses: 19
    Dernier message: 27/06/2007, 10h32
  4. Hauteur de ligne
    Par The Rock dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 01/02/2006, 10h52
  5. hauteur de ligne dans un DBGrid
    Par mustang-gx dans le forum Bases de données
    Réponses: 9
    Dernier message: 15/03/2004, 20h27

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