Incrémentation nouvelle ligne dans un tableau

Résolu
Spico974 Messages postés 2 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Désolé si ce post ressemble à beaucoup d'autre mais malgré mes recherches je suis toujours bloqué, voici mon cas :

J'ai un tableau d'offre client avec plusieurs colonne de données, chaque ligne représente une offre. La 1ére ligne c'est un numéro d'offre qui s'incrémente de 1 en 1.
Je souhaite créer un bouton qui incrémentera mon tableau d'une nouvelle ligne avec toutes les mises en forme et les formules de la précédente et en même temps qui rajoutera les initiales de la personne qui a créer l'offre dans la colonne B de la nouvelle ligne. Il y aura un bouton par personne.
J'ai réussi à le faire pour la 1ére ligne mais je n'arrive pas à faire en sorte que cela s'enchaine.

Je suis débutant en VBA, voici le code que j'ai utilisé :

Sub LT()
'
' LT Macro
'
'Variable numéro de la dernière ligne
derlig = Range("A" & Rows.Count).End(xlUp).Row
'Variable numéro de l'avant dernière ligne
avderlig = Range("A" & Rows.Count).End(xlUp).Row + 1

Range("A" & derlig).Select

'Tirer la dernière cellule jusqu'à l'avant dernière cellule
Selection.AutoFill Destination:=Range("A & derlig:A" & avderlig), Type:= _
xlFillDefault

Range("B" & avderlig).Select
ActiveCell.FormulaR1C1 = "LT"
Range("C" & avderlig).Select

End Sub

La dernière erreur que j'ai c'est une erreur exécution 1004. Pouvez-vous m'aider à corriger cette erreur et peut être à améliorer mon code s'il vous plait.

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    Essaies :
    Option Explicit
    Sub LT()
    Dim cel As Range
    
      Set cel = Range("A" & Rows.Count).End(xlUp)
      cel.AutoFill Destination:=cel.Resize(2)
      cel.Offset(1, 1).Formula = "LT"
      cel.Offset(1, 2).Activate
      
    End Sub
    0
    1. Spico974 Messages postés 2 Statut Membre
       
      Bonjour Patrice,

      Waow, merci beaucoup, à première vue c'est exactement ce dont j'ai besoin. Pouvez-vous m'expliquer les étapes s'il vous plait?
      0
      1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783 > Spico974 Messages postés 2 Statut Membre
         
        Re,

        Option Explicit
        Sub LT()
        ' Déclarer une variable pour une cellule
        Dim cel As Range
        
          ' cel = dernière cellule utilisée de la colonne A
          Set cel = Range("A" & Rows.Count).End(xlUp)
          ' recopie incrémentée de cel vers cel et la cellule suivante
          cel.AutoFill Destination:=cel.Resize(2)
          ' écrire "LT" sur la ligne et la colonne suivantes
          ' (i.e. décalage d'une ligne et d'une colonne)
          cel.Offset(1, 1).Formula = "LT"
          ' Activer la cellule de la ligne suivante et de la 3ème colonne
          cel.Offset(1, 2).Activate
          
        End Sub
        0