Microsoft 365 VBA Ajouter une colonne à droite avec mise en forme

Wiil85

XLDnaute Nouveau
Bonjour,
Je cherche à enregistrer une macro me permettant d'ajouter une colonne à droite de la colonne sélectionnée (ou mieux encore, après la dernière colonne complétée = si case de la ligne 1 complétée) avec reprise de la mise en forme des colonnes précédentes (dont les listes) et en-tête "Nom collectivité" dans la case de la ligne 1. ça paraît simple mais je ne trouve pas la bonne solution sur le forum...
Ci-joint le modèle de fichier.
Merci d'avance ;)
 

Pièces jointes

  • Classeur1.xlsx
    12.4 KB · Affichages: 6
Solution
Bonjour Wiil85, Phil69970,

Exécutez :
VB:
Sub Ajout_Colonne()
With Cells(1, Columns.Count).End(xlToLeft).EntireColumn
    .Insert
    .Offset(, -1).Cut
    .Offset(, 1).Insert
    .Cells(1, 2) = "Nom collectivité"
End With
End Sub
A+

Phil69970

XLDnaute Barbatruc
Bonjour @Wiil85

Je te propose ce fichier avec 2 exemples en fonction de ce que j'ai compris
Si ce n'est pas ce que tu veux reprécise ta demande
J'ai commenté le code

Merci de ton retour
 

Pièces jointes

  • Copie colonne V1.xlsm
    34.4 KB · Affichages: 0
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Wiil85, Phil69970,

Exécutez :
VB:
Sub Ajout_Colonne()
With Cells(1, Columns.Count).End(xlToLeft).EntireColumn
    .Insert
    .Offset(, -1).Cut
    .Offset(, 1).Insert
    .Cells(1, 2) = "Nom collectivité"
End With
End Sub
A+
 

fanch55

XLDnaute Barbatruc
Bonjour à tous,
je n'avais pas cliqué sur répondre.
une autre approche à faire à volonté :
VB:
Option Compare Text
Sub AddCol()
    With Columns(Cells(1, Columns.Count).End(xlToLeft).Column + 1)
        If .Cells(1, -1) <> "Nom Collectivité" Then
            .Offset(, -1).Copy .Cells(1)
            .ClearContents
            .Cells(1) = "Nom Collectivité"
        End If
    End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 168
Messages
2 106 719
Membres
109 676
dernier inscrit
yassine ghozzia