archivage d'une ligne dans un tableau récapitulatif

smirk

XLDnaute Nouveau
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

  • Classeur1.xlsx
    13.4 KB · Affichages: 164
  • Classeur1.xlsx
    13.4 KB · Affichages: 173
  • Classeur1.xlsx
    13.4 KB · Affichages: 161

job75

XLDnaute Barbatruc
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

  • Classeur(1).xlsm
    21.2 KB · Affichages: 205
  • Classeur(1).xlsm
    21.2 KB · Affichages: 199
  • Classeur(1).xlsm
    21.2 KB · Affichages: 208
Dernière édition:

job75

XLDnaute Barbatruc
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

  • Classeur(2).xls
    43 KB · Affichages: 152
  • Classeur(2).xls
    43 KB · Affichages: 162
  • Classeur(2).xls
    43 KB · Affichages: 165
  • Classeur(2).xlsm
    22 KB · Affichages: 135
  • Classeur(2).xlsm
    22 KB · Affichages: 158
  • Classeur(2).xlsm
    22 KB · Affichages: 180
Dernière édition:

smirk

XLDnaute Nouveau
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
 

job75

XLDnaute Barbatruc
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+
 

smirk

XLDnaute Nouveau
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 : )
 

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 910
Membres
104 303
dernier inscrit
Patdec