Copier/Coller/Effacer entre deux feuilles

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 !

Papynou

XLDnaute Occasionnel
Bonsoir le forum,

J'ai ouvert un classeur avec deux feuilles, "Feuille1" et "Feuille2" ' Vous remarquez de suite la qualité de la recherche dans le nom des feuilles 😎

Dans la Feuille1 j'ai des données que je veux transférer pour les archiver dans la Feuille2 ' Manip très originale et peu courante 🙄

J'ai essayé d'utiliser un code que j'ai encore "bricolé"

Private Sub Archivage() ' Là encore j'ai fait preuve de beaucoup d'imagination dans la recherche du nom de la Sub...
Dim C As Range
Dim DerLgn As Integer

With ThisWorkbook.Sheets("Feuille1")
For Each C In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
DerLgn = Sheets("Feuille2").Range("A65536").End(xlUp).Row + 1
C.EntireRow.Copy Destination:=Sheets("Feuille2").Cells(DerLgn, 1)
C.EntireRow.Delete
Next C
End With
With ThisWorkbook
ActiveWorkbook.Save
End With
Unload Me
Encours.Show
End Sub

Mais, mon "bricolage" n'a pas eu l'effet escompté. 😡

Ca Copie/Colle/Efface mais au moins 4 lignes à la fois. 😕

S'il y en a qui veulent se marrer avec les mésaventures d'un "bricolo" je me ferais un plaisir de faire un fichier.
 
Re : Copier/Coller/Effacer entre deux feuilles

Bonsoir Papynou, dg62,

Si j'ai bien compris le problème, je pense que tu peux te passer d'une boucle ici et "couper-coller" l'ensemble des lignes cibles d'un coup :
Code:
[SIZE=2][COLOR=NAVY]Sub[/COLOR] Archivage()
[COLOR=NAVY]Dim[/COLOR] Plage [COLOR=NAVY]As[/COLOR] Range
    [COLOR=NAVY]With[/COLOR] Sheets("Feuille1")
        [COLOR=NAVY]Set[/COLOR] Plage = .Range("A2:A" & .Range("A65536").[COLOR=NAVY]End[/COLOR](xlUp).Row).EntireRow
    [COLOR=NAVY]End With[/COLOR]
    Plage.[B]Cut [/B]Destination:=Sheets("Feuille2").Range("A65536").[COLOR=NAVY]End[/COLOR](xlUp).Offset(1, 0)
    ActiveWorkbook.Save
    Unload Me
    Encours.Show
[COLOR=NAVY]End Sub[/COLOR][/SIZE]
Cordialement,
 
Re : Copier/Coller/Effacer entre deux feuilles

Bonsoir didier,

En lisant ta solution je me suis aperçu que j'avais mal exposé mon problème et surtout pas donné le contexte. Mea Culpa 😱

Volià comment ça se passe :

1 - Un ListView sert à visualiser certaines des données contenues dans la Feuille1.

2 - En sélectionnant une ligne, via les CheckBox présents dans le ListView, un UserForm se rempli de toutes les données de la ligne (18 colonnes).

3 - On peut alors soit modifier, soit archiver cette ligne.

Donc, en réalité j'ai besoin de deux codes.

Le premier pour modifier et enregistrer les mises à jour dans la bonne ligne.

Le deuxième pour archiver dans la feuille 2 en supprimant la ligne dans la feuille1.

J'espère que ce coup-ci j'ai été précis dans l'énoncé de mon problème, je suis vraiment désolé d'avoir été aussi évasif.
 
Re : Copier/Coller/Effacer entre deux feuilles

Re Papynou,

Bon, désolé, d'une part je ne suis pas un grand spécialiste du Listview et d'autre part, le code que tu présentes plus haut et tes nouvelles explications ne me permettent pas de t'aider d'avantage.

Cordialement,
 
Re : Copier/Coller/Effacer entre deux feuilles

Bonjour Dg62, Didier, le forum

Principalement pour Didier. C'est moi qui suis désolé de n'avoir pas mieux cerné mon problème et donc t'avoir fait perdre du temps.

Ce matin, j'ai fait ce que j'aurai du faire dès le début, un fichier exemple.

Maintenant je le dis d'une manière certaine, ce sont bien des modifications dans les codes dont j'ai besoin. 😀

Un très bon dimanche à tous.
 
Dernière édition:
Re : Copier/Coller/Effacer entre deux feuilles

Bonjour Papynou, dg62, le Forum,

Tu trouveras ci-joint ton classeur modifié selon ma perception du problème.
Je pense que l'ensemble de tes interrogations peuvent trouver leur solution par la simple utilisation d'une variable publique (SelLign déclarée dans le module de code standard Module1) qui permet de récupérer l'index de ligne sélectionnée dans le ListView et de passer cette valeur aux différentes procédures de traitement du UserForm2.
Cette méthode te permet donc de cibler d'un coup la bonne ligne dans la feuille de calcul et évite les casses-têtes et autres stratagèmes pour obtenir le résultat escompté.
Voir les commentaires dans le code et sur la feuille de calcul...

Bonne continuation.
Cordialement,
 

Pièces jointes

Re : Copier/Coller/Effacer entre deux feuilles

re,

Didier, je viens juste de voir ta réponse dont je te remercie, elle comble mes souhaits 🙂

Je n'ai pas eu cette approche car elle nécessite une gymnastique d'esprit qui m'est encore étrangère mais je viens d'apprendre un mouvement de plus, merci beaucoup 😀

Les textes des étiquettes sont saisies via le code car j'utilise les trois boutons de l'UserForm Mini/Maxi/Fermer, c'est suite à ce post https://www.excel-downloads.com/threads/boutons-mini-maxi-close-sur-userform.71761/

Merci encore, bon fin de week-end à 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

Réponses
15
Affichages
784
Réponses
7
Affichages
454
Réponses
5
Affichages
911
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
740
Réponses
3
Affichages
332
Retour