XL 2010 Enregistrer les donnees d'une ligne avant de la supprimer

Eric kankonde

XLDnaute Nouveau
Bonjour à tous.
J’ai un classeur qui contient 3 feuilles: « sources », « agents » et « archives ». Voir pièce jointe
Dans la feuille « agent » j’ai 3 boutons qui me donnent la possibilité de modifier ma base de données, d’ajouter dans la base, et de supprimer dans ma base. Comme vous le remarquerez, à chaque fois que je supprime un numéro de matricule de la feuille « sources », le même numéro est supprimée automatiquement dans la feuille « agents ». (Donc c’est la ligne entière qui est supprimée)
Alors voici ma préoccupation: j’aimerais qu’à chaque fois que je supprime un certain numéro de matricule, ses données de la feuille « agents », (donc la ligne entière du matricule de la feuilles « agents ») sont automatiquement copiées et collées dans la feuille archives)
Quelqu’un peut-il m’aider svp?
 

Fichiers joints

Ikito

XLDnaute Occasionnel
Bonjour,

Avant de supprimer la ligne :
VB:
Rows(I).Delete
Tu la récupères et tu la colles :
VB:
LigDispo = Sheets("archives").Range("A1").Rows.Count
.Range("A" & I & ":G" & I).Copy Destination:=Sheets("archives").Range("A" & LigDispo)
 

Roblochon

XLDnaute Accro
Bonjour,

@Ikito tu es sûr de "Sheets("archives").Range("A1").Rows.Count" pour renvoyer la prochaine ligne dispo ?:)
Ne serait-ce pas : "Sheets("archives").range("A" & rows.Count).end(xlup).offset(1).row" :)

Range("A1").Rows.Count renverra toujours 1 (Il n'y a qu'une ligne dans Range("A1")

Cordialement
 

Ikito

XLDnaute Occasionnel
Bonjour,

@Ikito tu es sûr de "Sheets("archives").Range("A1").Rows.Count" pour renvoyer la prochaine ligne dispo ?:)
Ne serait-ce pas : "Sheets("archives").range("A" & rows.Count).end(xlup).offset(1).row" :)

Range("A1").Rows.Count renverra toujours 1 (Il n'y a qu'une ligne dans Range("A1")

Cordialement
C'est vrai ça, j'ai oublié "CurrentRegion"...

VB:
Sheets("archives").Range("A1").CurrentRegion.Rows.Count
 

Eric kankonde

XLDnaute Nouveau
Bonjour,

Avant de supprimer la ligne :
VB:
Rows(I).Delete
Tu la récupères et tu la colles :
VB:
LigDispo = Sheets("archives").Range("A1").Rows.Count
.Range("A" & I & ":G" & I).Copy Destination:=Sheets("archives").Range("A" & LigDispo)
Merci beaucoup de m'avoir aidé. Je vois que je suis en voie de trouver solution à mon problème grâce à vous. Le code fonctionne bien. Mais la difficulté c'est que, le code copie dans la feuille source au lieu de copier dans la feuille agent. Y a-t-il moyen de refaire le code en copiant dans la feuille agent et coller dans la feuille archive?? Ou il y a-t-il moyen de coder dans mon classeur en piece jointe??Svp ne vous fatiguez pas de m'aider car je suis un vrai débutant.
 
Dernière édition:

Ikito

XLDnaute Occasionnel
Re,

VB:
Destination:=Sheets("archives").Range("A" & LigDispo)
C'est censé être copié dans la feuille archives, si tu le veux dans une autre feuille, modifie "archives" par le nom de ta feuille.
 

Eric kankonde

XLDnaute Nouveau
Re,

VB:
Destination:=Sheets("archives").Range("A" & LigDispo)
C'est censé être copié dans la feuille archives, si tu le veux dans une autre feuille, modifie "archives" par le nom de ta feuille.
Merci beaucoup. Ça fonctionné parfaitement.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas