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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    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 confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    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.

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    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 confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    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.

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

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

  6. #6
    Membre émérite 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
    Par défaut
    Bonjour,

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

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    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

+ 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