Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 09/02/2012, 13h30   #1
Invité de passage
 
Nicolas
Inscription : décembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Nicolas

Informations forums :
Inscription : décembre 2010
Messages : 26
Points : 3
Points : 3
Par défaut méthode PastSpecial de la classe Range a échoué

Bonjour à tous,

j'ai un script VBS qui effectue une série de copier/coller par valeur entre 2 fichiers excel. Il fonctionnait bien avant. Depuis ce matin, j'ai des erreurs :

Citation:
Microsoft Excel : La méthode PastSpecial de la classe Range a échoué.
Voici comment j'ouvre mes 2 fichiers excel :
Code :
1
2
3
4
5
6
7
8
9
' Ouverture des fichiers
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = DEBUGEXCEL
oExcel.DisplayAlerts = False
oExcel.Workbooks.Open( sPathFileExcel  )
oExcel.Workbooks.Open( sPathFileResume )
sWorksheetExcel = oExcel.Workbooks(1).Name
sWorksheetResume = oExcel.Workbooks(2).Name
oExcel.Workbooks(sWorksheetExcel).Activate
Voici comment je fais mon copier/coller :
Code :
1
2
3
4
oExcel.Workbooks(sWorksheetExcel).Activate
oExcel.Workbooks(sWorksheetExcel).Worksheets("Tarif").Range(sAdsFourn & "4:" & sAdsFourn & nLastLine).Copy
oExcel.Workbooks(sWorksheetResume).Activate
oExcel.Workbooks(sWorksheetResume).Worksheets(1).Range("B1").PasteSpecial xlPasteValues, xlNone, False, False

Je dois préciser que je fais une 20aine de copier/coller un à la suite de l'autre, et mon script plante chaque fois à une étape différente : tantôt le 3ème copier/coller, tantôt le 5ème,...


Si qq1 sait me dire ce que je fais mal...

Merci d'avance,

Nico,
nico.exe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h49   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Je n'ai aucune idée sur VBS
mais par analogie avec VBA, je ferai comme ça

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
Sub TEST()
Dim oExcel As Object, Wbk As Object, WbkRes As Object
 
Set oExcel = CreateObject("Excel.Application")
With oExcel
    .Visible = DEBUGEXCEL
    .DisplayAlerts = False
    Set Wbk = .Workbooks.Open(sPathFileExcel)
    Set WbkRes = .Workbooks.Open(sPathFileResume)
 
    Wbk.Worksheets("Tarif").Range(sAdsFourn & "4:" & sAdsFourn & nLastLine).Copy
    WbkRes.Worksheets(1).Range("B1").PasteSpecial xlPasteValues, xlNone, False, False
    .CutCopyMode = False
 
    'Autres copies
 
 
    Wbk.Close False
    Set Wbk = Nothing
    WbkRes.Close True
    Set WbkRes = Nothing
    .Quit
End With
Set oExcel = Nothing
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/02/2012, 13h27   #3
Invité de passage
 
Nicolas
Inscription : décembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Nicolas

Informations forums :
Inscription : décembre 2010
Messages : 26
Points : 3
Points : 3
Bonjour mercatog,

Merci pour ton aide.

L'erreur ne se fait plus !!!


Nico
nico.exe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h06.


 
 
 
 
Partenaires

Hébergement Web