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

  • Initiateur de la discussion Initiateur de la discussion thsoulard
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 !!!
 
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 !!! 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
947
Réponses
9
Affichages
865
Retour