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 :

Copier-coller valeur plante 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 Copier-coller valeur plante Excel
    Bonjour à tous,

    Je pense être confronté à un bug Excel dans l'exécution d'une macro.
    Erreur : -2147417848 (80010108) l'objet invoqué s'est déconnecté de ses clients.

    La source du problème ne venant apparemment pas de mon code (déjà soumis soumis aux brillants talents de ce forum, cf Erreur Automation + plantage Excel) mais plutôt d'Excel lui-même, je suis un peu en panique par rapport à l'atteinte de mon objectif (usage pro, ça doit marcher pour dans 2 semaines).

    Connaissez-vous les possibités qu'il me reste ? Est-il possible de contacter le support microsoft ? Comment ? Connaissez-vous une procédure à suivre, un ultime recours ?
    J'ai cherché partout sur le site microsoft mais je n'ai rien trouvé...

    Merci à vous

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

    Regardez ici si vous trouvez votre solution :

    http://www.developpez.net/forums/d77...-plante-excel/
    Dernière modification par AlainTech ; 20/08/2009 à 04h45. Motif: Correction du lien

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    laurentabj : L'erreur que tu renseigne n'a rien à voir avec un bug Excel, c'est que dans ton code tu veux assigné une/des valeur à un objet qui n'existe plus et que tu a probablement supprimé quelque part.
    Montre la partie de ton code qui cause ce problème.
    A+

  4. #4
    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é, j'étais absent ce matin...
    Tout d'aboird, merci beaucoup pour vos réponses

    Petit résumé de mon problème : 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.



    Détail de la procédure :

    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
    L'erreur se produit sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .UsedRange.Value = .UsedRange.Value
    Avant j'utilisais un PasteSpecial mais le résultat est le même

    Ce qui me fait penser que c'est un bug excel, c'est qu'en mode déboggeur, j'arrive à poursuivre le pas à pas après la survenue de l'erreur... et puis peu de temps après, Excel plante !

    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.


    Merci à vous !

  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
    Citation Envoyé par LeForestier Voir le message
    c'est que dans ton code tu veux assigné une/des valeur à un objet qui n'existe plus et que tu a probablement supprimé quelque part.
    Montre la partie de ton code qui cause ce problème.
    A+

    @LeForestier :
    de quels types d'objets pourrait-il s'agir ? Est-il possible de lister les objets contenus dans une feuille, pour tenter de voir quels sont ceux qui arrêtent la macro sur une feuille plutôt qu'une autre ?

    Merci à toi

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il y a déjà au moins une anomalie, même si ce n'est pas la cause du problème.

    Dans vos déclaration de types de variables, ces lignes ne sont pas valables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim i, j, k, l, m, S As Integer
    Dim Chemin, Code, fName, namSh As String
    Dim Sh, ch, n As Object
    Pour la 1ère ligne seule la variable S est de type Integer, les précédentes sont de type Variant par défaut.

    Vous devez répéter "As Integer" pour toutes les variables de la 1ère ligne ou utiliser le caractère "!", de même pour le 2 autres lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim i!, j!, k!, l!, m!, S!, Chemin$, Code$, fName$, nameSh$, Sh As Object, ch As Object, n As Object

  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
    Bonjour Jacques-jean,

    Merci pour votre réponse qui m'en apprend une belle pour la journée !

    J'ai vérifié dans mon bouquin car votre réponse m'a beaucoup étonné mais vous avez complètement raison !

    Par contre pas d'amélioration, et mon erreur persiste...

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wbExport.Worksheets(namSh).Activate
    L'objet wbExport n'existe plus puisque tu l'a sauvé sous un autre nom plus haut ..
    Soit tu sauve à la fin de la macros soit tu libère wbExport
    Et tu réassigne au nouveau classeur.
    A+

  9. #9
    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 LeForestier et merci pour ton aide.

    Mais je ne comprends pas bien ce que tu dis puisque wbExport est le nom de la variable objet associée au classeur, et non le nom du classeur lui même ?

    D'ailleurs, dans la fenêtre exécution, un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print wbExport.name
    me retourne toujours le nom du fichier, et ce même après sa sauvegarde.

    J'ai quand même essayé de refaire l'affection juste après le Save
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wbExport = activeWorkbook
    Mais je ne constate pas d'amélioration.

    Qu'entends-tu par
    Merci à toi

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Oui, c'est une des bizarrerie d'excel, quand tu sauve sous.. tu peu encore questionner l'objet mais plus l'employer. Excel ne s'y retrouve plus. Idem si tu fait avec activeWorkbook, essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ....
    Do
        fName = Application.GetSaveAsFilename("ExportLEA", "Excel(*.xls),*.xls")
    Loop Until fName <> ""
    wbExport.SaveAs fileName:=fName
     
        Set wbExport = Nothing 'Peut-être pas nécessaire !
        Set wbExport = WorkBooks(fName) 'Il faut peut-être que ce soit le chemin complet + l'extention
    Sinon, met la ligne wbExport.SaveAs fileName:=fName en Rem et teste ta macro pour être certain que ça vient de là.

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

    Pour répondre à votre question :

    Qu'entends-tu par

    Set wbExport = Nothing
    voici ce que dit l'aide :


    Set, instruction, exemple

    Cet exemple utilise l'instruction Set pour attribuer des références d'objet à des variables. YourObject est supposé être un objet valide avec une propriété Text.
    Dim YourObject, MyObject, MyStr
    Set MyObject = YourObject ' Attribue la référence d'objet.
    ' MyObject et YourObject se rapportent au même objet.
    YourObject.Text = "Bonjour " ' Initialise la propriété.
    MyStr = MyObject.Text ' Renvoie "Bonjour".

    ' Annule l'association. MyObject ne fait plus référence
    ' à YourObject.
    Set MyObject = Nothing ' Libère l'objet.

  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
    OK merci à tous les deux.

    @LeForestier:

    Le debogueur s'arrête là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set wbExport = WorkBooks(fName)
    avec une erreur 9, l'indice n'appartient pas à la sélection.

    voilà ce que contient fName :
    D:\Documents and Settings\lmaquet\Mes documents\ExportLEA.xls

    ce qui correspond donc bien au chemin complet + extension

    Que se passe t-il ?

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Huumm.. oui.. je me suis focalisé sur le type d'erreur que tu signale mais je viens de tester et le problème n'est pas là. Bien que cela m'est déjà arrivé.
    Donc j'ai continué à examiner ton code et...
    1°) .UsedRange.Value = .UsedRange.Value ça veux dire quoi ??
    Value ne va pas avec UsedRange et le = (égal) ??
    2°) .Tab.ColorIndex = 55 C'est quoi Tab ??
    Si tu veux mettre une couleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        'La couleur de la cellule
        With wbExport.Worksheets(namSh)
            .UsedRange.Interior.ColorIndex = 55
        End With
        'La couleur de la police.
        With wbExport.Worksheets(namSh)
            .UsedRange.Font.ColorIndex = 55
        End With
    A+

  14. #14
    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
    Alors


    1/ j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .UsedRange.Value = .UsedRange.Value
    en lieu et place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        .UsedRange.Copy
        .UsedRange.PasteSpecial Paste:=xlPasteValues
    Car j'ai lu quelque part sur les forum que le copier coller en masse pouvait être instable.
    Mais le résultat est le même...

    Le process se déroule correctement jusqu'à une certaine feuille, mais pas toujours la même.
    J'attire également ton attention sur le fait que je parviens quand même à poursuivre le pas à pas, après l'apparition de l'erreur, jusqu'à ce qu'Excel plante purement et simplement.


    2/ .Tab.ColorIndex = 55

    Tab est une propriété de worksheet qui designe l'onglet (ici, la couleur de l'onglet) permettant d'accéder à la feuille (dans la zone basse d'Excel)

  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
    Allez j'appelle microsoft, 299€ l'appel !

    Je vous tiens au courant !

  16. #16
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .UsedRange.Value = .UsedRange.Value
    Je ne connaissais pas ce truc..
    Pour Tab, ça n'existait pas encore sur le 2000, je l'ai trouvé sur le 2007.
    Mais quitte à encore me gouré, y a quelque chose que je ne comprend pas.
    Tu copie certaine feuilles de wbNEW sur wbExport.. OK ?
    Je suppose que la variable objet wbNEW est public et instanciée ailleur ?? ou que c'est le nom du classeur source.
    ensuite, je suppose que tu veux enlever le MFC et les cellule fusionnées.. OK ?
    Bon et tu tourne sur toutes les feuilles de wbNEW ?? alors que c'est dans wbExport que tu enlève les formules, et ce n'est pas tout...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each Sh In wbNEW.Sheets
    Supposons 10 feuilles dans wbNEW, donc tourne 10 X ?
    Tu met les lignes suivantes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveSheet.UsedRange.Select
    Selection.FormatConditions.Delete
    Selection.MergeCells = False
    C'est quoi qui fait modifier la feuille active ??
    Et de plus, à cet endroit c'est wbNEW qui est actif, donc tu enlève les MFC et fusion sur UNE feuille du classeur wbNEW ! C'est ça que tu veux faire ?
    Et pour finir, tu supprime les formules de wbExport et tu sauve le classeur.
    Je sais pas mais ça m'a quand même l'air d'être un mélange un peu indigeste !!
    A+

  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
    Merci pour ces elements qui me font realiser qu'à force de bricoler mon code dans tous les sens, j'ai du laisser un paquet de coquilles. Il est temps de remettre un peu d'ordre dans tout ça !
    je vous revient avec unE procédure réécrite

  18. #18
    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
    Voici donc ma procédure réécrite qui prend en compte les remarques pertinentes de LeForestier.
    Mais pas d'améliorations malheureusement...


    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    Sub leaReader(ByRef exportArray() As Variant)
     
    Dim i!, j!, k!, l!, m!, S!, Chemin$, Code$, fName$, namSh$, Sh As Object, ch As Object, n As Object
    Dim tabCopy() As String
    Dim rw As Object
     
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.DisplayAlerts = False
     
     
    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
     
    'Nombre d'onglets vierge livrés avec wbExport
    m = wbExport.Sheets.Count
     
     
    'Initialiser la liste des onglets à 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
     
     
    'Copier les onglets
    wbNEW.Activate
    Sheets(tabCopy).Copy after:=wbExport.Sheets(wbExport.Sheets.Count)
    Application.CutCopyMode = False
     
    'Enregistrer wbExport
    Do
        fName = Application.GetSaveAsFilename("ExportLEA", "Excel(*.xls),*.xls")
    Loop Until fName <> ""
    wbExport.SaveAs fileName:=fName
     
    'Réinitialiser la variable wbExport (peut être pas nécessaire)
    Set wbExport = Nothing
    Set wbExport = ActiveWorkbook
     
     
    'Suppression des MFC, des fusions de cellule et des graphiques
    For Each Sh In wbExport.Sheets
    Sh.Activate
    ActiveSheet.UsedRange.Select
    Selection.FormatConditions.Delete
    Selection.MergeCells = False
        For Each n In ActiveSheet.Names
        n.Delete
        Next n
        For Each ch In ActiveSheet.ChartObjects
            ch.Activate
            ActiveChart.ChartArea.Select
            ActiveWindow.Visible = False
            Selection.Delete
        Next ch
    Next Sh
     
    'noms
    i = 0
    For Each n In ActiveWorkbook.Names
        n.Delete
    Next n
     
     
     
     
    For j = 1 To UBound(tabCopy)
    namSh = exportArray(j, 1)
    If exportArray(j, 3) > 0 Then
        If exportArray(j, 3) < 3 Then
            wbExport.Worksheets(namSh).Activate
            With ActiveSheet
                .UsedRange.Select
                Selection.Value = Selection.Value
                .Tab.ColorIndex = 55
                If exportArray(j, 3) = 1 Then
                    .Tab.ColorIndex = 49
                End If
            End With
        Else
        wbExport.Worksheets(namSh).Tab.ColorIndex = 6
        End If
    End If
     
    Next j
     
     
    For S = 1 To m
        Sheets(1).Delete
    Next S
     
     
     
    'Ajout du code couleur
     
    Code = ""
    Code = Code & "Private Sub Workbook_Open()" & vbCrLf
    Code = Code & "ActiveWorkbook.Colors(49) = RGB(196, 207, 230)" & vbCrLf
    Code = Code & "ActiveWorkbook.Colors(11) = RGB(158, 176, 214)" & vbCrLf
    Code = Code & "ActiveWorkbook.Colors(55) = RGB(45, 110, 176)" & vbCrLf
    Code = Code & "ActiveWorkbook.Colors(5) = RGB(45, 110, 176)" & vbCrLf
    Code = Code & "ActiveWorkbook.Colors(47) = RGB(221, 221, 221)" & vbCrLf
    Code = Code & "ActiveWorkbook.worksheets(1).activate" & vbCrLf
    Code = Code & "End Sub"
    wbExport.VBProject.VBComponents("Thisworkbook").CodeModule.InsertLines 1, Code
     
    With wbExport.CustomDocumentProperties
        .Add Name:="Source", LinkToContent:=False, Type:=msoPropertyTypeString, Value:=wbNEW.FullName
        .Add Name:=wbGAM.Sheets(csWSFORMS).Cells(362, wbGAM.Sheets(csWSOPTIONS).Cells(1, 2).Value).Value, LinkToContent:=False, Type:=msoPropertyTypeString, Value:=InputBox(wbGAM.Sheets(csWSFORMS).Cells(360 _
            , wbGAM.Sheets(csWSOPTIONS).Cells(1, 2).Value).Value, wbGAM.Sheets(csWSFORMS).Cells(362, wbGAM.Sheets(csWSOPTIONS).Cells(1, 2).Value).Value, Environ("USERNAME"))
        .Add Name:=wbGAM.Sheets(csWSFORMS).Cells(363, wbGAM.Sheets(csWSOPTIONS).Cells(1, 2).Value).Value, LinkToContent:=False, Type:=msoPropertyTypeString, Value:=InputBox(wbGAM.Sheets(csWSFORMS).Cells(361 _
            , wbGAM.Sheets(csWSOPTIONS).Cells(1, 2).Value).Value, wbGAM.Sheets(csWSFORMS).Cells(363, wbGAM.Sheets(csWSOPTIONS).Cells(1, 2).Value).Value, "")
        .Add Name:=wbGAM.Sheets(csWSFORMS).Cells(364, wbGAM.Sheets(csWSOPTIONS).Cells(1, 2).Value).Value, LinkToContent:=False, Type:=msoPropertyTypeDate, Value:=Date
    End With
     
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
     
    wbExport.Save
    wbExport.Close
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
     
     
    End Sub

  19. #19
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    ActiveSheet.ChartObjects
    C'est quoi ce truc, jusqu'a présent tu n'a pas parlé de feuilles graphique.

  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
    Bah c'est à dire que je suis en train de tout éliminer ce qui pourrait être à l'origine de mon problème.
    Donc je vire tous les graphiques pouvant exister (ou pas) dans les feuilles du classeur.

    Peut être qu'un jour, je tomberai sur le loup !

    Et pendant ce temps, 299€ plus tard, M$ ne me rapelle pas...

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/10/2009, 14h34
  2. [XL-2007] Copier coller une ligne excel sur autre feuille avec conditions
    Par amstelveen dans le forum Excel
    Réponses: 5
    Dernier message: 11/05/2009, 18h54
  3. Copier/coller MATLAB vers Excel
    Par mimic50 dans le forum MATLAB
    Réponses: 3
    Dernier message: 05/02/2009, 16h47
  4. Copier/coller valeurs d'une cellule si fichier existant
    Par eddyG dans le forum VBA Access
    Réponses: 7
    Dernier message: 16/10/2007, 13h50
  5. Réponses: 1
    Dernier message: 19/12/2006, 16h12

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