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 Automation + plantage Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut Erreur Automation + plantage Excel
    Bonjour à tous !

    Je rencontre des problèmes de type Erreur Automation sur le morceau de code suivant. (l'objet invoqué s'est déconnecté de ses clients)


    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
    For Each s In wbNEW.Sheets
     
        If tabArray(s.Index, 1) < 3 Then
            If tabArray(s.Index, 1) > 0 Then
                With wbExport.Worksheets(s.Name)
                   .Activate
                   .Cells.Copy
                   .Cells.PasteSpecial Paste:=xlPasteValues
                   .Tab.ColorIndex = 55
                End With
            End If
            If tabArray(s.Index, 1) = 1 Then
                wbExport.Worksheets(s.Name).Tab.ColorIndex = 49
            End If
        Else
        wbExport.Worksheets(s.Name).Tab.ColorIndex = 6
        End If
     
    Next s
    L'erreur ne de produit pas toujours, mais l'arrêt se fait toujours sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                   .Cells.PasteSpecial Paste:=xlPasteValues
    Une chose étonnante est que j'arrive à reprendre l'exécution de la macro après l'arrêt. Autre chose, si je veux quitter Excel, l'appli plante.

    Que signifient ces types d'erreurs ? Sont-ils vraiment liés à mon code ? Quels sont mes recours ?

    Merci d'avance !
    Laurent

  2. #2
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    A quoi servent ces deux lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                  .Cells.Copy
                   .Cells.PasteSpecial Paste:=xlPasteValues
    Il semblerait que tu copies et colles au même endroit ?

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    Correct ! et merci de répondre si vite !

    L'idée est d' "aplatir" la feuille en supprimant les formules et en ne laissant que les valeurs.

  4. #4
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    La pour le plantage je ne vois pas trop (pas testé)

    tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .Cells.Copy
    .Cells.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False

  5. #5
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    marci aalex,

    Je viens d'essayer, mais je ne constate pas d'amélioration...

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                   .Cells.Copy
                   .Cells(1,1).PasteSpecial Paste:=xlPasteValues
                   application.cutcopymode = false
    Cela étant, c'est un peu tirer au bazooka pour tuer une mouche. En E-07, tu as 16384 colonnes sur +/-1 048 000 lignes...

    Tu pourrais peut-être restreindre la copie à UsedRange

  7. #7
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    Oui j'y avais pensé et j'ai déjà essayé de limiter à cells.resize(400)

    Mais le UsedRange, je ne connaissais même pas ! (très pratique ça !) Je vais essayer...

  8. #8
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    Bah ça marche pas... Merci quand même

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Le classeur, il est en réseau?

  10. #10
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    Non, même pas... C'est un classeur qui comporte des liaisons avec des fichiers externes, mais tous sont en local.

    Encore merci à tous pour toutes vos réponses

    Que sait-on exactement de ce type d'erreur ?

    Pourquoi ai-je la possibilité de continuer le pas-à-pas en mode débogueur après l'apparition de l'erreur ?

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Deux questions...

    1. C'est quoi, tabArray?

    2. Y-a-t-il une feuille qui ne serait pas une feuille de calcul? Dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each s In wbNEW.Sheets
    tu balaies toutes les feuilles du classeur (feuilles de calcul, mais aussi graphiques, feuilles macro, ...)
    Si tu as une feuille s qui n'est pas une feuille de calcul, tu planteras sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wbExport.Worksheets(s.Name).Tab.ColorIndex = 6

  12. #12
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    Bonjour Pierre,

    1. tabArray est un tableau qui stocke, pour chaque feuille d'un classeur de référence wbNew, le statut dont elles héritent une fois copiées dans un classeur nouvellement créé wbExport.

    Je remet ici le début de mon code :

    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
     
    Option Explicit
     
    Private Sub usrExportCb1_Click()
     
    'Déclaration des variables
    Dim tabArray(1 To 50, 1 To 2) As Variant
    Dim i, j, k, l, m, s As Integer
    Dim Chemin, Code, fName, namSh As String
    Dim sh, ch, n As Object
     
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
     
    'Compter les onglets
    i = wbNEW.Worksheets.Count
     
    'Lister et qualifier les onglets à copier
    '   0: ne pas copier l'onglet
    '   1: copier en dur les valeurs (copie optionnelle)
    '   2: copier en dur les valeurs (copie obligatoire)
    '   3: copier les onglets natifs en conservant les formules (copie obligatoire)
     
    For j = 1 To i
        With Me.Controls("CheckBox" & j)
            If (.Caption = "Recap") * 1 + (.Caption = "P&L Summary") * 1 + (.Caption = "P&L Detail") * 1 + (.Caption = "Budget") * 1 < 0 Then
                tabArray(.TabIndex - 1, 1) = 3
                tabArray(.TabIndex - 1, 2) = .Caption
            ElseIf (.Caption = "Version") * 1 + (.Caption = "FTE") * 1 + (.Caption = "Space") * 1 + (.Caption = "CapEx") * 1 + (.Caption = "start up cost") * 1 + (.Caption = "ABC") * 1 < 0 Then
                tabArray(.TabIndex - 1, 1) = 2
                tabArray(.TabIndex - 1, 2) = .Caption
            ElseIf .Value = True Then
                tabArray(.TabIndex - 1, 1) = 1
                tabArray(.TabIndex - 1, 2) = .Caption
            Else
                tabArray(.TabIndex - 1, 1) = 0
                tabArray(.TabIndex - 1, 2) = ""
            End If
        End With
    Next j
     
     
    Set wbExport = Workbooks.Add
    'Set wbTemp = Workbooks.Add
    m = wbExport.Sheets.Count
     
    'Nb d'onglets à copier
    k = 0
     
    For j = 1 To UBound(tabArray, 1)
        If tabArray(j, 1) > 0 Then
            k = k + 1
        End If
    Next
     
    ReDim tabCopy(1 To k) As String
     
    'Position de l'onglet à copier
    l = 0
     
    For j = 1 To UBound(tabArray, 1)
        If tabArray(j, 1) > 0 Then
            l = l + 1
            tabCopy(l) = tabArray(j, 2)
        End If
    Next
     
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
     
    'Copie des onglets
    wbNEW.Activate
    Sheets(tabCopy).Copy after:=wbExport.Sheets(wbExport.Sheets.Count)
    Application.CutCopyMode = False
     
    Do
        fName = Application.GetSaveAsFilename("ExportLEA", "Excel(*.xls),*.xls")
    Loop Until fName <> ""
    wbExport.SaveAs fileName:=fName
     
    For Each sh In wbNEW.Sheets
    namSh = sh.Name
    If tabArray(sh.Index, 1) > 0 Then
        wbExport.Save
        wbExport.Worksheets(namSh).Activate
        If tabArray(sh.Index, 1) < 3 Then
                ActiveSheet.UsedRange.Select
                Selection.Copy
                Selection.PasteSpecial Paste:=xlPasteValues
                Application.CutCopyMode = False
                ActiveSheet.Tab.ColorIndex = 55
     
            If tabArray(sh.Index, 1) = 1 Then
                wbExport.Worksheets(namSh).Activate
                ActiveSheet.Tab.ColorIndex = 49
            End If
        Else
        ActiveSheet.Tab.ColorIndex = 6
        End If
    End If
    Next sh
     
    For s = 1 To m
        Sheets(1).Delete
    Next s
    L'erreur de produit toujours sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.PasteSpecial Paste:=xlPasteValues
    ...mais jamais sur la première valeur de sh.

    Ce code s'exécute en appuyant sur le bouton "OK" d'un formulaire usrExport. Ce dernier contient un check-box par feuille du classeur source wbNew.

    2. Toutes mes feuilles sh (le code a un peu changé depuis mon premier post...) sont bien des feuilles de calcul.

    3. Merci à toi !

    Laurent

  13. #13
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.UsedRange.Select
    Le programme ne se perd-il pas ici, difficile de savoir quelle est la feuille active.

  14. #14
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Il faudrait que l'on ait une explication en langage clair de ce que tu souhaites réaliser, car cela me semble être l'usine à gaz...

  15. #15
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    OK !

    Je souhaite réaliser une fonction d'export d'un classeur en version "reader" ou "lite".
    L'objectif est de diffuser à des profils non-ingénieurs les résultats d'une étude menée par des ingénieurs.

    Mon classeur source contient donc plusieurs feuilles.

    Nom : LeaExport.JPG
