Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

archivage d'une ligne dans un tableau récapitulatif

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

S

smirk

Guest
Bonjour,
je souhaiterais avoir l'aide de quelqu'un parce que là je bloque totalement sur l'archivage d'une ligne et j'ai pourtant longuement cherché sur le forum une solution...

Alors je souhaiterais que la ligne en Feuil1 soit archivée dans mon tableau en Feuil2 de sorte que lorsque je change les données de la feuil1 je puisse à nouveau enregistrer la ligne dans mon tableau de la Feuil2 (cette nouvelle ligne se mettra sous la précédente et ainsi de suite...). J'espère avoir été suffisamment claire^^ lol

Donc si quelqu'un pouvait me dire ce qu'il faut mettre dans la macro pour que cela se réalise simplement je lui en serait plus que reconnaissant ^^

Merci d'avance : )
 

Pièces jointes

Re : archivage d'une ligne dans un tableau récapitulatif

Bonjour smirk, bienvenue sur XLD,

Affecter au bouton cette macro :

Code:
Sub Archiver()
If IsEmpty(Feuil1.Range("B4")) Then MsgBox "Il faut entrer au moins le nom...": Exit Sub
Feuil1.Range("B4:O4").Copy Feuil2.Range("B" & Rows.Count).End(xlUp)(2) 'Feuil1 et Feuil2 sont les CodeNames
'Feuil2.Activate 'facultatif
End Sub

Fichier joint.

Edit : téléchargez d'abord le fichier...

A+
 

Pièces jointes

Dernière édition:
Re : archivage d'une ligne dans un tableau récapitulatif

Re,

Une solution plus élaborée, mais à vous de voir :

Code:
Sub Archiver()
Dim F1 As Worksheet, F2 As Worksheet, SS As Range
Dim lig As Variant, newlig As Long, destination As Range
Set F1 = Feuil1 'CodeName de la feuille
Set F2 = Feuil2 'CodeName de la feuille
Set SS = F1.Range("J4")
If IsEmpty(SS) Then MsgBox "Il faut entrer au moins le numéro de SS...": Exit Sub
lig = Application.Match(SS, F2.Columns("J"), 0)
newlig = F2.Range("J" & Rows.Count).End(xlUp)(2).Row
Set destination = F2.Range("B" & IIf(IsError(lig), newlig, lig))
F1.Range("B4:O4").Copy destination
'Feuil2.Activate 'facultatif
'destination.Resize(, 14).Select 'facultatif
End Sub

Fichier (2) joint.

Edit : pour ceux qui n'ont pas Excel 2007 ou 2010, je joins le fichier .xls.

A+
 

Pièces jointes

Dernière édition:
Re : archivage d'une ligne dans un tableau récapitulatif

Merci beaucoup pour cette réponse rapide : ) mais j'ai un problème, sur le fichier que tu as mis ça marche très bien mais quand j'intègre cette macro à mon logiciel qui contient d'autres feuilles et bien ça ne marche plus, ça me met "il faut entrer dabord le nom" (je sais que la ligne est pleine mais pourtant elle l'est aussi dans le fichier que tu as joint et ça marchait...).
Bref je ne comprend plus ^^
si tu pouvais m'aider...merci
 
Re : archivage d'une ligne dans un tableau récapitulatif

Re,

(...) ça me met "il faut entrer dabord le nom" (...)

Donc vous parlez de la 1ère solution, mais ça sera le même problème pour la 2ème.

Allez dans VBA (Alt+F11) et regardez en haut à gauche les noms des feuilles (avant ceux qui sont entre parenthèses).

Ce sont les CodesNames des feuilles.

Et dans la macro remplacez Feuil1 et Feuil2 par les CodeNames adéquats.

Pourquoi les CodeNames ? Parce qu'ils ne changent pas quand on modifie les noms des feuilles.

A+
 
Re : archivage d'une ligne dans un tableau récapitulatif

merci beaucoup ça marche ! j'arrive à copier la ligne : )
mais j'ai encore un soucis (et de taille...) ça me copie la ligne mais dans la dernière ligne de mon tableau et non sur celle qui se trouve tout en haut ; c'est quand même problématique...
donc si tu as une solution ^^ je suis preneuse : )
 
Re : archivage d'une ligne dans un tableau récapitulatif

Re,

mais j'ai encore un soucis (et de taille...) ça me copie la ligne mais dans la dernière ligne de mon tableau et non sur celle qui se trouve tout en haut (...)

Je suppose qu'il s'agit de la 1ère solution ?

Alors utilisez cette macro :

Code:
Sub Archiver()
If IsEmpty(Feuil1.Range("B4")) Then MsgBox "Il faut entrer au moins le nom...": Exit Sub
Feuil1.Range("B4:O4").Copy
Feuil2.Range("B3:O3").Insert xlDown 'Feuil1 et Feuil2 sont les CodeNames
Application.CutCopyMode = False
'Feuil2.Activate 'facultatif
End Sub

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…