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 pendant le 20° Sheets.Add Before


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Par défaut Erreur 1004 pendant le 20° Sheets.Add Before
    Bonjour à tous


    J'ai un souci, pendant une boucle en VBA ou je cree des feuilles dans un document XLS (version 2003), au bout de la 20 eme feuille plantage d'excel avec possibilité d'envoyer le probleme chez CROSOFT.

    y a t il un endroit ou on aurait pu spécifier une limite ?

    J'ai essayé meme de changer les données mais rien n'y fait

    Comme je passe d'un fichier.xls (donnees d'entree avec filtre per responsable) sur un autre.xls
    (une feuille est creee par responsable), y a-t-il une limitation dans les aller-retour ??,merci d'avance pour une réponse.

    JLDAnCET

  2. #2
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour jldancet

    Un bout du code pour voir,

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Par défaut Reponse à Jean-Pierre
    merci pour une réaction super rapide. voici de quoi il s'agit exprimé en VBA :

    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
    For i = 2 To 2000 ' boucle qui lit une liste de noms 
        If Range("A" & i) = "" Or Range("A" & i) = " " Then GoTo fin1
           responsable = Range("A" & i).Value
           Windows(Fichier).Activate
           Sheets(feuille).Select
           ' extraction des données concernant le nom
            Columns("A:A").Select
            Selection.AutoFilter
            Selection.AutoFilter Field:=1, Criteria1:=responsable
     
     
            Range("A1").Select
            Range(Selection, Selection.End(xlToRight)).Select
            Range(Selection, Selection.End(xlToRight)).Select
            Range(Selection, Selection.End(xlDown)).Select
            Range(Selection, Selection.End(xlDown)).Select
     
            Selection.Copy
            Windows("temporaire.xls").Activate
     
            'copie des données sur une feuille, je peux avoir 50 feuilles ou plus
            'au bout de 20 feuilles inserees de maniere correcte CRASH
     
            On Error GoTo aerreur
    aerreur:        Sheets.Add before:=Sheets("WORK")
     
            Range("A1").Value = "Responsable : " & responsable
            Range("A3").Select
            ActiveSheet.Paste
            ActiveSheet.Name = responsable
         'totaux par feuille responsable
            Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(8, 9, 10, 11, 12, 13 _
            , 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
        Columns("H:AA").Select
        Selection.NumberFormat = "0.00"
     
        'recherche ligne total pour la copier en l1
        For i3 = 1 To 1000
        'recherche ligne total
            If InStr(1, Range("A" & i3), "Total", vbTextCompare) = 0 Then GoTo suitx
            Range("A" & i3 & ":" & "BB" & i3).Select
            Range(Selection, Selection.End(xlToRight)).Select
            Selection.Copy
            Range("A" & i3).Select
            'copie ligne total valeur
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("A" & i3 & ":" & "BB" & i3).Select
        Range(Selection, Selection.End(xlToRight)).Select
            Selection.Cut
            'insertion ligne total en ligne 1 pour suppression de colonne si = 0
            Rows("1:1").Select
            Selection.Insert Shift:=xlDown
         '   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
         '   :=False, Transpose:=False
            i5 = 27
            For i4 = 8 To 27
               If Cells(1, i5) = 0 Then Columns(i5).Delete
               i5 = i5 - 1
            Next i4
            Rows("1:1").Select
            Selection.Delete Shift:=xlUp
            GoTo suity
    suitx:     Next i3
    suity:
            Windows("temporaire.xls").Activate
            Sheets("WORK").Select
            'recherche responsable suivant
             ActiveWorkbook.SaveAs Filename:=temporaire _
            , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
        Next i

    J'espere que ce n'est pas trop charabia.

    Je ne peux meme pas manager l'erreur du style next ligne.

    Merci d'avance

    Salutations

    JLDANCET
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Il faut quelques fois laisser du temps pour faire les choses

    là tu crée des feuilles
    tu copie,
    tu enregistre tout ça dans une même boucle

    Quelques Doevents sans doute

    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
    Sheets.Add before:=Sheets("WORK")
    DoEvents
    '-
    '-
    '-
    '-
    Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(8, 9, 10, 11, 12, 13 _
    , 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
    Columns("H:AA").Select
    Selection.NumberFormat = "0.00"
    DoEvents
    '-
    DoEvents
    Windows("temporaire.xls").Activate
    Sheets("WORK").Select
    'recherche responsable suivant
    ActiveWorkbook.SaveAs Filename:=temporaire, FileFormat:=xlNormal
    DoEvents

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour tlm,

    Pour répondre à la question "il y a t-il une limite ?", non il n'y en a pas, la seule limite est la mémoire de ton pc

    Si cela peut aider, jette un oeil sur cette discution http://www.developpez.net/forums/sho...d.php?t=524386 concernant le blocage de la macro après création de x onglets

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Par défaut Probleme add sheets dans vba excel resolu


    Encore merci

    solution au Probleme : ajout de "DOEVENTS", et management du nombre de
    feuilles compte tenu de la mémoire.

    Salutations

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

Discussions similaires

  1. [XL-2007] Erreur '1004' pendant l'exécution d'un macro
    Par esigwald dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/03/2011, 12h19
  2. Erreur 1004 fonction Workbook.add
    Par jacques64 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/05/2008, 14h18
  3. [VB6] La méthode 'Sheets' de l'objet '_Global' a échoué (erreur 1004)
    Par koriteki dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/04/2008, 16h29
  4. [Excel] Erreur 1004 avec un search
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2005, 13h54
  5. Insérer une image : Erreur 1004
    Par dp_favresa dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/10/2005, 14h01

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