Autofil avec ligne variable

Bonjour, désolé de vous demander mais je n'arrive pas à produire un code correct. :

Range("A1").Offset(1, 0).Select

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

Sheets("PDL sortis de la LTE").Select

Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

Range("B1").End(xlDown).Offset(1, 0).FormulaR1C1 = "=TODAY()"

Je m'explique, je cherche à automatiser un fichier pour mes collaborateurs afin de simplifiez la MAJ de celui-ci.

J'ai besoins que la date du jour (colonne B) soit indiqué à côté de chaque nouveau numéro dans la colonne A (date de sortie des numéros)

en gros : numéro 250xxxxxx date de sortie 24/04/2023.

J'ai fait des recherches sur le forum mais je suis pas doué avec les variables...

11macro-date.zip (0.99 Mo)

Bonjour Leolio30,

je pense avoir mal compris ce que vous souhaitez exactement car la solution est évidente.

Si je résume la macro :

- vous avez copié (après avoir appliqué un filtre) depuis la feuille "Traitement C", la colonne A 'sauf la ligne 1)

vers la feuille "PDL sortis de la LTE" en colonne A ligne 2 (mode valeurs)

donc la liste des n° PRM

- vous souhaitez, en colonne B, au regard de chaque n° collé avec une concaténation du n° (en colonne A) la date du jour,

Si vous mettez la date du jour en formule, à chaque recalcul de la feuille, vous aurez la date du jour et non celle du traitement.

Je suppose que c'est la date du traitement qui vous intéresse.

Voici le code dans ce cas à récupérer (ici je n'ai mis que le strict nécessaire, c'est à dire après le filtrage). Je l'ai bien sûr testé avec mon jeu d'essai

Sub MaMacro()
Dim DerLigne As Integer
    Sheets("Traitement C").Select
    Range("A1").Offset(1, 0).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("PDL sortis de la LTE").Select
    'Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Range("A2").PasteSpecial Paste:=xlPasteValues
    DerLigne = ActiveSheet.Cells(Rows.Count, Range("A1").Column).End(xlUp).Row ' dernier n° en colonne A
    Range("B2") = Format(Now(), "dd/mm/yyyy")
    Range("B2").Copy
    Range("B3:B" & DerLigne).Select
    ActiveSheet.Paste
End Sub

Merci pour la macro mais ce n’est pas tout à fait ce que je recherche.

Je voudrais effectivement que chaque nouvelle ligne soit marquée avec la date à laquelle elle a été copié dans la feuille PDL sortie de la LTE tout en conservant les lignes précédentes.

Je comptais faire une formule aujourd’hui et copier-coller en valeur pour les figer.

je vais continuer à bosser avec ton bout de code j'arriverais peut-être à quelque chose ;)

Bon j'ai fait autrement en mode bête mais ca amrche :

Columns("C:C").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""",TODAY(),RC[-1])"
    derniere_ligne = Range("A1").End(xlDown).Row
    Range("C2").AutoFill Destination:=Range("C2:C" & derniere_ligne), Type:=xlFillDefault
    Columns("C:C").Copy
    Columns("B:B").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("C:C").Delete
    Application.CutCopyMode = False

Merci mais si un autre code existe je suis preneur pour ma culture vba :)

Bonjour,
avec ces indications, on comprend mieux, d'où l'intérêt d'être le plus précis possible lorsqu'on poste un sujet.
Le code pourrait devenir celui-ci (non testé)
j'ai conservé en commentaires les anciennes lignes.
j'ai créé une nouvelle variable DerLigne2

Nos codes se sont croisés - dernière correction !!!

Sub MaMacro()
Dim DerLigne As Integer
Dim DerLigne2 As Integer
    Sheets("Traitement C").Select
    Range("A1").Offset(1, 0).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("PDL sortis de la LTE").Select
    'Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    'Range("A2").PasteSpecial Paste:=xlPasteValues
    DerLigne = ActiveSheet.Cells(Rows.Count, Range("A1").Column).End(xlUp).Row ' dernier n° en colonne A avant insertion
    Range("A" & derligne+1).PasteSpecial Paste:=xlPasteValues
    DerLigne2 = ActiveSheet.Cells(Rows.Count, Range("A1").Column).End(xlUp).Row ' dernier n° en colonne A après insertion
    Range("B" & DerLigne+1) = Format(Now(), "dd/mm/yyyy")
    Range("B" & DerLigne+1).Copy
    Range("B" & DerLigne+1 &":B" & DerLigne2).Select
    ActiveSheet.Paste
End Sub
Rechercher des sujets similaires à "autofil ligne variable"