Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/04/2011, 18h04   #1
Futur Membre du Club
 
Inscription : mars 2011
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 57
Points : 16
Points : 16
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 :
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
pascal4782 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 18h46   #2
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 305
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 305
Points : 2 653
Points : 2 653
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 :
Application.Run "'Stade2&5.xlsm'! vide"
A la place de
Code :
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
http://philippe.tulliez.be
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
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 20h23   #3
Futur Membre du Club
 
Inscription : mars 2011
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 57
Points : 16
Points : 16
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.
pascal4782 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 12h00   #4
Futur Membre du Club
 
Inscription : mars 2011
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 57
Points : 16
Points : 16
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+
pascal4782 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2011, 10h07   #5
Futur Membre du Club
 
Inscription : mars 2011
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 57
Points : 16
Points : 16
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.
pascal4782 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h33.


 
 
 
 
Partenaires

Hébergement Web