Insérer des colones dans une feuille avec Macro

marcm1049

XLDnaute Nouveau
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.:mad:

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

  • Suiviactivitesb.zip
    11.4 KB · Affichages: 22
  • Suiviactivitesb.zip
    11.4 KB · Affichages: 19
  • Suiviactivitesb.zip
    11.4 KB · Affichages: 19

gilbert_RGI

XLDnaute Barbatruc
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:
G

Guest

Guest
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
 

marcm1049

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

Merci, mais je n'y arrive pas.
j'ai bien essayé, mais ne dois avoir tout compris !
ci joint, mon essai....
 

Pièces jointes

  • Suiviactivitesb.zip
    9.7 KB · Affichages: 16
  • Suiviactivitesb.zip
    9.7 KB · Affichages: 15
  • Suiviactivitesb.zip
    9.7 KB · Affichages: 10

gilbert_RGI

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

Problème de dernière colonne

voir la PJ

Cdlt

RGI
 

Pièces jointes

  • Suiviactivitesb.zip
    14.5 KB · Affichages: 27
  • Suiviactivitesb.zip
    14.5 KB · Affichages: 28
  • Suiviactivitesb.zip
    14.5 KB · Affichages: 26

Discussions similaires