Ajout ligne d'un fichier à un autre

Nashou

XLDnaute Junior
Bonjour,

J'ai déjà cherché sur le forum pour savoir si je pouvais avoir des réponses à ma demande mais je n'ai pas trouvé.

Je vous explique :

J'ai un fichier Excel 'remplir.xls'

Je rempli dans ce fichier une ligne (sur plusieurs colonnes) et j'ai une macro (pas très jolie jolie : vive le bricolage !!) qui récupère ma ligne et qui l'ajoute à la fin d'un grand tableau dans un autre fichier excel 'archive.xls'

Pour faire ça, j'ai créé une macro qui prend du temps donc pas du tout efficace !

J'ajoute tout à la fin de la feuille excel (dans archive.xls) la ligne et je fais un tri ensuite pour avoir mon tableau mis à jour.

J'aimerai alléger cette macro et je voulais savoir si vous n'auriez pas un code plus efficace ?
Du style : lire le tableau et ajouter la ligne directement à la fin du tableau.

Je vous mets ma macro :

Sub archive()

Workbooks.Open Filename:= _
'C:\\Mes documents\\archive.xls
Application.Goto Reference:='fin'
Range('A65526:A65535').Select
Selection.NumberFormat = 'dd/mm/yy'
Range('A65526').Select
Windows('remplir.xls').Activate
Application.Goto Reference:='R16C14'
ActiveWindow.SmallScroll ToRight:=8
Range('N16:U25').Select
Selection.Copy
Windows('archive.xls').Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.Goto Reference:='R1C1'
Cells.Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range('C2'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Application.Goto Reference:='R1C1'
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.Goto Reference:='R1C1'
End Sub

voilà :)
 

Nashou

XLDnaute Junior
Les tableaux sont trop gros et les données sont professionnelles.
Je suis désolé.
Mais ma demande n'est pas dure à comprendre.

Imagine sur le fichier Excel remplir.xls
Ligne 1
Colonne A : nom
Colonne B : prénom
Colonne C : n° de telephone
Colonne D : Adresse

Tu as donc la ligne 1 à remplir avec 4 données à mettre.
C'est tout !

Après, je souhaite avoir une macro performante qui récupère ces 4 données et qui les ajoute dans le fichier archive.xls à la suite.
En fait, le fichier archive.xls se complete tous les jours avec de nouvelles références de personnes.
Je souhaite que la macro lise les lignes dans archive.xls et qu'elle ajoute les nouvelles références (saisies dans remplir.xls) des personnes à la suite des autres.

@+

Message édité par: Nashou, à: 01/08/2005 10:40
 

MichelXld

XLDnaute Barbatruc
bonjoue Nashou , bonjour Bebere

tu péux adapter cette macro


Code:
Sub transfetDonnees()
Dim Wb As Workbook
Dim i As Byte
Dim j As Integer

Application.ScreenUpdating = False
'ouvre le classeur 'archive'
Set Wb = Workbooks.Open('C:\\archive.xls')

'determine la premiere ligne vide dans la 1ere feuille du classeur 'archive'
j = Wb.Sheets(1).Range('A65536').End(xlUp).Row + 1

'transfet des données saisies dans la plage A1:D1 du classeur contenant cette
'macro , vers le classeur 'Archive'
For i = 1 To 4
Wb.Sheets(1).Cells(j, i) = ThisWorkbook.Sheets(1).Cells(1, i)
Next i

'referme le classeur 'archive' en sauvegardant les modifications
Wb.Close True
Application.ScreenUpdating = True
End Sub


bonne soiree
MichelXld
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 990
Membres
103 420
dernier inscrit
eric.wallet46