Bonjour
Je fais des extractions excel d'un logiciel de l'éducation nationale.
Avec un autre classeur, je souhaite synthétiser les données de cette extraction par l'intermédiaire de TCD et autres requêtes.
Mon problème est que lors d'une nouvelle extraction, et donc "écrasement" de mon fichier de base de donnée, le deuxième classeur ne reconnait plus sa source ! Il n'aime pas se faire remplacer la première ligne !
Après pas mal de temps, à lire les aides ou à fréquenter d'autres forums, j'en suis venu à vouloir passer par du VBE qui ouvrirait mon extraction, copierait à partir de la 2° ligne, ouvrirait ma base de données, collerait les données, et fermerait les deux classeurs ! ouf !
J'y arrive presque(enfin, je crois), mais j'ai encore quelques petits problèmes.
La première fois, cela marche bien (sauf pour la fermeture des fichiers!)
La deuxième fois, il bloque sur le collage des données(je pense que c'est parce que le fichier n'est pas enregistré et/ou fermé !)
C'est la ligne "activesheet.paste" !
Voici ma macro : (j'avoue qu'il y a pas mal de vieilles lignes que j'ai essayé !)
J'espère ne pas avoir été trop compliqué !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 Sub MaJExBadeDo() ' ' MaJExBadeDo Macro ' Macro enregistrée le 09/12/2009 par secretariat2 ' Dim source As String Dim base As String source = "C:\extract.xls" base = "C:\badedo.xls" ' ouvrir l'extraction SCONET Workbooks.Open Filename:=source ' rendre Excel visible ' objExcel.Visible = False ' Copier de la ligne 2 à 2500 Rows("2:2500").Select Selection.Copy ' ouvrir la base de données Workbooks.Open Filename:=base ' rendre Excel visible ' objExcel.Visible = True ' Coller les 2500 lignes dans la base Rows("2:2500").Select ActiveSheet.Paste ' Workbooks("badedo.xls").Close SaveChanges:=True ' Fermer les fichiers Workbooks.Close ' Workbooks.Close Filename:=source ' Workbooks("extract.xls").Close SaveChanges:=True ' Workbooks("badedo.xls").Close SaveChanges:=True ' fermer les documents Excel ' objExcel.Quit ' libérer la mémoire Set objExcel = Nothing End Sub
Merci
Partager