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 d'exécution 1004 : Erreur définie par l'application ou par l'objet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2014
    Messages : 46
    Par défaut Erreur d'exécution 1004 : Erreur définie par l'application ou par l'objet
    Bonjour,

    A partir de l'enregistreur de macro j'ai le code suivant :
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
     
    Sub Macro1()
     
     
        Sheets("Partenaires sortie").Select
        Range("EC181:EF200").Select
        Selection.Copy
        Sheets("ARCACHON").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BISCARROSSE D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BISCARROSSE S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BORDEAUX LAC ETANGS D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BORDEAUX LAC ETANGS S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BORDEAUX LAC JALLE D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BORDEAUX LAC JALLE S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CAMEYRAC D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CAMEYRAC S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CASSY LANTON D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CASSY LANTON S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CASTELJALOUX D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CASTELJALOUX S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("GUJAN MESTRAS D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("GUJAN MESTRAS S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LACANAU COUPE DES MANAGERS").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LACANAU").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LACANAU LE MEJANNAIS D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LACANAU LE MEJANNAIS S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LANGON D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LANGON S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LE PIAN MEDOC CHATEAUX D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LE PIAN MEDOC CHATEAUX S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LE PIAN MEDOC VIGNES D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LE PIAN MEDOC VIGNES S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("MARGAUX D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("MARGAUX S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("MONT DE MARSAN D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("MONT DE MARSAN S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("PESSAC D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("PESSAC S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("SAINT EMILION D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("SAINT EMILION S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("TEYNAC").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("VILLENAVE D'ORNON D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("VILLENAVE D'ORNON S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("Partenaires sortie").Select
        Application.CutCopyMode = False
     
     
    End Sub
    Cela me permet de copier les cellules EC181:EF200 qui sont dans l'onglet "Partenaires sortie" dans les différents onglets.

    Si je copie ce code dans l'onglet "Partenaires sortie" et que je l'exécute à partir d'un bouton auquel j'affecte une macro, j'ai un message d'erreur (une croix avec 400), si j'utilise la commande débogage j'ai le message "Erreur d'exécution 1004 : Erreur définie par l'application ou par l'objet".
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
     
    Sub Copier()
     
    Application.EnableEvents = False
    Application.ScreenUpdating = False
     
    Unprotect ("C#D&i78a9")
     
        Range("EC181:EF200").Select
        Selection.Copy
        Sheets("ARCACHON").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BISCARROSSE D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BISCARROSSE S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BORDEAUX LAC ETANGS D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BORDEAUX LAC ETANGS S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BORDEAUX LAC JALLE D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("BORDEAUX LAC JALLE S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CAMEYRAC D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CAMEYRAC S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CASSY LANTON D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CASSY LANTON S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CASTELJALOUX D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("CASTELJALOUX S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("GUJAN MESTRAS D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("GUJAN MESTRAS S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LACANAU COUPE DES MANAGERS").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LACANAU").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LACANAU LE MEJANNAIS D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LACANAU LE MEJANNAIS S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LANGON D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LANGON S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LE PIAN MEDOC CHATEAUX D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LE PIAN MEDOC CHATEAUX S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LE PIAN MEDOC VIGNES D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("LE PIAN MEDOC VIGNES S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("MARGAUX D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("MARGAUX S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("MONT DE MARSAN D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("MONT DE MARSAN S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("PESSAC D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("PESSAC S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("SAINT EMILION D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("SAINT EMILION S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("TEYNAC").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("VILLENAVE D'ORNON D.E.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("VILLENAVE D'ORNON S.G.").Select
        Range("AS2").Select
        ActiveSheet.Paste
        Range("AS2").Select
        Sheets("Partenaires sortie").Select
        Application.CutCopyMode = False
     
    Protect ("C#D&i78a9"), DrawingObjects:=False, Contents:=True, Scenarios:=False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True
     
    Application.EnableEvents = True
    Application.ScreenUpdating = True
     
    End Sub
    Pouvez me dire où se situe mon erreur ?

    Merci.

    D'autre part, lorsqu'on prépare une sortie de golf, seul l'onglet où a lieu la sortie est visible (Arcachon, ou Biscarrosse D.E., ou Biscarrosse S.G., ...) , les autres onglets sont masqué, est-il possible d'ajouter une instruction pour copier les cellules EC181:EF200, uniquement dans l'onglet qui est visible.

    Je vous remercie pour votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 382
    Par défaut
    Bonjour,

    Ceci devrait recopier la plage dans la feuille visible:
    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
    Option Explicit
     
    Sub CopierDansFeuillesVisibles()
        Dim wSh As Worksheet
        Worksheets("Partenaires sortie").Select
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        Unprotect ("C#D&i78a9")
        For Each wSh In ThisWorkbook.Worksheets
            If wSh.Visible Then
                If wSh.Name <> "Partenaires sortie" Then
                    Range("EC181:EF200").Copy wSh.Range("AS2")
                End If
            End If
        End If
        Set wSh = Nothing
        Application.CutCopyMode = False
        Protect ("C#D&i78a9"), DrawingObjects:=False, Contents:=True, Scenarios:=False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End Sub
    mais ce code ne peut être placé dans le code d'une feuille, il doit rester dans un module. Idem pour celle que vous avez obtenue avec l'enregistreur de macro.

    Cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2014
    Messages : 46
    Par défaut
    Bonjour EricDgn,

    Merci de vous intéresser à mon problème.
    Dans le code que vous m'avez transmis, j'ai deux messages d'erreur :
    à la ligne 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Unprotect ("C#D&i78a9")
    j'ai le message "Erreur de compilation : Sub ou Fonction non définie"
    Si je neutralise cette ligne, j'ai un message "Erreur de compilation : For sans next"
    Je pense qu'en rajoutant à la ligne 15 à la place de , cela devrait être bon
    D'autre part, je ne l'avais pas précisé dans mon poste, mais d'autres onglets qui restent visibles : "Présentation", "Sorties 2022", "Sortie", "Partenaires", "Partenaires des postulants"
    J'ai essayé de modifier la ligne 11
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If wSh.Name <> ("Partenaires sortie") Then
    mais, j'ai un message d'erreur.

    Encore merci pour votre aide.

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 382
    Par défaut
    Une autre version:
    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
    Option Explicit
     
    Sub CopierDansFeuillesVisibles()
        Dim wSh As Worksheet
        Worksheets("Partenaires sortie").Select
        ThisWorkbook.Unprotect "C#D&i78a9"        '--- le mot de passe
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        For Each wSh In ThisWorkbook.Worksheets
            If wSh.Visible Then
                Select Case wSh.Name
                    Case "Partenaires sortie", "Présentation", "Sorties 2022", "Sortie", "Partenaires", "Partenaires des postulants"
                        '--- ne rien faire
                    Case Else
                        Range("EC181:EF200").Copy wSh.Range("AS2")
                End Select
            End If
        Next wSh
        Set wSh = Nothing
        Application.CutCopyMode = False
        Application.EnableEvents = True
        Application.ScreenUpdating = True
        ThisWorkbook.Protect "C#D&i78a9"        '--- le même mot de passe
    End Sub
    Cordialement.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2014
    Messages : 46
    Par défaut
    Bonjour EricDgn,

    Merci beaucoup pour votre aide.
    Cordialement.

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

Discussions similaires

  1. [XL-2016] Erreur d'excécution 1004 - Erreur définie par l'objet ou l'application
    Par Eddie69003 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/12/2016, 11h26
  2. Erreur d'exécution 1004 Erreur définie par l'application ou par l'objet
    Par matthieupaul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2015, 22h11
  3. [XL-2007] Erreur d'exécution '1004' Erreur définie par l'application ou par l'objet
    Par AKMMM dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/06/2014, 12h12
  4. Erreur d'exécution 1004 Erreur définie par l'application ou par l'objet
    Par felixismad dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/08/2013, 12h36
  5. Erreur d'exécution 1004. Erreur définie par l'application ou par l'object
    Par Quentin15 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/06/2011, 20h59

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