Affichages : 266
Taille : 16,7 Ko



    La fonction propose d'exporter tout ou parties de ces feuilles :
    - Certaines sont exportées systématiquement et sont gardées intactes
    - Certaines sont exportées systématiquement mais sont depossédée de leurs formules (copie / collage valeurs)
    - Les autres sont exportées à condition que l'utilisateur les coche dans le formulaire usrExport. Celles-ci sont également dépossédée de leur formules.


    J'espère que c'est plus clair

    @aalex_38

    Merci de ta réponse.
    J'ai déjà essayé de nombreuse façons de désigner cette feuille comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wbExport.Worksheets(namSh).UsedRange.Select
    ...mais le résultat est le même, et le plantage ne se produit pas à cet endroit.

    J'espère que je ne vais pas devoir me plonger dans cette solution que propose microsoft. (je ne sais même pas si ellle est applicable à VBA)

    http://support.microsoft.com/kb/270589/fr#top

  16. #16
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Ecraser les formules de l'onglet me semble être une solution assez barbare !

    Ne peux tu pas copier les valeur dans un autre onglet ?

  17. #17
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    J'ai déjà essayé, en procédante de cette façon :
    - copier/coller valeurs vers un classeur temporaire
    - effacement des formules dans classeur d'export
    - collage des valeurs dans classeur d'export

    Sans succès.
    J'en peu plus...

  18. #18
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    J'ai essayé ça qui focntionne aussi chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Feuil1").Cells.Copy
    Worksheets("Feuil1").Cells.PasteSpecial xlPasteValues

    NB :Je risque de me repeter mais les activesheet ne sont pas necessaires dans ton code, ni les select

  19. #19
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Une solution ne serait-elle pas d'exporter les feuilles dans le classeur via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh.copy destination:=...
    puis de faire le nettoyage dans le classeur de copie lorsque les feuilles ont été transférées?

  20. #20
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Points : 91
    Points
    91
    Par défaut
    Bonjour à tous !

    Désolé de reprendre le fil si tard, j'ai été absorbé par d'autres sujets et j'ai complètement oublié le fil en cours...
    Je sais, c'est pas bien, et je m'excuse auprès des personnes qui se sont penchées dessus...
    Mais le sujet de ce fil est toujours aussi brulant pour moi...

    Petit résumé du fil : je suis confronté à une erreur de type -2147417848 (80010108) "l'objet invoqué s'est deconnecté de ses clients" qui apparaît lors d'un coller valeur sur la zone source de la copie.

    Objectif de cette opération : à partir d'un classeur "source", générer un classeur "export" qui soit la copie du classeur "source" mais dont les formules sont remplacées par la valeur de leur résultat.
    =>Le classeur export me permet de voir les résultats du classeur source, mais pas le moyen d'arriver à ces résultats.

    Principe utilisé :
    - Affichage d'un formulaire usrExportLEA me permettant de sélectionner les feuilles du classeur source à exporter
    - Les noms et attributs des feuilles sélectionnées sont stockés dans une variable tableau tabArray()
    - je décharge le formulaire usrExportLEA
    - j'appelle la fonction d'export leaReader en lui passant en argumant le tableau tabArray()

    Procédure de fermeture du formulaire:
    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
    Private Sub usrExportCb1_Click()
     
    'Déclaration des variables
    Dim tabArray(1 To 50, 1 To 3) As Variant
    Dim i, j, k As Integer
     
     
     
     
    'Compter les onglets
    i = wbNEW.Worksheets.Count
    'Initialise k (nbre de checkbox cochés)
    k = 0
     
    For j = 1 To i
        With Me.Controls("CheckBox" & j)
            If .Value = -1 Then
            k = k + 1
            tabArray(k, 1) = .Caption
            tabArray(k, 2) = j
            End If
        End With
    Next j
     
    Unload Me
     
    Call leaReader(tabArray)
     
     
    End Sub



    - Dans la fonction leaReader, j'ouvre un nouveau classeur, le classeur "export"
    - je copie les feuilles sélectionnées du classeur "source" vers le classeur "export"
    - dans le classeur export, feuille par feuille, je copie la plage utilisée UsedRange, et je la colle au même endroit mais sous forme de valeurs.
    N'ayant pas eu beaucoup de succès avec la fonction PasteSpecial, j'utilise maintenant la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveSheet
    .UsedRange.Value = .UsedRange.Value
    End With
    Mais l'erreur se produit, même avec cette syntaxe...

    Détail de la procédure leaReader :
    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
    Sub leaReader(ByRef exportArray() As Variant)
     
    Dim i, j, k, l, m, S As Integer
    Dim Chemin, Code, fName, namSh As String
    Dim Sh, ch, n As Object
    Dim tabCopy() As String
    Dim rw As Object
     
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.DisplayAlerts = False
     
     
    'Qualifier les feuilles sélectionnées
    For j = 1 To UBound(exportArray, 1)
     
     
            If (exportArray(j, 1) = "Recap") * 1 + (exportArray(j, 1) = "P&L Summary") * 1 + (exportArray(j, 1) = "P&L Detail") * 1 + (exportArray(j, 1) = "Budget") * 1 < 0 Then
                exportArray(j, 3) = 3
            ElseIf (exportArray(j, 1) = "Version") * 1 + (exportArray(j, 1) = "FTE") * 1 + (exportArray(j, 1) = "Space") * 1 + (exportArray(j, 1) = "CapEx") * 1 + (exportArray(j, 1) = "SUC") * 1 + (exportArray(j, 1) = "ABC") * 1 < 0 Then
                exportArray(j, 3) = 2
            Else
                exportArray(j, 3) = 1
            End If
     
    Next j
     
     
    Set wbExport = Workbooks.Add
    m = wbExport.Sheets.Count
     
     
     
    'Initialiser la variable tableau des feuilles à copier
     
    l = 0
     
    For j = 1 To UBound(exportArray, 1)
        If exportArray(j, 1) <> "" Then
                l = l + 1
                ReDim Preserve tabCopy(1 To l)
                tabCopy(l) = exportArray(j, 1)
        End If
    Next
     
     
    'Copie des onglets
     
    wbNEW.Activate
    Sheets(tabCopy).Copy after:=wbExport.Sheets(wbExport.Sheets.Count)
    Application.CutCopyMode = False
     
    Do
        fName = Application.GetSaveAsFilename("ExportLEA", "Excel(*.xls),*.xls")
    Loop Until fName <> ""
    wbExport.SaveAs fileName:=fName
     
     
    'Suppression des mises en forme conditionnelles et des fusions de cellules
     
    For Each Sh In wbNEW.Sheets
    ActiveSheet.UsedRange.Select
    Selection.FormatConditions.Delete
    Selection.MergeCells = False
    Next Sh
     
     
    'Application des traitements sur les feuilles
     
    For j = 1 To UBound(tabCopy)
    namSh = exportArray(j, 1)
    If exportArray(j, 3) > 0 Then
     
        wbExport.Worksheets(namSh).Activate
        If exportArray(j, 3) < 3 Then
            With ActiveSheet
                .UsedRange.Value = .UsedRange.Value
                .Tab.ColorIndex = 55
             End With
            If exportArray(j, 3) = 1 Then
                ActiveSheet.Tab.ColorIndex = 49
            End If
        Else
        ActiveSheet.Tab.ColorIndex = 6
        End If
    End If
     
    Next j
     
     
    'Effacer les feuilles vides livrées NouveauClasseur
     
    For S = 1 To m
        Sheets(1).Delete
    Next S
     
     
    wbExport.Save
    wbExport.Close
     
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
     
     
    End Sub

    J'ai cherché partout, dans les ressources microsoft qui font souvent mention de cette erreur, mais qui invoquent toujours des causes que mon projet ne remplit pas.

    Je ne sais donc plus comment atteindre mon objectif...

    Avis donc, aux nombreux experts chevronnés qui hantent ces pages

    Merci d'avance

Discussions similaires

  1. Erreur Automation VBA excel
    Par icpa38 dans le forum Général VBA
    Réponses: 1
    Dernier message: 05/06/2012, 15h53
  2. Lancer javascript depuis Excel - erreur Automation [E-03]
    Par beben31 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2009, 11h16
  3. Erreur automation sous excel pour ouvrir Word
    Par Philippe53 dans le forum VBA Word
    Réponses: 6
    Dernier message: 21/06/2008, 22h52
  4. Erreur Automation sous Excel (SaveCopyAs)
    Par jeanvoil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/03/2007, 11h05
  5. [VBA-Excel] Erreur automation
    Par argv666 dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 18/09/2006, 19h03

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