[Résolus]copier un tableau vers une autre feuille

  • Initiateur de la discussion Initiateur de la discussion sky45
  • 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 !

sky45

XLDnaute Nouveau
Bonjour à tous
je rencontre un probleme avec mon bouton archiver, j'ai crée un bouton qui recopie le contenu de la Feuille 1 vers la feuille 2.
Mon but est qu'a chaque fois que je click sur le bouton pour archiver, le contenu s'ajoute au dessus du précédent en ajoutant une ligne vide de séparation mais malheuresement il supprime une partie du contenu précédent en ajoutant le nouveau.
Voila mon code pouvez vous m'aider s'il vous plait afin que le contenu ne s'efface pas à chaque sauvegarde dans Archive ?
et si possible ne selectionner que les cellules non vide dans Data pour rendre mon code plus propre car la je selectionne la feuille entière ce qui n'est pas très interessant


Code:
Range("A1:AZ1000" & Sheets("data").Range("AF65536").End(xlUp).Row).Copy
    Sheets("Archive_Hebdo").Select
    Range("A" & Sheets("Archive_Hebdo").Range("A65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Range("A1").Select
 
Dernière édition:
Re : copier un tableau vers une autre feuille

Merci pour la réponse mais je ne pense pas que ce soit faisable avec une simple macro puisque le contenu serait écrasé à chaque sauvegarde, je veux plûtot qu'il s'ajoute en dessous ou au dessus du précédent
 
Re : copier un tableau vers une autre feuille

Bonsoir à tous

sky45
Si j'ai bien compris la question, ceci devrait faire l'affaire
(NB: adapter le nom des feuilles par rapport à ton classeur)
Code:
Sub a()
Dim sDatas, wsA As Worksheet, wsB As Worksheet
Set wsA = Sheets(1): Set wsB = Sheets(2)
sDatas = Range(wsA.Cells(1, 1), wsA.Cells(Rows.Count, 1).End(3)).Resize(, 30)
wsB.Cells(1, 1).Resize(UBound(sDatas, 1) + 1).EntireRow.Insert
wsB.Cells(1, 1).Resize(UBound(sDatas, 1), UBound(sDatas, 2)).Value = sDatas
Erase sDatas
End Sub
PS: test OK sur mon PC
 
Re : copier un tableau vers une autre feuille

Merci pour ta reponse Staple, j'ai revu mon code mais je ne sais pas ou je pourrai intégrer le tien j'ai vu que le saut de ligne fonctionne super bien chez toi
peux tu y jetter un aide pour adapter avec le tien merci
 

Pièces jointes

Re : copier un tableau vers une autre feuille

Re

sky45
[TABLE="width: 850"]
[TR]
[TD]Pourquoi adapterai-je mon code (que tu n'as pas daigné copier dans ta PJ) à ta place ? ... 🙄
Relis le NB: de mon précédent message 😉.
Tu as tous les paramètres en main pour faire l'adaptation toi-même.
(Ce qui sera plus enrichissant pour toi que d'attendre que je le fasse à ta place 😉)[/TD]
[TD]Sub archivages()
Dim sDatas, wsA As Worksheet, wsB As Worksheet
Set wsA = Worksheets("Mail"): Set wsB = Worksheets("Achive_Hebdo")
sDatas = Range(wsA.Cells(3, "E"), wsA.Cells(Rows.Count, "E").End(3)).Resize(, 2)
wsB.Cells(1, 1).Resize(UBound(sDatas, 1) + 1).EntireRow.Insert
wsB.Cells(1, 1).Resize(UBound(sDatas, 1), UBound(sDatas, 2)).Value = sDatas
Erase sDatas
End Sub

[/TD]
[/TR]
[/TABLE]




 
Dernière édition:
Re : copier un tableau vers une autre feuille

Bonsoir emiliedusub

Avant de t'intéresser à mon code, il serait plus judicieux de commencer à nous dire Bonsoir ou Bonjour...🙄
(Ce qui est la moindre des politesses, non 😉 ?)
 
Re : copier un tableau vers une autre feuille

Merci Stapple j'ai bien testé ton code même si je ne l'ai pas rajouté ici c'est comme sa d'ailleurs j'ai vu que le saut de ligne fonctionnait bien.
je vais essayer de l'adapter moi même, si je t'ai demandé de le faire c'est que je vois venir les ennuis mais je vais me
prendre la tête avec pour faire de mon mieux
et je reviens vers toi au cas ou je n'y arriverai bien
merci encore !
 
Re : copier un tableau vers une autre feuille

Re

sky45
Je te donne un second indice 😉
sDatas = Range(wsA.Cells(3, "E"), wsA.Cells(Rows.Count, "E").End(3)).Resize(, 2)
Change ce qui doit être changé ailleurs dans le code, et tu devrais trouver tout seul quelle doit être la macro finale adaptée à ta PJ du message #5. 😉

PS: Si tu sèches, reviens lire le fil plusieurs fois, jusqu'à ce que tu y trouves la solution 😉
 
Re : copier un tableau vers une autre feuille

Re Staple je reviens vers toi j'ai testé le code il fonctionne mais ce n'est pas encore ce que j'espérais avoir
je n'exprime pas assez bien ce que je souhaite faire alors je remet un exemple qui j'espère sera plus explicite.
Donc à chaque click sur le bouton archiver on réalise un enregistrement comme tu le veras.
 

Pièces jointes

Re : copier un tableau vers une autre feuille

Bonsoir à tous

sky45
Je vois que tu as su lire entre les lignes blanches ... 😉

Essaies cette variante de la macro archivages, et redis moi si cela te va.
Code:
Sub archivagesBis()
Dim wsA As Worksheet, wsB As Worksheet
Set wsA = Sheets("Mail"): Set wsB = Sheets("Achive_Hebdo")
Range(wsA.Cells(3, "E"), wsA.Cells(Rows.Count, "E").End(3)).Resize(, 3).Copy wsB.Cells(Rows.Count, 1).End(3)(3)
End Sub
NB: Test OK sur mon PC.
 
Re : copier un tableau vers une autre feuille

impecable ! sa tourne à merveille !
merci Staple, 2 petites dernières chose peux tu m'expliquer cette partie de ton code

Code:
.Resize(, 3).Copy wsB.Cells(Rows.Count, 1).End(3)(3)
et si par exemple je veux mettre une bordure automatiquement à chaque archive pour bien marquer la séparation peux tu me donner une piste pour le faire ?
 
- 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