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 Impliqué
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.
 

Discussions similaires


Haut Bas