Incrémentation nouvelle ligne dans un tableau

Résolu/Fermé
Spico974 Messages postés 2 Date d'inscription mardi 2 mai 2017 Statut Membre Dernière intervention 2 mai 2017 - 2 mai 2017 à 13:58
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 2 mai 2017 à 16:37
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.
A voir également:

1 réponse

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
2 mai 2017 à 14:31
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
Spico974 Messages postés 2 Date d'inscription mardi 2 mai 2017 Statut Membre Dernière intervention 2 mai 2017
2 mai 2017 à 14:44
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779 > Spico974 Messages postés 2 Date d'inscription mardi 2 mai 2017 Statut Membre Dernière intervention 2 mai 2017
2 mai 2017 à 16:37
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