IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

copier-coller qui ne fonctionne pas


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 241
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 241
    Points : 213
    Points
    213
    Par défaut copier-coller qui ne fonctionne pas
    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

  2. #2
    Membre éclairé Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Points : 879
    Points
    879
    Par défaut
    bonjour facteur,

    si tu transfert seulement les valeurs et non les formats, il n'est pas nécessaire de fait un copier coller. voici un exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Transfert_HermèsArrivée()
    Dim Fp As Object, Fa As Object, derLignFp As Integer, derLignFa As Integer
    Set Fp = Workbooks("echanges 2010.xls").Worksheets("donnees hermes")
    Set Fa = Workbooks("hermès arrivée").Worksheets("Feuil1")
    derLignFp = Fa.Range("c65536").End(xlUp).Row + 1
    derLignFa = Fa.Range("c65536").End(xlUp).Row
    Fp.Range("C" & derLignFp & ":Y" & derLignFp + derLignFa - 6).Value = Fa.Range("A6:W" & derLignFa).Value
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Transfert_HermèsDépart()
    Dim Fp As Object, Fa As Object, derLignFp As Integer, derLignFa As Integer
    Set Fp = Workbooks("echanges 2010.xls").Worksheets("donnees hermes")
    Set Fa = Workbooks("hermès départ").Worksheets("Feuil1")
    derLignFp = Fa.Range("c65536").End(xlUp).Row + 1
    derLignFa = Fa.Range("c65536").End(xlUp).Row
    Fp.Range("C" & derLignFp & ":Y" & derLignFp + derLignFa - 6).Value = Fa.Range("A6:W" & derLignFa).Value
    End Sub

  3. #3
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 241
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 241
    Points : 213
    Points
    213
    Par défaut
    Bonjour sabzzz,
    Woua, n'aurais tu pas quelque chose de plus simple...
    car là, je suis un peu , voir beaucoup perdu avec ton programme...

Discussions similaires

  1. Copier Coller qui ne fonctionne pas
    Par maitrebanjo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/05/2015, 12h22
  2. Copier coller qui ne marche pas d'un classeur à un autre
    Par longuy31 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/06/2010, 12h02
  3. copier coller qui ne fonctionne pas
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/12/2009, 10h36
  4. [E-07] Copier/Coller qui ne marche pas
    Par bdx-77 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/12/2008, 07h00
  5. Coller qui ne fonctionne pas
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/12/2008, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo