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 methode delete classe range échouée [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut erreur 1004 methode delete classe range échouée
    Bonjour,

    J'ouvre un classeur A et je lance une macro, qui trie et copie certaine données.
    Ensuite j'ouvre un classeur Suivi, je colle les données et les trie.
    Ensuire sur le classeur A, je veux effacer les lignes qui ont été copiées/collées.

    Mais j'ai une erreur 1004 "methode delete classe range échoué" à la ligne 55
    voila la procédure complete.

    Pourquoi je ne peux pas effacer ?

    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
     
    Sub Export_vers_base()
     
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect
     
      Dim classeurA As Workbook
      Dim Cell As Range
      Dim Resultat As String
     
      Set classeurA = ActiveWorkbook
     
    For Each Cell In Range("P3:P65536")
     If Not Cell = "" Then
     Resultat = Resultat & Cell.Address & Chr(10)
     End If
     Next Cell
     
    If Resultat = "" Then
     msgbox "Aucune fiche à exporter"
     
     Else
     
    'activer le tri des lignes dont la colonne "Com" est vide et copier
        ActiveSheet.Range("A1").AutoFilter Field:=16, Criteria1:="<>"
            Range("A3:Q" & Range("A65536").End(xlUp).Row).Copy
     
    'Ouvrir le fichier suivi et coller
        Workbooks.Open Filename:="G:\Commun\03-Suivi\Fichier Suivi.xlsm"
        Range("A65536").End(xlUp).Offset(1, 0).Select
        Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        ActiveSheet.Paste
        Range("A65536").End(xlUp).Offset(1, 0).Select
            Application.CutCopyMode = False
    ' Trie par date de fiche (colonne L)
        Range("A3:W" & Range("A65536").End(xlUp).Row).Select
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("L3:L65536") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").Sort
            .SetRange Range("A2:W" & Range("A65536").End(xlUp).Row)
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Range("D3").Select
        ActiveWorkbook.Save
        ActiveWorkbook.Close
     
    'supprimer les lignes concerné par le tri sans mesage d'alerte
            Application.DisplayAlerts = False
            classeurA.Worksheets("Sheet0").Range("A3:Q" & Range("A65536").End(xlUp).Row).Delete
            Application.DisplayAlerts = True
     
    'supprimer le trie des lignes
        With Worksheets("sheet0")
        If .FilterMode = True Then .ShowAllData
            End With
     
    ' Fin
        Application.ScreenUpdating = True
        msgbox "Les fiches ont été exporté", vbOKOnly
        ActiveWorkbook.Save
     
     End If
    Range("D3").Select
    ActiveSheet.Protect
     
    End Sub

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Essaie comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With classeurA.Worksheets("Sheet0")
        .Range("A3:Q" & .Range("A65536").End(xlUp).Row).Delete
    End With
    à la place de la ligne 55.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci Daniel.C pour la réponse mais j'ai la même erreur sur la ligne
    .Range("A3:Q" & .Range("A65536").End(xlUp).Row).Delete

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Peux-tu mettre le classeur contenant la feuille "sheet0" en PJ (en effaçant les données confidentielles). De préférence comme elle est au moment du plantage.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Merci pour la proposition. Voila le fichier
    Fichiers attachés Fichiers attachés

  6. #6
    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,

    La feuille (sheet0) est protégée....

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    oui mais le code du module 2 (bouton exporter les fiches, objet de mon probleme) enleve la protection avant execution et la remet à la fin
    la protection s'enleve sans code

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    De toutes façons, ton classeur est corrompu. Je l'ai recopié, j'espère que c'est propre, maintenant.
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    corrompu ? pourquoi c'est quoi qui va pas ?

    c'est quoi les modifs qui tu as fait ?

    Merci

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    corrompu ? pourquoi c'est quoi qui va pas ?
    1. Ca arrive de temps en temps. On ne sait pas pourquoi.
    2. la macro ne fonctionnait pas. Elle fonctionne maintenant.
    3. Le classeur était anormalement long à s'ouvrir.
    4. Le "usedrange" de la feuille "sheet0" utilisait la plage A1:WVW65000 et il était impossible de supprimer les lignes et les colonnes inutiles.

    J'ai recopié la feuille Feuil1 dans un classeur vierge, j'ai ajouté une feuille et j'ai recopié dessus les données de la feuille du fichier initial. Enfin, j'ai recopié les macros.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Daniel.C Voir le message
    1. Ca arrive de temps en temps. On ne sait pas pourquoi.
    c'est balot !
    bon j'ai fait un essai rapide et ça fonctionne.
    je vais devoir modifier les 20 fichiers qui sont issus de cette feuille...
    merci pour le temps passé !

    PS: comme on sait qu'un fichier est corrompu ?

  12. #12
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    PS: comme on sait qu'un fichier est corrompu ?
    Il ne fonctionne plus comme il devrait, ou il refuse de s'ouvrir.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  13. #13
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    heu...
    alors question trés con,
    dans la feuille sheet0, j'avais les cases M1:Q1 et Q2 qui étéaient colorisées via une macro
    du coup la couleur est changée... j'ai vérifiée ma macro elle n'a pourtant pas changée.

    comprends pas...

  14. #14
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Ca vient peut-être des couleurs initiales. Regarde le classeur en PJ. Si ce n'est pas ça, dis-moi dans quelle macro on modifie les couleurs.
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  15. #15
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    désolé de revenir si tard. Merci pour proposition Daniel.C
    j'ai fait comme toi, j'ai tout recommencé et ça fonctionne correctement.

    Sauf que... et oui...
    j'ai quand même mon bug qui se reproduit. entirerow.delete me refait des erreurs 1004.

    J'ai donc, hors macro, séléctionné une ligne "à la main", clic droit supprimer la ligne et paf ! message d'erreur excel avec grosse croix rouge:
    "excel ne peut pas terminer cette tâche avec les ressources disponibles. Selectionnez moins de données ou fermez des applications."

    je me dis que c'est ça qui fait bugger ma macro mais comment éviter ce message ? j'ai pourtant un pc new gen: corei7+8go ram+ssd.

  16. #16
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Est-ce que ça se produit avec le dernier classeur que je t'ai fourni ? Si oui, sur quelle feuille et quelle ligne ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  17. #17
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Désolé de revenir si tard
    Oui idem, mais bizarement, 1 coup sur 2.

    Sinon j'ai contourné mon probleme.
    au lieu de delete je fais un clear+trie et ça donne ce que je veux au final

    merci beaucoup pour le temps passé Daniel.C

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

Discussions similaires

  1. [XL-2003] [VBA] Erreur 1004 - Delete Classe range
    Par mirmoleboss dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/07/2011, 16h53
  2. [XL-2003] Method select de la classe range échoue
    Par Grindan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/09/2010, 09h08
  3. [AC-2003] Erreur 1004 Methode echoué
    Par Misha dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/09/2009, 17h56
  4. [VBA-E] Erreur methode select classe range
    Par kdestine dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 17/09/2007, 11h05
  5. Erreur 1004, methode Paste de l'objet Range.
    Par asxasx dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/08/2007, 11h05

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