VBA poue copier le contenu d'une colonne dans une autre

Bonjour à tous,

J'essaye cette fois de remplir une tache intermédiaire dans le traitement de la donnée d'un de mes fichiers.

L'étape est:

Pour chaque ligne existante de la colonne L et à partir de la ligne 2 (pour épargner l’entête de colonne) je voudrais que le contenu de L soit copié dans la ligne équivalente de la colonne P si celle-ci ne contient pas de valeur (car je ne dois surtout pas ecraser la valeur qui pourrait s'y trouver.

Donc sommairement

Colonne L Colonne P

10

20 1996

10

10 1997

devient

Colonne L Colonne P

10 10

20 1996

10 10

10 1997

Si quelqu'un a une proposition de code pour moi

Merci bien !

Bonjour,

à tester,

Sub test()
For i = 2 To Cells(Rows.Count, "L").End(xlUp).Row
If Cells(i, "P") = "" Then Cells(i, "P").Value = Cells(i, "L")                  'Cells(i, "P") = "" ou bien vérifier si  Cells(i, "P") = 0
Next
End Sub
sabV a écrit :

Bonjour,

à tester,

Sub test()
For i = 2 To Cells(Rows.Count, "L").End(xlUp).Row
If Cells(i, "P") = "" Then Cells(i, "P").Value = Cells(i, "L")                  'Cells(i, "P") = "" ou bien vérifier si  Cells(i, "P") = 0
Next
End Sub

C'est en plein ça, merci beaucoup sabV !

Salut Ventura,

Re, sabV , au taquet, dis-donc!

autre façon de faire en s'appuyant sur l'événement Worksheet_Change()

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Not Intersect(Target, Union(Range("L:L"), Range("P:P"))) Is Nothing Then
    Range("P" & Target.Row).Value = IIf(Range("P" & Target.Row).Value = "" And Range("L" & Target.Row).Value <> "", _
                        Range("L" & Target.Row).Value, Range("P" & Target.Row).Value)
End If
'
Application.EnableEvents = True
'
End Sub

A+

8ventura-v1.xlsm (15.38 Ko)

Bonjour Ventura76, curulis57, à tous,

Ventura76, Merci pour ce retour, bien contente que tout fonctionne maintenant, au plaisir!

Rechercher des sujets similaires à "vba poue copier contenu colonne"