Excel copier ligne ds autre feuille pui suppr
Viv
-
wilfried_42 Messages postés 912 Statut Contributeur -
wilfried_42 Messages postés 912 Statut Contributeur -
Bonjour,
j'ai une feuille (encours) de différentes données et je souhaiterais que pour une action que je déclencherais (ex: cocher une case puis valider sur un bouton ou mettre un X la cellule de la ligne concerné et appuyer sur un bouton), la ligne de données se copie dans une autre feuille (historique) et se supprime de la feuille d'origine (encours).
Pouvez-vous m'aider?
Merci
j'ai une feuille (encours) de différentes données et je souhaiterais que pour une action que je déclencherais (ex: cocher une case puis valider sur un bouton ou mettre un X la cellule de la ligne concerné et appuyer sur un bouton), la ligne de données se copie dans une autre feuille (historique) et se supprime de la feuille d'origine (encours).
Pouvez-vous m'aider?
Merci
A voir également:
- Excel copier ligne ds autre feuille pui suppr
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Partager photos en ligne - Guide
- Formule somme excel ligne - Guide
- Word et excel gratuit - Guide
7 réponses
Bonjour
Sans fichier, c'est une peu complexe, mais voici une macro qui peu t'aider mais qu'il faut adapter
je pars du principe que la Croix se trouve En colonne A
macro faite à main levée, non testée (mais ca à l'air ok)
Sans fichier, c'est une peu complexe, mais voici une macro qui peu t'aider mais qu'il faut adapter
je pars du principe que la Croix se trouve En colonne A
sub macro_delete()
activesheet.range("A1").autofilter field:=1, criteria:="x"
Range("A2:A" & range("A65536").end(xlup).row).cells.specialcells(xlcelltypevisible).entirerow.select
selection.copy destination:=sheets("Feuil2").range("A" & sheets("Feuil2").range("A65536").end(xlup).row)
selection.delete
activesheet.range("A1").autofilter
end sub
macro faite à main levée, non testée (mais ca à l'air ok)
re:
voici le fichier avec la macro, une petite erreur sur Criteria : Criteria1
https://www.cjoint.com/?krjxxixqaP
voici le fichier avec la macro, une petite erreur sur Criteria : Criteria1
https://www.cjoint.com/?krjxxixqaP
Merci Enormément Wilfried!!!
Juste un dernier truc, peux tu me dire comment faire pour m'en servir d'en plusieurs fichiers, car je ne connais pas du tout le fonctionnement des macros.
Et est ce qu'il est possible de faire l'historique (enregistrement des lignes supprimées) dans un autre classeur? si oui, comment.
En tout cas, merci beaucoup de ton aide!
Juste un dernier truc, peux tu me dire comment faire pour m'en servir d'en plusieurs fichiers, car je ne connais pas du tout le fonctionnement des macros.
Et est ce qu'il est possible de faire l'historique (enregistrement des lignes supprimées) dans un autre classeur? si oui, comment.
En tout cas, merci beaucoup de ton aide!
re:
oui c'est faisable, mais les renseignement donnés sont actuellement assez vagues, il maque la structure des classeurs d'origine (si c'est la meme), la structure du classeur historique (Nom, Chemin, Feuilles...............
oui c'est faisable, mais les renseignement donnés sont actuellement assez vagues, il maque la structure des classeurs d'origine (si c'est la meme), la structure du classeur historique (Nom, Chemin, Feuilles...............
voici le chemin, j'ai mis les 2 fichiers zippés pour que tu ais la présentation des feuilles:
http://www.cijoint.fr/cjlink.php?file=cj200810/cijNwsM4od.zip
les 2 fichiers seront dans le même dossier (Sous-traitance) dont voici le chemin:
\\murielle\Partage Prod\Sous-Traitance
Si ce n'est pas le cas, peux tu les enregistrer au format Excel 97-2003.
Encore merci à toi
http://www.cijoint.fr/cjlink.php?file=cj200810/cijNwsM4od.zip
les 2 fichiers seront dans le même dossier (Sous-traitance) dont voici le chemin:
\\murielle\Partage Prod\Sous-Traitance
Si ce n'est pas le cas, peux tu les enregistrer au format Excel 97-2003.
Encore merci à toi
En fait, je pense que ça sert à rien de compliquer le fichier en créant un enregistrement sur un autre classeur.
Autant garder cette macro qui copie les lignes cochées vers une autre feuille.
Cependant, je souhaiterai que lorsque je click sur le bouton cela fasse la même opération pour 2 autres feuilles vers 2 autres destinations (feuilA vers Histo feuilA, par exemple) peux-tu m'aider?
Aprés, ça sera nickel.
J'ai testé ça marche superbien, sauf si je clique sur le bouton et qu'il n'y a pas de lignes de cochées, ça me copie quand même la 1ère ligne même si elle n'est pas coché.
Merci de ton aide
Autant garder cette macro qui copie les lignes cochées vers une autre feuille.
Cependant, je souhaiterai que lorsque je click sur le bouton cela fasse la même opération pour 2 autres feuilles vers 2 autres destinations (feuilA vers Histo feuilA, par exemple) peux-tu m'aider?
Aprés, ça sera nickel.
J'ai testé ça marche superbien, sauf si je clique sur le bouton et qu'il n'y a pas de lignes de cochées, ça me copie quand même la 1ère ligne même si elle n'est pas coché.
Merci de ton aide
re:
voila la macro
en gras souligné : le nom de la feuille hitorique devant recuperer les archive : HISTOFeuilA, HISTOFeuilB......
voila la macro
Sub Bouton1_QuandClic()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
Select Case ws.Name
Case "FeuilA", "FeuilB", "FeuilC" ' Nom des feuilles à traiter
ws.Activate
ActiveSheet.Range("A1").AutoFilter field:=1, Criteria1:="x"
If Range("A65536").End(xlUp).Row > 1 Then
Range("A2:A" & Range("A65536").End(xlUp).Row).Cells.SpecialCells(xlCellTypeVisible).EntireRow.Select
Selection.Copy Destination:=Sheets("Histo" & ActiveSheet.Name).Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1)
Selection.Delete
End If
ActiveSheet.Range("A1").AutoFilter
Case Else
End Select
Next
End Sub
en gras souligné : le nom de la feuille hitorique devant recuperer les archive : HISTOFeuilA, HISTOFeuilB......
Merci Wilfried,
je viens de tester la macro, mais malheureusement ça ne fonctionne, car j'ai dû mal renseigner des trucs dans ce que tu m'as envoyé.
De plus, je sais pas si c'est important, mais bon, mes données commencet à partir de la ligne 5 (d'où le A5) et le titre des colonnes et en ligne 4 pour chaque feuille, je ne sais pas si cela change quelque chose, mais te l'indique au cas où.
Merci de ton aide
je viens de tester la macro, mais malheureusement ça ne fonctionne, car j'ai dû mal renseigner des trucs dans ce que tu m'as envoyé.
De plus, je sais pas si c'est important, mais bon, mes données commencet à partir de la ligne 5 (d'où le A5) et le titre des colonnes et en ligne 4 pour chaque feuille, je ne sais pas si cela change quelque chose, mais te l'indique au cas où.
Sub Bouton1_QuandClic()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
Select Case ws.Name
Case "Commandes", "Réceptions", "Façon" ' Nom des feuilles à traiter
ws.Activate
ActiveSheet.Range("A4").AutoFilter field:=1, Criteria1:="x"
If Range("A65536").End(xlUp).Row > 1 Then
Range("A5:A" & Range("A65536").End(xlUp).Row).Cells.SpecialCells(xlCellTypeVisible).EntireRow.Select
Selection.Copy Destination:=Sheets("Histo_Commandes", "Histo_Réceptions", "Histo_Façon" & ActiveSheet.Name).Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1)
Selection.Delete
End If
ActiveSheet.Range("A4").AutoFilter
Case Else
End Select
Next
End Sub
Merci de ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re:
activesheet.name comprend le nom de la feuille en cours de traitement, donc
soit : Commandes, Réceptions, Façon, chacune de ces feuilles va etre traitée l'une apres l'autre
donc pour la premiere on concatene "Histo_" & Commandes, ensuite "Histo_" & Réceptions et enfin "Histo_" avec Façon
Selection.Copy Destination:=Sheets("Histo_" & ActiveSheet.Name).Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1)
activesheet.name comprend le nom de la feuille en cours de traitement, donc
soit : Commandes, Réceptions, Façon, chacune de ces feuilles va etre traitée l'une apres l'autre
donc pour la premiere on concatene "Histo_" & Commandes, ensuite "Histo_" & Réceptions et enfin "Histo_" avec Façon
Oki, mais du coup, dois-je laisser comme ça:
Selection.Copy Destination:=Sheets("Histo_" & ActiveSheet.Name).Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
ou comme ça:
Selection.Copy Destination:=Sheets("Histo_" & "Commandes").Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
J'ai essayé les 2 cas, et une erreur me renvoit à cette ligne.
Et à quoi sert le .Range("A" & Sheets("Feuil2")?
Merci
Selection.Copy Destination:=Sheets("Histo_" & ActiveSheet.Name).Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
ou comme ça:
Selection.Copy Destination:=Sheets("Histo_" & "Commandes").Range("A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
J'ai essayé les 2 cas, et une erreur me renvoit à cette ligne.
Et à quoi sert le .Range("A" & Sheets("Feuil2")?
Merci
re:
Désolé, étant au boulot, je ne suis pas à 100% dans la macro, j'e crois avoir trouvé l'erreur : Feuil2
Sheets("Histo_" & activesheet.name) ' Defini la feuille de reception
.range("A" & sheets("Histo_" & activesheet.name).range("A65536").end(xlup).row + 1) ' Defini l'emplacement de copie
en gras, Range("A65536").end(xlup).row donne la N° de la derniere ligne utilisée, en ajoutant 1 on a la prochaine ligne vierge (donc on part de la derniere (A65536) on, cherche la permiere valeur (.end) en remontant (Xlup)
je ne sais pas si je suis clair, dur dur d'expliquer
Désolé, étant au boulot, je ne suis pas à 100% dans la macro, j'e crois avoir trouvé l'erreur : Feuil2
Selection.Copy Destination:=Sheets("Histo_" & ActiveSheet.Name).Range("A" & Sheets("Histo_" & ActiveSheet.Name).Range("A65536").End(xlUp).Row + 1
Sheets("Histo_" & activesheet.name) ' Defini la feuille de reception
.range("A" & sheets("Histo_" & activesheet.name).range("A65536").end(xlup).row + 1) ' Defini l'emplacement de copie
en gras, Range("A65536").end(xlup).row donne la N° de la derniere ligne utilisée, en ajoutant 1 on a la prochaine ligne vierge (donc on part de la derniere (A65536) on, cherche la permiere valeur (.end) en remontant (Xlup)
je ne sais pas si je suis clair, dur dur d'expliquer
J'ai testé, mais ça me met "erreur".
Je joins le fichier sur lequel je souhaite faire cette macro.
Il y a 3 feuilles, et une fois qu'il y a un X dans la colonne "Soldée" pour chaque feuille, je souhaite que (automatiquement ou en créant un bouton à cliquer) la ligne entière où se trouve ce X, s'efface de ce classeur (ou feuille) et se copie dans un autre classeur Historique avec feuille Histo commande, histo réception, histo façon (ou dans le même classeur dans feuilles historique commande, historique réception, historique façon)
Merci de ton aide
Voici un aperçu de ce que j'ai en première ligne sur la 1ére feuille et donc ce que je dois remplir
Soldée N° Commande Tisseur Article Date de commande Prix Qté Comm Qté Livrée Reste à Livrer
</code>