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

Excel Discussion :

VBA : Erreur d'exécution


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 75
    Points : 48
    Points
    48
    Par défaut VBA : Erreur d'exécution
    Bonjour a tous,
    Mon programme me pose des problèmes.
    Il génére :
    «Erreur d’exécution ‘-2147417848(80010108)’ : La méthode ‘PasteSpecial de l’objet ‘Range’ a échoué. »
    De plus a la fermeture du fichier : "Cette image est trop grande et va être tronquée."
    Il y a de nombreux copier/ coller dans le code et depuis je tente de vider le presse papier selon différentes instructions mais rien ni fait, soit les instructions sont incomplètes soit le problème est ailleurs.
    Je cherche donc une solution.

    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
    Private Declare Function OpenClipboard Lib "user32" _
        (ByVal hwnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Sub vide()
     On Error Resume Next
     Application.CommandBars("Clipboard").Controls(4).Execute
     End Sub
     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Sub Vider()
        OpenClipboard 0
        EmptyClipboard
        CloseClipboard
    End Sub
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Sub ClearClipboard()
    Dim oDataObject As DataObject
     
    Set oDataObject = New DataObject
    oDataObject.SetText ""
    oDataObject.PutInClipboard
     
    Set oDataObject = Nothing
    End Sub
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Sub ESSAIS()
    Deb = Timer
     
     
       Application.ScreenUpdating = False
     
          For I = 1 To 20
        decal = 45 * I
     
        Application.CutCopyMode = False
        Application.Run "'Stade2&5.xlsm'! vide"
        Application.Run "'Stade2&5.xlsm'! Vider"
     
        Sheets("A").Range("A20:AS1139").Offset(0, decal).Copy
        Sheets("1").Range("A20").PasteSpecial Paste:=xlPasteValues
     
        Application.Run "'Stade2&5.xlsm'!TestX14"
        Application.Run "'Stade2&5.xlsm'! vide"
        Application.Run "'Stade2&5.xlsm'! Vider"
        Application.Run "'Stade2&5.xlsm'! ClearClipboard"
     
     
        Range("BA20:BA1139").Copy
        Range("DE20").Offset(0, I).PasteSpecial Paste:=xlPasteValues
     
        Range("BE17:CX17").Copy
        Range("EF1").Offset(I - 1, 0).PasteSpecial Paste:=xlPasteValues
     
            Next I
     
        Application.ScreenUpdating = True
            Application.CutCopyMode = True
                     ActiveWorkbook.Save
                  MsgBox "J'ai bossé " & Timer - Deb & " seconde"
     
         End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je suppose que si tu utilises la méthode Application.Run c'est que tu fais appel à une procédure d'un autre classeur ?
    Pour ma part, je n'ai jamais utilisé cette méthode mais il me semble anormal qu'il y ait un espace avant le nom de la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run "'Stade2&5.xlsm'! vide"
    A la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run "'Stade2&5.xlsm'!vide"
    Ce que je trouve curieux, c'est que cette même procédure se trouve dans le même module.
    SI c'est le cas un Call ou simplement le nom de la procédure suffit pour appeler celle-ci et ce sans utiliser Application.Run
    Je suppose que cela n'a rien à voir avec ton problème mais cela vaut le coup de vérifier.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 75
    Points : 48
    Points
    48
    Par défaut
    Bonsoir a vous,

    Pour l'espace, j'ai modifié le code et toujours le même message d'erreur.
    Si vous aviez une proposition je suis preneur

    Merci par avance et bonne soirée.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 75
    Points : 48
    Points
    48
    Par défaut Re
    Bonjour à tous,

    Ce qui a été fait :
    -Suppression des espaces pour appeler les autres macros.
    -Passage par Call
    -Enregistrement systématique après chaque boucle

    Maintenant, le message d’erreur est « Ressource insuffisante d’Excel »

    J’entreprends un nettoyage par Cclearner et un anti- virus.

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 75
    Points : 48
    Points
    48
    Par défaut Re,
    Bonjour à tous,

    Un grand merci à tous pour votre aide. Comme je rencontre toujours les mêmes erreurs, je vais réduire le nombre de boucles avant l'apparition du message d'erreur. C'est une solution temporaire qui fonctionne à défaut de résoudre le problème de fond, mais je pense ne pas être le seul à rencontrer le defaut.

    Bon dimanche.

Discussions similaires

  1. [XL-2007] vba : erreur d'exécution 1004
    Par rayba89 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2013, 10h08
  2. [AC-2003] [VBA] Erreur d'exécution 94 - Utilisation incorrecte de Null aléatoire
    Par chahine92 dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/04/2011, 22h00
  3. [XL-2007] VBA : Erreur d'exécution
    Par pascal4782 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/04/2011, 21h27
  4. VBA Erreur d'exécution '459' sur un userform
    Par micom59 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 28/02/2009, 20h12

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