Incrémentation nouvelle ligne dans un tableau [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
mardi 2 mai 2017
Statut
Membre
Dernière intervention
2 mai 2017
-
Messages postés
8192
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
29 septembre 2020
-
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

Messages postés
8192
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
29 septembre 2020
1 474
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
Messages postés
2
Date d'inscription
mardi 2 mai 2017
Statut
Membre
Dernière intervention
2 mai 2017

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?
Messages postés
8192
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
29 septembre 2020
1 474 >
Messages postés
2
Date d'inscription
mardi 2 mai 2017
Statut
Membre
Dernière intervention
2 mai 2017

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