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 :

Adaptation du VBA lors d'un décalage de colonne ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 167
    Points : 131
    Points
    131
    Par défaut Adaptation du VBA lors d'un décalage de colonne ?
    Bonjour ,

    J'ai une feuille classique avec , bien sur , des fonctions , des MFC et du coe VBA.

    Si j'insère une nouvelle colonne , qui décale mes données (Vers la droite par exemple) , mes fonctions et mes MFC vont s'adapter automatiquement.

    Par contre , le VBA , lui ne bougera pas.

    Est-ce normal ou y a-t-il un paramètre quelque part ?

    Attention , ceci n'est en aucun cas un reproche de ma part , je trouve déjà absolument génial que les fonctions et les MFC s'adaptent automatiquement !

    J'ai aussi parfaitement conscience de l'infinie complexité de la chose , mais Excel est tellement puissant ...

    Donc je me demande juste si cela est possible (Me si je n'y crois pas)

    Merci de vos réponses

    Bakounine

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    c'est normal selon le niveau de l'auteur du code, s'il n'a pas pensé à travailler avec des plages nommées par exemple
    ou encore repérer les colonnes par leurs entêtes …

    ___________________________________________________________________________________________________________
    Je suis Paris, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 167
    Points : 131
    Points
    131
    Par défaut
    Bonjour Marc-L ,

    Le niveau de l'auteur du code n'est pas bien élevé , puisque c'est moi l'auteur.

    J'essaie de me débrouiller tout seul et ce code a été crée avec l'enregistreur de macro ....

    Peux-tu m'en dire un peu plus sur les plages nommées ou repérer les colonnes par leurs entêtes ?

    Ou un tuto ?

    D'avance , merci

    Bakounine

  4. #4
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,

    Il faudrait voir le code, mais a mon avis, le code fait référence à des plages de la façon suivante :
    Dans ce cas, Excel lit bêtement ce qui est écrit : je travaille sur les cellules A1 à A100. Si tu ajoutes une colonne avant A, la colonne qui était A devient B et Excel travaille sur la nouvelle colonne A.
    Si tu as des titres à tes colonnes (en ligne 1, par exemple), tu peux trouver le numéros de colonne grâce au titre, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim i As Long
    i = Application.Match("titre", Range("1:1"), 0)
    i indiquera le numéro de la colonne où est le titre. Ensuite si tu as besoin de travailler sur cette colonne, tu peux utiliser la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(1, i), Cells(100, i))
    Voici un tuto pour VBA : http://bidou.developpez.com/article/VBA/

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 167
    Points : 131
    Points
    131
    Par défaut
    Bonjour Riaolle ,

    En voila une superbe réponse , car honnêtement , cela ne se devine pas !

    Je vais m'amuser avec çà et potasser le PDF.

    Merci beaucoup à toi.

    Bakounine

  6. #6
    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
    Plus simple : au lieu d'écrire :
    Tu donnes à E1:E100 un nom : Ruban Formules > Icone Définir un nom.
    Si ce nom est, par exemple, "MaListe", remplace l'expression précédente par :
    Comme le nom est un élément d'Excel, il corrigera sa position en fonction d'éventuels insertion/suppression ou déplacements.

  7. #7
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Perso j'utilise un Enum pour ce genre de chose.

    Ensuite la référence a une colonne passe toujours par cette Enum.

    S'il y a modification de la structure du tableau seul l'Enum est a modifier.

    A lire : VBA: Enumeration

Discussions similaires

  1. [AC-2007] Voir Ecriture Vba lors des enregistrements macro access
    Par Debutant10 dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/10/2011, 00h26
  2. [Toutes versions] Nom de colonnes Eviter le décalage lors d'un ajout de colonne.
    Par n0vocaine dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/07/2011, 16h55
  3. [XL-2007] Erreur VBA lors du rafraichissement du TCD
    Par Lison Lisette dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/07/2010, 10h36
  4. Réponses: 3
    Dernier message: 08/04/2010, 14h01
  5. Lancement procedure vba lors de l'ouverture de l'appli
    Par fafabzh6 dans le forum Access
    Réponses: 2
    Dernier message: 06/03/2007, 12h14

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