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 :

Ajuster la largeur des colonnes aux retours à la ligne (car(10)) ? [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut Ajuster la largeur des colonnes aux retours à la ligne (car(10)) ?
    Bonjour à toutes et tous et merci de votre temps et de votre aide.

    J'ai un tableau Excel avec un bon paquet de colonnes où je mets des entêtes multilignes du genre :
    Échéancier des Acomptes
    Unité de réserve 0
    1932-02-01 - 1932-02-29
    UID

    Les retours à la lignes sont forcés par mon code en insérant un chr(10) là où je veux une rupture (ex : ici après "Accomptes", "0" et les dates). Ce que j'aimerai faire c'est ajuster mes colonnes sur ces retours à la lignes.

    Une idée que j'ai eu c'est de définir la largeur de toutes mes colonnes à 255 puis de demander l'ajustement.
    Ça fonctionne pour mes colonnes qui ont des en-têtes mais les colonnes vides elles restent à 255 caractères.
    Je peux bien sur faire du code qui va parcourir mes colonnes vides et les ramener à une taille plus pratique (ex : 15) meilleur façon de procéder.

    Je me demandais si il n'y avait pas une meilleure façon de procéder.
    Un genre de "ajuster la largeur sur les retours à ligne".

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Salut marot_r,

    Il s'avère que tu peux le faire sans boucle.

    1- tu règles le columnWidth de ta plage à 255,
    2- tu insères tes entêtes de colonne,
    3- tu règles le columnWidth de ta plage à 15,
    4- tu ajustes (avec AutoFit) les largeurs en 1 fois.

    Exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub essaicolonnes()
    Dim txtCol As String, c As Integer
        txtCol = "Échéancier des Acomptes" & Chr(10) & _
                    "Unité de réserve 0" & Chr(10) & _
                        "1932-02-01 - 1932-02-29" & Chr(10) & _
                            "UID"
     
        Range("A1:J1").ColumnWidth = 255
        For c = 1 To 10 Step 2
            Cells(1, c).Value = txtCol
        Next c
        Range("A1:J1").ColumnWidth = 15
        Range("A1:J1").Columns.AutoFit
    End Sub

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Bonjour,

    Cette discussion m'intéresse car j'ai eu plus ou moins le même problème il y a quelques temps.

    La première étapes qui consiste à mettre la largeur à 255 puis à ajuster me semble le plus optimisé (d'après mes précédentes recherches, mais je peux me tromper).
    Pour la deuxième étape, on pourrait remplacer la boucle par une sélection de toutes les en-têtes vides, ce qui limite à une seule instruction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(1).SpecialCells(xlCellTypeBlanks).ColumnWidth = 5
    Qu'en penses-tu ?

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par mat955 Voir le message
    Pour la deuxième étape, on pourrait remplacer la boucle par une sélection de toutes les en-têtes vides, ce qui limite à une seule instruction.
    Qu'en penses-tu ?
    En fait, à 2 instructions.
    Il va te falloir gérer l'erreur lorsqu'aucune colonne ne sera vide...

    Ma solution n'est pas si mal.
    Est-elle valide sur toutes versions, je ne sais pas...

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour et merci de vos réponses.

    J'avais oublié de préciser que je ne connais pas à priori le nombre de colonnes d'en-têtes.

    Entre temps je suis parvenu à une solution en utilisant UsedRange.
    Je prend toutes cellules de la colonne 1 aux nombre de colonnes qui lui appartiennent et je fais comme expliqué avant.

    J'aime bien la solution avec la sélection des cellules vides selon leur type. Je vais la garder dans un coin de ma tête.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    J'ai mis en place la solution de pijaku qui est vraiment simple même si pas intuitive du tout.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Citation Envoyé par pijaku Voir le message
    En fait, à 2 instructions.
    Il va te falloir gérer l'erreur lorsqu'aucune colonne ne sera vide...
    Tout à fait, je suis allé un peu vite !

    Ta solution est pas mal, elle fonctionne bien si on a la possibilité de mettre les en-tête après avoir dimensionner la largeur à 255.
    Si les en-têtes sont déjà présentes en revanche, ça obligerait à les supprimer pour les remettre, non ?

  8. #8
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par mat955 Voir le message
    Si les en-têtes sont déjà présentes en revanche, ça obligerait à les supprimer pour les remettre, non ?
    Oui.
    Ce qui est extrêmement contraignant s'il s'agit d'un import...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2013, 11h48
  2. [XL-2003] Ajustement auto largeur de colonne sans renvoi à la ligne
    Par hallscar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/10/2011, 23h23
  3. Ajuster la largeur des colonnes d'un stringgrid
    Par codial dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/04/2008, 08h55
  4. [HTML] Ajustement de la largeur des colonnes
    Par louroulou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/02/2008, 16h50
  5. Réponses: 1
    Dernier message: 19/07/2006, 19h06

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