XL 2016 VBA insertion de deux colonnes régulières à partir d'une cellule variable

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 !

bagheera

XLDnaute Nouveau
Bonjour les experts Excel,
je me suis mis au défi de faire une macro toute simple pour automatiser une action que je fais à la main à chaque fois :
créer deux colonnes régulières (une de séparation et une à remplir, exemple colonnes Q et R) à chaque nouvelle date de test.
Évidemment, la tâche s'avère plus compliquée que je ne le souhaitais.
- J'ai une cellule fusionnée (F1:S1) qui me copie tout mon tableau avec ma macro donc j'ai dû ajouter une action d'ôter la fusion de cellule pour faire la fusion de cette cellule après mon action.
- J'ai ma colonne de référence qui se déplace de deux colonnes vers la droite à chaque nouvelle insertion et je n'arrive pas à utiliser ma variable "col" comme il faut.
- Je souhaite garder la mise en forme d'origine des deux colonnes en supprimant les marquants de notation comme montrés en colonne F.
Bref, comme dirait Bonnie Tyler, je tourne en rond...
Si il y a moyen de m'expliquer ce qui pêche dans mon codage pour réussir mon défi, vous seriez géniaux !
Mille mercis d'avance pour votre aide.
Bagheera, le plus gros chat noir qu'on connaisse ^^
 

Pièces jointes

Solution
Bonjour
Ta macro modifiée
VB:
Sub Ajout_Colonnes()
    Dim col As Long
    col = Cells(2, Columns.Count).End(xlToLeft).Column
    'col = Rows("2:2").Find(What:="z").Column
    Range("F1").Select
    Selection.UnMerge
    Columns("K:L").Copy
    Columns(col).Insert Shift:=xlToRight
    col = Cells(2, Columns.Count).End(xlToLeft).Column
    Range(Range("F1"), Cells(1, col)).Merge
End Sub
A+ François
Bonjour
Ta macro modifiée
VB:
Sub Ajout_Colonnes()
    Dim col As Long
    col = Cells(2, Columns.Count).End(xlToLeft).Column
    'col = Rows("2:2").Find(What:="z").Column
    Range("F1").Select
    Selection.UnMerge
    Columns("K:L").Copy
    Columns(col).Insert Shift:=xlToRight
    col = Cells(2, Columns.Count).End(xlToLeft).Column
    Range(Range("F1"), Cells(1, col)).Merge
End Sub
A+ François
 
Merci beaucoup !
Je comprends le code plus simplifié.
Cela nécessite de n'avoir aucune écriture sur la ligne 2 après mon point de repère. C'est ça ?
Pour le fait d'avoir des colonnes vierges et prêtes à être remplies, j'ai créé une copie sur la droite de mon tableau des deux colonnes à copier.

Et j'essaie avec ce code pour aller chercher mes deux colonnes:

VB:
    Columns((col + 5) & ":" & (col + 6)).Copy
    Columns(col).Insert Shift:=xlToRight
    col = Cells(2, Columns.Count).End(xlToLeft).Column

Je dois être encore près de la bonne réponse mais je bute sur un bug.
 

Pièces jointes

- 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

Réponses
1
Affichages
336
Retour