Modification automatique d'une macro ( idem formules )

  • Initiateur de la discussion Initiateur de la discussion Kernoz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Kernoz

XLDnaute Occasionnel
Bonjour,

Une petite question : J'ai crée un code plutôt long avec beaucoup de copier/coller.

Or je dois insérer une nouvelle colonne dans mes données et du coup la macro ne copie plus les bonnes ( décalé d'un cran ).

Y'a t-il une manip à faire pour que mon code se modifie automatiquement lors de l'insertion d'une colonne sur un tableau ( de la même manière que les formules se modifie sur excel ) ??

Merci d'avance 😉
 
Re : Modification automatique d'une macro ( idem formules )

Bonjour Kernoz,

Le plus simple est de gérer une variable qu'on incrémente de 1 (ou plus) au fur et à mesure du code
Comme ça si tu insère une ligne pour traiter une nouvelle colonne au bon endroit, ça ne devrait pas poser de soucis
 
Re : Modification automatique d'une macro ( idem formules )

Concretement ca se traduit comment sur un Range par exemple ?

un bout de mon code :

Code:
Sheets("Mois en cours").Select
    Range("A10:B34").Select
    Selection.Copy
    Sheets("Recap").Select
    Cells(65535, 2).End(xlUp)(2).Select
    ActiveSheet.Paste
 
Re : Modification automatique d'une macro ( idem formules )

Bonjour Kernoz,

ça n'a pas grand chose à voir avec ta question de départ mais sache que l'on peut se passer des Select dans la plupart des cas, le code que tu as proposé peut donc s'écrire


Code:
    Sheets("Mois en cours").Range("A10:B34").Copy Sheets("Recap").Cells(65535, 2).End(xlUp)(2)

En plus ça limite grandement le nombre de crises d'épilepsies pour les utilisateurs (avec l'utilisation de ScreenUpdating) 😉 et c'est plus rapide

Je te fais un exemple avec copie des cellules A10:B34 puis D10:F34 en gérant un numéro de colonne en variable et je te reviens
 
Re : Modification automatique d'une macro ( idem formules )

Re,

un exemple
si décalage de colonnes, modifier l'incrémentation de la variable Colonne

Code:
Sub test()
Dim Colonne As Long
    With Sheets("Mois en cours")
        Colonne = 1
        'copie A10:B34
        .Range(.Cells(10, Colonne), .Cells(34, Colonne + 1)).Copy Sheets("Recap").Cells(65535, 2).End(xlUp)(2)
        'Passage colonne D
        Colonne = Colonne + 3
        'copie D10:F34
        .Range(.Cells(10, Colonne), .Cells(34, Colonne + 2)).Copy Sheets("Recap").Cells(65535, 2).End(xlUp)(2)
    End With
End Sub
 
Re : Modification automatique d'une macro ( idem formules )

J'ai parlé un peu trop vite 🙁

En effet j'ai voulu appliquer la variable colonne à mon code mais je ne comprend pas en quoi cela décale mes selections :

Par exemple :

J'ai une copie à faire sur le Range D10:E34 ( Range(Cells(10, Colonne + 3), Cells(34, Colonne + 4))

Si j'insere une colonne en B ( par exemple ) , ma selection ne se fait pas en E10:F34 ( là ou se sont décalées mes données ) mais bien en D10:E34.

Merci d'avance pour votre retour.
 
Re : Modification automatique d'une macro ( idem formules )

OK.

Je m'en doutais fortement ! Le formule magique n'existe pas donc 🙁


Merci encore pour ces précisions, j'ai modifié tout mon code et je pense éffectivement que cela me facilitera le travail pour les modifications futurs.

A+
 
Re : Modification automatique d'une macro ( idem formules )

Re,

Après il y a d'autres approches possibles
Si on peut insérer des noms dans le classeur, les noms se décaleront avec l'insertion/suppression des colonnes donc on peut se baser sur la colonne d'une cellule nommée par exemple
Ou alors, si on connait le titre exacte de la colonne, on peut chercher le numéro de la colonne où se trouve le titre

Après tout dépend du fichier à traiter...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Macro VBA - Excel
Réponses
12
Affichages
799
  • Question Question
Microsoft 365 création Graphique
Réponses
6
Affichages
686
Retour