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 :

Eviter redimensionnement sur ajout colonne [XL-2016]


Sujet :

Excel

  1. #1
    Membre régulier Avatar de scrouet
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 280
    Points : 105
    Points
    105
    Par défaut Eviter redimensionnement sur ajout colonne
    Bonjour.

    J'utilise un tableau Excel pour faire du reporting sur des URL en interrogeant l'API Mozilla Observatory. Le tableau est divisé en 3 blocs :
    • les premières colonnes (bloc 1) contiennent les URL et des informations de classification ;
    • les dernières colonnes (bloc 3) des informations et commentaires ;
    • entre ces deux blocs j'ai le bloc 2 de reporting à proprement parlé, à raison d'une colonne par mois.

    Lorsque j'insère manuellement une colonne dans le bloc 2, les colonnes décalées conservent leur largeur, ce que je souhaite. Si je veux le faire avec VBA pour automatiser la production du reporting mensuel, les colonnes "nommées" conservent leur largeur et le contenu est déplacé dans la colonne suivante, ce que je ne veux pas (ça m'oblige à redimensionner correctement toutes les colonnes).
    Par exemple, si j'ai les largeurs suivantes avant l'insertion :
    • colonne N: 93 pixels
    • colonne O: 26 pixels
    • colonne P: 40 pixels

    Après l'insertion manuelle j'ai :
    • colonne O: 93 pixels
    • colonne P: 26 pixels
    • colonne Q: 40 pixels

    Alors qu'avec l'insertion automatique j'ai :
    • colonne N: 93 pixels
    • colonne O: 26 pixels
    • colonne P: 40 pixels


    Est-ce que quelqu'un aurait une solution pour garder en automatisant le comportement que j'ai en insérant manuellement ?

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par scrouet Voir le message
    Si je veux le faire avec VBA pour automatiser la production du reporting mensuel, les colonnes "nommées" conservent leur largeur et le contenu est déplacé dans la colonne suivante
    Tu devrais présenter ton code quand tu fais une telle demande.

    Je suppose que tu insères la colonne en appliquant Insert à un Range de zone, non ?
    Si c'est le cas, remplace ce Range par un Column(X), en mettant ton n° de colonne à la place du X bien sûr.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre régulier Avatar de scrouet
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 280
    Points : 105
    Points
    105
    Par défaut
    Voici le morceau de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Application.StatusBar = "Adding new column..."
    rReportTbl.Columns(3).Select
    Selection.Copy
    Selection.Insert shift:=xlToRight
    Sachant que rReportTbl est un range nommé comprenant les blocs 1 et 2, de la ligne 1 de l'onglet à la dernière ligne du tableau.

  4. #4
    Membre régulier Avatar de scrouet
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 280
    Points : 105
    Points
    105
    Par défaut
    OK, j'ai trouvé : il faut que j'utilise directement l'onglet à la place du range rReportTbl. Donc remplacer la ligne 2 de mon extrait de code par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("MozObs").Columns(3).Select
    Merci de m'avoir aidé à réfléchir !

  5. #5
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par scrouet Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rReportTbl.Columns(3).Select
    Ceci ne désigne pas la colonne 3 mais uniquement la 3ème colonne de la zone rReportTbl, c'est-à-dire juste quelques cellules de la colonne.
    Ce qui explique le décalage lors de l'insertion.

    Citation Envoyé par scrouet Voir le message
    OK, j'ai trouvé : il faut que j'utilise directement l'onglet à la place du range rReportTbl. Donc remplacer la ligne 2 de mon extrait de code par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("MozObs").Columns(3).Select
    Merci de m'avoir aidé à réfléchir !
    Le Worksheet n'est utile que s'il ne s'agit pas de l'onglet actif. Sinon, on peut l'omettre.

    Autre piste de réflexion : abandonner les Select/Selection qui ne font qu'alourdir le code et l'exécution.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("MozObs").Columns(3).Copy
    Worksheets("MozObs").Columns(3).Insert
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. Ajout de champs automatique sur la colonne A
    Par cedill23 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/11/2010, 14h29
  2. Réponses: 1
    Dernier message: 27/07/2009, 16h11
  3. Réponses: 5
    Dernier message: 03/11/2008, 16h59
  4. Réponses: 4
    Dernier message: 12/08/2008, 12h20
  5. Ajouter un commentaire sur une colonne
    Par brice44 dans le forum Requêtes
    Réponses: 8
    Dernier message: 09/07/2007, 15h33

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