Microsoft 365 Copie cellules dans un autre onglet

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 !

julien1982

XLDnaute Occasionnel
Bjr a tous.
sur le fichier joint je souhaiterai faire une macro permettant 2 choses:

- archiver certaines données dans un autre onglet
- Vider les cellules bleu de l'onglet "Devis"

Pour l'archivage, je souhaiterai recuperer les données écrites dans les cellules C12, G2, G7 et G21 de l'onglet "Devis" et les copier dans l'onglet "Archives" respectivement dans les cellules: A5, B5, C5, D5.

Une fois cette copie faite, l'onglet "Devis" est réinitialiser en supprimant toutes les cellules bleues.

Merci par avance pour aide.
 

Pièces jointes

Solution
Re

Pour la copie, ceci fonctionne sur mon PC
Code:
Sub archivage()
Dim a(4)
a(0) = [C12]: a(1) = [G2]
a(2) = [G7]: a(3) = [G21]

Dim tbl As ListObject
Set tbl = Sheets("Archive").ListObjects(1)

tbl.ListRows.Add.Range.Resize(1, UBound(a) + 1).Value = a
End Sub
NB: Au préalable, j'ai nettoyé Tableau4 ainsi
Tableau_Capture.PNG

Lance la macro plusieurs fois, en étant sur la feuille Devis et en ajoutant une nouvelle quantité entre chaque exécution.
Bonsoir @julien1982, le fil

@julien1982
Pourquoi ne pas avoir utiliser l'enregistreur de macros ?
Je viens de le faire
Code:
Sub Macro1()
Range("C7:E9,G7,C10,D11:E11,B14:B20").ClearContents
End Sub
Je te laisse tester pour voir quelle point de ta question cette macro s'occupe
😉
Slt, effectivement pour la suppression j'y ai pas pensé mais tt "simple" pas vraiment le reflexe de l'enregistreur 😅
Par contre pour la copie de l'onglet à un l'autre?


G2 --> B5
G7 --> C5
C1 --> A5
G27 --> D5
 
Re

Pour la copie, ceci fonctionne sur mon PC
Code:
Sub archivage()
Dim a(4)
a(0) = [C12]: a(1) = [G2]
a(2) = [G7]: a(3) = [G21]

Dim tbl As ListObject
Set tbl = Sheets("Archive").ListObjects(1)

tbl.ListRows.Add.Range.Resize(1, UBound(a) + 1).Value = a
End Sub
NB: Au préalable, j'ai nettoyé Tableau4 ainsi
Tableau_Capture.PNG

Lance la macro plusieurs fois, en étant sur la feuille Devis et en ajoutant une nouvelle quantité entre chaque exécution.
 
Re

Pour la copie, ceci fonctionne sur mon PC
Code:
Sub archivage()
Dim a(4)
a(0) = [C12]: a(1) = [G2]
a(2) = [G7]: a(3) = [G21]

Dim tbl As ListObject
Set tbl = Sheets("Archive").ListObjects(1)

tbl.ListRows.Add.Range.Resize(1, UBound(a) + 1).Value = a
End Sub
NB: Au préalable, j'ai nettoyé Tableau4 ainsi
Regarde la pièce jointe 1179022
Lance la macro plusieurs fois, en étant sur la feuille Devis et en ajoutant une nouvelle quantité entre chaque exécution.
C'est parfait! c'est top comme manière ça marche nickel.
Merci a vous tous!
 
- 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

Retour