Bonjour à tous,

Chaque jour, je travaille sur deux fichiers Excel intitulés « hermès arrivée » et « hermès départ ».
Mon travaille consiste à apporter des modifications à ces deux fichiers Excel et ensuite de les transférer sur un autre fichier intitulé « échange 2010 ».
Ce travaille se fait par étape :
Je commence par le premier fichier, par exemple « hermès arrivée », j’apporte les modifications et ensuite je le transfert vers le fichier « échange 2010 ».
Ensuite je m’occupe du second fichier « hermès départ » et comme pour le premier, j’apporte les modifications et ensuite je le transfert sur le fichier « échange 2010 ».

Je précis que le fichier « échange 2010 » est situé sur un autre fichier Excel et que le transfert se fait à l’aide d’une macro intitulé « ECHANGE ».
Chaque jour, ces 400 lignes qui viennent s’ajouter au fichier « échange 2010 »
Pour des raisons logistiques, le transfert des fichiers « hermès arrivée » et « hermès départ » sur le fichier « échange 2010 » ne peut se faire que l’un après l’autre et jamais en même temps.
Mon soucis est que l’opération copier-coller des fichiers « hermès arrivée » et « hermès départ » sur le tableau « échange 2010 » ne se fait pas tout le temps. Soit c’est le premier fichier Excel « hermès » qui ne se transfert pas ou bien c’est le deuxième fichier « hermès » qui ne se transfert pas.
Mais je n’ai jamais eu le problème ou c’est les deux fichiers « hermès » qui ne se copient pas sur le fichier « échange 2010 ».

Je vous joins ci-dessous la macro qui permet ce copier-coller.
Pour une meilleure visibilité, j’ai allégé la macro en ne laissant que l’essentiel et surtout la partie qui m’embête (la partie copier-coller) que j'ai mis en rouge
Pourriez-vous me dire d’où vient le problème…
Merci d’avance

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
54
55
56
57
58
59
60
61
62
63
64
65
Sub echange()

   'Les variables
Dim c As Long ' c correspond a la derniere ligne de la colonne C du tableau hermes    
Dim Quai As String
Dim a As Long 'a coorespond à la dernière ligne de la colonne A du tableau "echange 2010"                               
                   
                   
                   
'SUR LE FICHIER HERMES DEPART ou ARRIVEE    
    
 Quai = Cells(1, 2).Value ' cellule de la premiere ligne, seconde colonne soit B1    
c = Range("c" & Range("c65536").End(xlUp).Row).Row ' formule pour recuperer le N° de la dernière ligne de la colonne C    
Application.ScreenUpdating = False 'la mise à jour de l'écran est désactivée
   
    Cells.Select 'selectionner tout le tableau
    On Error Resume Next 'gestion des erreurs qui permet de continuer le programme
    'meme s'il y a une erreur : dans ce ca precis les les filtres peuvent etre tous affiches    ActiveSheet.ShowAllData ' afficher tous les filtres
    On Error GoTo 0 ' interruption de la gestion des erreurs
    
    Range("A6:W" & c - 1).Select ' selection du tableau allant de la cellule A6 a la derniere cellule de la colonne "CP TOTAL"    Selection.Copy
    
    
    
    'SELECTIONNER / OUVRIR LE FICHIER "ECHANGE 2010"    
On Error GoTo GestionErreurFichier
Workbooks("echanges 2010.xls").Worksheets("donnees hermes").Activate
On Error GoTo 0
    
                                    
                                    
                                    
                                   [COLOR="seagreen"] 'SUR LE FICHIER "ECHANGE 2010"[/COLOR]    
    
    
Cells.Select 'selectionner le tableau echange
On Error Resume Next 'gestion des erreurs qui permet de continuer le programme
'meme s'il y a une erreur : dans ce ca precis les les filtres peuvent etre tous affichesActiveSheet.ShowAllData ' afficher tous les filtres
On Error GoTo 0 ' interruption de la gestion des erreurs
  
  'Insertion du fichier hermes dans le tableau echange

Range("C2").Select
If Range("C3").Value <> "" Then Range("C2").End(xlDown).Select
'Si la cellule C3 n'est pas vide, on selectionne la derniere cellule non vide de la colonne C.
'Si C3 est libre, la derniere cellule non vide est D2. Il n'est pas necesaire de se deplacer.ActiveCell.Offset(1, 0).Select
'On selectionne la cellule situee une ligne en dessous de la cellule active.
'Enfait, on se positionne sur la premiere ligne vide de la feuille "echange 2010". 

'Copier-coller du fichier « hermes » sur le fichier « échange 2010 »
'On copie le tableau selectionner a partir de la premiere ligne  vide de la feuille "echange 2010
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False 'instrcution qui permet d'effacer la marque de selection autor de la plage copiee    
    
Application.ScreenUpdating = True 'rétablit la mise à jour de l'écran
ActiveWorkbook.Save

Exit Sub

GestionErreurFichier:
    Workbooks.Open Filename:="P:\Commun\Transport Securité\Docs Madjid\echanges 2010.xls"
    Resume
                
End Sub