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 d'un classeur à un autre en vba ne fonctionne plus [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Par défaut Copier-coller d'un classeur à un autre en vba ne fonctionne plus
    Bonjour
    Par une macro, je copie la valeur une plage de cellules fusionnées (A1:C2) d'un classeur ouvert nommé par ex. "A.xlsm" vers une plage identique (fusionnée également) d'un second classeur ouvert dont je ne connais pas le nom par avance (il change à chaque sélection).
    Le but est donc de chercher quels sont les classeurs ouverts et de coller la valeur copiée de A.xlsm vers ce second classeur ouvert.
    Jusqu'à aujourd'hui la macro fonctionnait, mais maintenant elle plante dès qu'il s'agit de coller (il semble qu'elle ait perdu la valeur copiée lors du changement de classeur)
    Je reçois le message : "erreur d'exécution 1004, La méthode PasteSpecial de la classe Range a échoué"
    Quelqu'un peut-il me sortir de ce mauvais pas ? Merci d'avance

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Peux-tu mettre le code de ta macro sur le fil que l'on puisse voir

    entre balise code [#]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Par défaut Code VBA correspondant
    Bonjour Igloobel
    Voici le code complet des deux macros concernées (dans le même module).
    Le fichier à partir duquel la macro est lancée se nomme "liste_ia.xlsm"
    Merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub ingaff_1()
        Range("a1:c2").Select
        Selection.Copy
        coping
    End Sub
    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
     
    Sub coping()
    Application.CutCopyMode = True
    Dim wb As Workbook
    For Each wb In Workbooks
        wb.Activate
        If wb.Name = "PERSONAL.XLB" Then GoTo suite
        If wb.Name = "liste_ia.xlsm" Then GoTo suite
    suite:
    Next wb
    ActiveWorkbook.Unprotect Password:="Toto"
    'Excel.Workbooks(Fichier).Worksheets("Formulaire").Activate
     
    Dim DernLigne As Long
    DernLigne = Range("F" & Rows.Count).End(xlUp).Row
    If DernLigne = 219 Then GoTo cas1 Else GoTo cas2
    cas1:
    Range("G57:I58").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.Close savechanges:=True
    GoTo fincas
    cas2:
    Range("G59:I60").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.Close savechanges:=True
    fincas:
     
    End Sub

  4. #4
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Par défaut
    Citation Envoyé par Igloobel Voir le message
    Bonjour,

    Peux-tu mettre le code de ta macro sur le fil que l'on puisse voir

    entre balise code [#]
    Bonjour Igloobel
    Voici le code complet des deux macros concernées (dans le même module).
    Le fichier à partir duquel la macro est lancée se nomme "liste_ia.xlsm"
    Merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub ingaff_1()
        Range("a1:c2").Select
        Selection.Copy
        coping
    End Sub
    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
     
    Sub coping()
    Application.CutCopyMode = True
    Dim wb As Workbook
    For Each wb In Workbooks
        wb.Activate
        If wb.Name = "PERSONAL.XLB" Then GoTo suite
        If wb.Name = "liste_ia.xlsm" Then GoTo suite
    suite:
    Next wb
    ActiveWorkbook.Unprotect Password:="Toto"
    'Excel.Workbooks(Fichier).Worksheets("Formulaire").Activate
     
    Dim DernLigne As Long
    DernLigne = Range("F" & Rows.Count).End(xlUp).Row
    If DernLigne = 219 Then GoTo cas1 Else GoTo cas2
    cas1:
    Range("G57:I58").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.Close savechanges:=True
    GoTo fincas
    cas2:
    Range("G59:I60").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveWindow.Close savechanges:=True
    fincas:
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Probleme de copier/coller d'un classeur à un autre
    Par mokedem dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/07/2017, 23h40
  2. Copier coller d'un classeur à l'autre vba
    Par ielharras dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/05/2016, 13h50
  3. Copier/Coller d'un classeur à un autre
    Par sebfch dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/04/2016, 09h25
  4. Copier - Coller d'un classeur à un autre - Erreur 438
    Par A_blz dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/06/2014, 19h20
  5. [XL-2010] Aide VBA pour copier coller d'un classeur à un autre
    Par jesslab dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/11/2013, 16h52

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