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 :

Erreur 1004 : la methode Paste de la classe Worksheet a échoué [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Lille
    Inscrit en
    Juin 2013
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lille
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 127
    Points : 48
    Points
    48
    Par défaut Erreur 1004 : la methode Paste de la classe Worksheet a échoué
    Bonjour à tous,
    je suis novice sur Excel VBA.
    Actuellement, je cherche à copier sur une nouvelle feuille qui s'appelle "table AS_IS" des élements d'une autre feuille dans la range ("A1:R1").

    Ma macro est associé à un bouton. Du coup, j'ai prévu le cas ou l'utilisateur appuierais deux fois sur le bouton en ajoutant à la macro une fonction FeuilleExiste que j'ai récupérer sur internet.

    Le souci c'est que j'ai une erreur 1004: la methode Paste de la classe Worksheets ne marche pas. En gros je perds ma copie au moment de coller.

    Pourrier vous m'aider?
    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 Table_AS_IS()
    '
    ' Table_AS_IS Macro
    ' Création de la table AS_IS
    '
     
    '
        'Selection des colonnes pour la table AS_IS
        Range("A1:R1").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        'Si la feuille table AS_IS n'existe pas, elle est crée et nommée "table AS_IS"
        If Not (FeuilleExiste("table AS_IS")) Then
            Sheets.Add
            ActiveSheet.Name = "table AS_IS"
        End If
        Worksheets("table AS_IS").Select
        'Sinon(si elle existe déjà),on efface tous ce qui est dans les colonnes A jusqu\'à R'
        Range("A:R").Delete
        Range("A1").Select
        ActiveSheet.Paste
    End Sub
     
    Function FeuilleExiste(Nom As String) As Boolean
        On Error GoTo Err_FeuilleExiste
        FeuilleExiste = False
        FeuilleExiste = Not Worksheets(Nom) Is Nothing
    Err_FeuilleExiste:
    End Function

  2. #2
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Bonjour,

    Essaie de faire ce que tu as codé, à la main, tu verras que ça ne fonctionne pas non plus.
    Lorsque tu supprimes des colonnes (ou autre), Excel perd ce qu'il a dans le presse papier => plus rien à coller au moment du Paste => d'où l'erreur 1004.
    Fais plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TaFeuilleCible.Range("A.R").Delete
    TaZoneAcopier.Copy Destination:=TaFeuilleCible.Range("A1")
    Cordialement.

  3. #3
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut erreur 1004:la méthode paste a échoué
    bonjour,

    Tu ne perds rien puisque tu ne copie rien (delete précédent).

    Sinon voici le code à adapter à ton besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub copiecoller()
        'Feuil1.Range("A1:R1").Delete
        Feuil1.Range("A1").Copy
        Sheets("Feuil2").Select
        ActiveSheet.paste
        Application.CutCopyMode = False
    End Sub
    Penses à utiliser l'enregistreur de macro pour ce genre de souci.

    cordialement.

  4. #4
    Membre du Club
    Homme Profil pro
    Lille
    Inscrit en
    Juin 2013
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lille
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 127
    Points : 48
    Points
    48
    Par défaut
    Merci pour la réponse, je viens de faire des modifications comme vous me l'avez proposé et ça marche.

  5. #5
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut la methode paste a échoué
    bonjour issoram?

    Je ne comprends pas ta syntaxe simplificatrice. Peux tu expliquée?

    Destination : C'est quoi puisque l'on met immédiatement la feuille cible après ?

    Cordialement.

  6. #6
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    bonjour nibledispo,
    Destination : C'est quoi puisque l'on met immédiatement la feuille cible après ?
    regarde l'aide dans VBA, touche à l'entrée "copy". tu auras la réponse.
    remarque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaZoneAcopier.Copy Destination:=TaFeuilleCible.Range("A1")
    peu aussi s'écrire directement sans destination:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaZoneAcopier.Copy TaFeuilleCible.Range("A1")

  7. #7
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut erreur 1004:la méthode paste a échoué
    Bonjour rvtoulon,

    Merci pour l'info. Il est vrai que j'ai beaucoup de difficultés avec la recherche F1.
    Il faudra que je m'y fasse.
    la syntaxe de la copie est plus simple à retenir que celle donnait par l'enregistreur de macro que j'utilisais jusqu'à présent.

    cordialement.

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

Discussions similaires

  1. Erreur 1004 : la methode Paste de la classe Worksheet a échoué
    Par jambonland dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/08/2013, 10h29
  2. Erreur 1004 La methode copy de la classe Worksheet a echoué
    Par Bernard67 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/04/2008, 16h39
  3. Réponses: 14
    Dernier message: 19/12/2007, 17h58
  4. La methode paste de la classe worksheet a échoué
    Par jean-paul lepetit dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/09/2007, 17h59
  5. Méthode Paste de la classe Worksheet a échoué
    Par cerberuspau dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/06/2007, 12h13

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