Bonjour,
Je viens vers vous pour demander une petite aide car j'ai essayé plusieurs choses mais sans résultat.
Le code permet via un fichier excel (classeur3.xls):
- d'ouvrir un fichier excel (fichier)
- de copier les valeurs de ce fichier (toutes celles en dessous de la ligne en-tête)
- de coller ces valeurs dans le 1er fichier (classeur3.xls) et ce en dessous de la dernière ligne du tableau
- de fermer le fichier excel (fichier) où ont été copiées les valeurs
le problème se situe uniquement sur la dernière ligne du code - il ne veut pas fermer le fichier 'fichier'
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
47
48
49
50
51
52
53 Sub Impoter_Bordereaux() ' ' Macro1 Macro ' Macro enregistrée le 17/12/2009 par Nicolas Baudry ' Dossier = "C:\Bordereau de visites" Sheets("Recherche").Select Rep = Range("A1") Representant = Range("F2") Jour = Day(Range("D5")) & "-" & Month(Range("D5")) & "-" & Year(Range("D5")) fichier = (Dossier & "\Bordereau de visites_" & Rep & "_" & Jour & ".xls") If fichier = "" Then MsgBox ("Il n'y a de bordereau de visites pour cette date et ce représentant") End If Workbooks.OpenText Filename:=fichier Range("A10").Select ActiveCell.Offset(rowOffset:=0, columnOffset:=10).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Windows("classeur3.xls").Activate Sheets("Bordereau de visites").Select Range("A9").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Select ActiveSheet.Paste Windows(fichier).Close False End Sub
Erreur d'execution 9 : L'indicide n'appartient pas à la selection
A savoir que mon code est dans un module avec comme code
Je pense que c tout simple mais je bloque par manque d'expérience
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 Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _ ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Declare Function GetActiveWindow Lib "user32" () As Long Private Const SW_SHOW = 5 Public Sub OpenFindFile(Optional pFolder As String, Optional pFile As String, Optional pFindIn As String) Call ShellExecute(GetActiveWindow, "find", pFolder, vbNullString, vbNullString, SW_SHOW) If pFile <> "" Then SendKeys pFile, True End If If pFindIn <> "" Then SendKeys "{TAB}" & pFindIn, True End If End Sub
Est-ce que qq1 peux m'aider ?
Merci par avance
Liop
Partager