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

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
le problème se situe uniquement sur la dernière ligne du code - il ne veut pas fermer le fichier 'fichier'
Erreur d'execution 9 : L'indicide n'appartient pas à la selection

A savoir que mon code est dans un module avec comme code
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
Je pense que c tout simple mais je bloque par manque d'expérience

Est-ce que qq1 peux m'aider ?

Merci par avance

Liop