Bonjour à tous,
Je suis en train de bricoler une macro (je dis bricoler car ca fait presque 2 ans que je n'ai pas fait une macro excel, alors en ce moment Google est mon ami) qui a pour but de récupérer des emails contenu d'un fichier A et de les coller dans une feuille d'un fichier B (celui qui lance la macro) puis après faire un traitement avec ces infos.
par de restriction particulière, le fichier A contient une liste d'emails présente dans la première colonne de la première feuille. Et cela doit être copier dans la première colonne de la feuille nommé "Tools" du fichier B. Dans tous les cas je ne sait pas combien d'Emails sont traités, ca peut être 25 comme 3500.
J'ai donc fait une procédure lancé par un bouton sur ma feuille "Tools"
problèmes :
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
45
46 Sub MiseAJourEmail() Dim xlApp As New Excel.Application Dim xlBookDist As New Excel.Workbook Dim xlBookLocal As Excel.Workbook Dim xlSheetDist As New Excel.Worksheet Dim xlSheetLocal As Excel.Worksheet Dim fichier As Variant 'conteneur du chemin d'accès au fichier cible Dim taille As Integer 'recherche du fichier cible fichier = Application.GetOpenFilename("Classeurs Excel,*.xls") If fichier = False Then Exit Sub 'Instanciation du fichier cible Set xlBookDist = xlApp.Workbooks.Open(fichier) ' on match l'instance d'Excel ouverte avec le fichier de blacklist avec une variable Set xlSheetDist = xlBookDist.Worksheets(1) ' on match la première feuille du tableau avec une variable Set xlBookLocal = ThisWorkbook Set xlSheetLocal = ThisWorkbook.Worksheets("Tools") taille = xlSheetDist.Cells.SpecialCells(xlCellTypeLastCell).Row 'Nettoyage des informations contenues dans la feuille "Tools" xlSheetLocal.Columns.Clear 'copie des infos xlSheetDist.Range("A1", "A" & taille).Copy With xlSheetLocal .Range("A1").PasteSpecial Paste:=xlPasteValues End With Application.CutCopyMode = False 'process Dim nb As Integer nb = 0 For Each ligne In xlSheetLocal.Range("A1", "A" & taille) nb = nb + 1 Next 'infos MsgBox (nb) 'fermeture du fichier xls cible xlBookDist.Close xlApp.Quit End Sub
- à chaque fois que je la lance, lorsque je fais l'opération xlBookDist.Close j'ai un message du type "le presse papier une grande quantité d'information" bla bla bla OUI/NON/annuler. Très embêttant.
- lors de la copie des informations, je n'arrive pas à faire un truc du genre :
Mais je ne sais pas du tout pourquoi, je veux juste copier une colonne , d'un fichier dans un autre ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 'copie des infos xlSheetDist.Range("A1", "A" & taille).Copy Destination:=xlSheetLocal.Range("A1", "A" & taille)
à j'oubliais, j'ai essayer avec Application.DisplayAlerts = False, idem.
n'hésitez pas à modifier le code, je suis pas un super développeur Excel, loin de là.
help help
Partager