XL 2016 Créer un renvoi automatique vers une feuille récap

thsoulard

XLDnaute Nouveau
Hello,

Je suis en train de créer un fichier dans lequel je duplique un onglet "formulaire de base" pour créer chaque nouveau formulaire (comme pour des factures par exemple).
Pour chaque nouvel onglet créé, je veux qu'automatiquement, via une macro, 4 infos aillent vers un onglet récap pour leur enregistrement.

J'ai donc écrit le code suivant :

Sub Ajout_recap()

Dim ligVide As Long
ligVide = Sheets("Récap").Range("A" & Rows.Count).End(xlUp).Row + 1

Worksheets(ActiveSheet.Name).Range("E8").Copy
Worksheets("Récap").Cells(ligVide, 1).PasteSpecial Paste:=xlPasteValues

Worksheets(ActiveSheet.Name).Range("E7").Copy
Worksheets("Récap").Cells(ligVide, 2).PasteSpecial Paste:=xlPasteValues

Worksheets(ActiveSheet.Name).Range("E6").Copy
Worksheets("Récap").Cells(ligVide, 3).PasteSpecial Paste:=xlPasteValues

Worksheets(ActiveSheet.Name).Range("E3").Copy
Worksheets("Récap").Cells(ligVide, 4).PasteSpecial Paste:=xlPasteValues

End Sub

Seul problème : peut importe l'ordre dans lequel je mets mes actions, au bout de la 2ème, la recopie ne fonctionne plus. La cellule copiée devient celle de la feuille "récap" au lieu de ma feuille dans laquelle je mets ma macro.

Auriez-vous des solutions ?
Merci bcp !!!
 

thsoulard

XLDnaute Nouveau
Bonjour thsoulard

Vous ne semblez pas connaitre la programmation objet est ses possibilités 🤔

En voici une
VB:
Sub Ajout_recap()
  Dim ligVide As Long
  With Sheets("Récap")
    ligVide = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Cells(ligVide, 1).Value = ActiveSheet.Range("E8")
    .Cells(ligVide, 2).Value = ActiveSheet.Range("E7")
    .Cells(ligVide, 3).Value = ActiveSheet.Range("E6")
    .Cells(ligVide, 4).Value = ActiveSheet.Range("E3")
  End With
End Sub

A+
ça fonctionne ! merci beaucoup !!! :)
 

Discussions similaires

Réponses
10
Affichages
388
Réponses
2
Affichages
289

Statistiques des forums

Discussions
299 832
Messages
1 979 382
Membres
206 709
dernier inscrit
giacomin.lorenzo@hotmail.