Insérer des colones dans une feuille avec Macro

  • Initiateur de la discussion Initiateur de la discussion marcm1049
  • 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 !

M

marcm1049

Guest
Bonjour,

J'ai récupérer une feuille sur le Forum, pour un suivi d'activités. Le pb c'est que je ne sais pas comment insérer des lignes ou colones sans "casser" la macro.😡

Pb aussi si je modifie le texte des têtes de colonnes....

si j'avais la même feuille avec 10 colonnes sup avant la colonne de validation, , je pourrais masquer les colonnes dont je ne me sert pas.

Merci de votre aide.
 

Pièces jointes

Re : Insérer des colones dans une feuille avec Macro

Bonjour

Essayez ceci pour ajouter des colonnes

Private Sub Worksheet_Change(ByVal Target As Range)
If flag Then Exit Sub
flag = True
col = Range("7:7").End(xlToRight).Column
If Target.Column = col And Target.Row > 7 And UCase(Target.Value) = "X" Then
nomfeuil = Range("A" & Target.Row)
Range( Cells(Target.Row ,1),Cells (Target.Row,col)).Copy Destination:=Sheets(nomfeuil).Range("A65536").End(xlUp).Offset(1, 0)
Sheets(nomfeuil).Range("A65536").End(xlUp).Offset(0, col) = Date
Rows(Target.Row).Delete
End If
flag = False
End Sub

Cdlt

RGI
 
Dernière édition:
Re : Insérer des colones dans une feuille avec Macro

Bonjour Marc,

Dans la macro:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If flag Then Exit Sub
flag = True
If Target.Column = [COLOR=red][B]7[/B][/COLOR] And Target.Row >= [COLOR=red][B]8 [/B][/COLOR]And UCase(Target.Value) = "X" Then
  nomfeuil = Range("A" & Target.Row)
  [COLOR=olive][B]Range("A" & Target.Row & ":G" & Target.Row).[/B][/COLOR]Copy Destination:=Sheets(nomfeuil).Range("A65536").End(xlUp).Offset(1, 0)
  Sheets(nomfeuil).Range("A65536").End(xlUp).Offset(0, 7) = Date
  Rows(Target.Row).Delete
End If
flag = False
End Sub
Le 7 peut-être changé par le numéro de colonne que tu souhaite. si tu rajoute 10 colonne avant, mets 17
Le 8 quant à lui représent le numéro de la première ligne de données du tableau. Il peut-être changé en cas de besoin.

En ce qui concerne Range("A" & Target.Row & ":G" & Target.Row) , cela définit la plage de cellule à copier. Le "A" et le "G" peuvent être changé pour les lettre de colonnes de départ et de fin de la plage de cellules. Target.row représent la le n° de ligne. Donc si la ligne à valider est la 9ème ligne de la feuille, vba traduit Range("A" & Target.Row & ":G" & Target.Row) par Range("A9:G9") soit cellules de "A9" à "G9".

Je te laisse faire les changements.

A bientôt

EDITION: Salut Gilbert
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
1 K
Retour