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'éxecution '1004' La méthode Select de la classe Range à échoué


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Debutant
    Inscrit en
    Décembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Debutant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 2
    Par défaut Erreur d'éxecution '1004' La méthode Select de la classe Range à échoué
    Bonjour a tous et joyeux noel !!!

    J ai donc un petit soucis avec mon fichier excel et ses macros.

    Mon fichier est en fait un calendrier. Les feuilles 2 a 13 sont les mois de l'année et la feuille 17 est un page de sauvegarde de la mise en forme.

    J'ai un soucis avec la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("A1").PasteSpecial Paste:=xlPasteFormats
    il me donne cette erreur :
    Erreur d'éxecution '1004' La méthode Select de la classe Range à échoué


    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
    Sub RAZmp()
     
    Dim i, j As Integer
     
    'j = numero de la feuille active au debut
    j = ActiveSheet.Index
     
    'Acceleration du code en ne montrant rien
    Application.ScreenUpdating = False
     
    With Sheets(17)
        .Activate
        .Unprotect Password:="mdp"
        .Cells.Copy
    End With
     
    For i = 2 To 13
     
     
     
        With Sheets(i)
     
            .Activate
            .Unprotect Password:="mdp"
     
     
            'Copie de la mise en forme
            .Range("A1").PasteSpecial Paste:=xlPasteFormats
     
     
     
            If .Range("AD1") = "" Then
                .columns("AD:AD").EntireColumn.Hidden = True
                'Effacement du contenu du 29 si il en restait sinon il resterait les valeurs et elles seraient comptées dans les compteurs
                .Range("AD4:AD17").ClearContents
                .Range("AD20:AD38").ClearContents
            End If
     
            If .Range("AE1") = "" Then
                .columns("AE:AE").EntireColumn.Hidden = True
                'Effacement du contenu du 30 si il en restait sinon il resterait les valeurs et elles seraient comptées dans les compteurs
                .Range("AE4:AE17").ClearContents
                .Range("AE20:AE38").ClearContents
            End If
     
            If .Range("AF1") = "" Then
                .columns("AF:AF").EntireColumn.Hidden = True
                'Effacement du contenu du 31 si il en restait sinon il resterait les valeurs et elles seraient comptées dans les compteurs
                .Range("AF4:AF17").ClearContents
                .Range("AF20:AF38").ClearContents
            End If
     
            .Range("B4").Select
     
            'On reprotege la feuille
            .Protect Password:="mdp", DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
        End With
     
    Next
     
    Application.CutCopyMode = False
    Sheets(17).Protect Password:="mdp", DrawingObjects:=True, Contents:=True, Scenarios:=True
    Sheets(17).EnableSelection = xlNoSelection
     
    'on revient sur la feuille de depart, sinon on finirait a chaque fois sur decembre
    Sheets(j).Activate
     
    End Sub
    Merci beaucoup et encore une fois joyeux noël

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le code suivant fonctionne :

    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
    Sub RAZmp()
     
    Dim I, j As Integer
    Dim AireACopier As Range
     
    'j = numero de la feuille active au debut
    j = ActiveSheet.Index
     
    'Acceleration du code en ne montrant rien
    Application.ScreenUpdating = False
     
    With Sheets(17)
        .Activate
        .Unprotect Password:="mdp"
        '.Cells.Copy
        Set AireACopier = .Cells
     
    End With
     
    For I = 2 To 13
     
        With Sheets(I)
     
            .Activate
            .Unprotect Password:="mdp"
     
            'Copie de la mise en forme
            AireACopier.Copy
            .Range("A1").PasteSpecial Paste:=xlPasteFormats
     
            If .Range("AD1") = "" Then
                .Columns("AD:AD").EntireColumn.Hidden = True
                'Effacement du contenu du 29 si il en restait sinon il resterait les valeurs et elles seraient comptées dans les compteurs
                .Range("AD4:AD17").ClearContents
                .Range("AD20:AD38").ClearContents
            End If
     
            If .Range("AE1") = "" Then
                .Columns("AE:AE").EntireColumn.Hidden = True
                'Effacement du contenu du 30 si il en restait sinon il resterait les valeurs et elles seraient comptées dans les compteurs
                .Range("AE4:AE17").ClearContents
                .Range("AE20:AE38").ClearContents
            End If
     
            If .Range("AF1") = "" Then
                .Columns("AF:AF").EntireColumn.Hidden = True
                'Effacement du contenu du 31 si il en restait sinon il resterait les valeurs et elles seraient comptées dans les compteurs
                .Range("AF4:AF17").ClearContents
                .Range("AF20:AF38").ClearContents
            End If
     
            .Range("B4").Select
     
            'On reprotege la feuille
            .Protect Password:="mdp", DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
        End With
     
    Next
     
    Application.CutCopyMode = False
    Sheets(17).Protect Password:="mdp", DrawingObjects:=True, Contents:=True, Scenarios:=True
    Sheets(17).EnableSelection = xlNoSelection
     
    'on revient sur la feuille de depart, sinon on finirait a chaque fois sur decembre
    Sheets(j).Activate
     
     Set AireACopier = Nothing
     
    End Sub
    Cordialement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Debutant
    Inscrit en
    Décembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Debutant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 2
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2015, 09h46
  2. Réponses: 4
    Dernier message: 16/02/2015, 13h06
  3. [XL-2007] Erreur d'execution "1004" la méthode autofilter de la classe range a échoué
    Par adamskone dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/09/2014, 00h41
  4. Réponses: 11
    Dernier message: 09/07/2014, 16h40
  5. Réponses: 13
    Dernier message: 29/06/2007, 18h03

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