OVH Cloud OVH Cloud

excel+vbs

3 réponses
Avatar
berthelagrandepatte
Bonjour,

Je dois créer un script qui doit copier/coller des données d'un fichier
excel vers un autre sachant que les données du fichier source doivent
remplacer les données du fichier cible. Ce n'est pas un rajout de données.Une
fois le copier/coller terminé, le script enregistre le fichier sous un autre
nom.
J'ai commencé mon script et il bloque à selection2.copy selection en
precisant que "la methode copy de la classe range a échoué".

-----------------------
Option Explicit

Dim xlapp, xlbook, xlsheet, xlapp2, xlbook2, xlsheet2, selection,
selection2, nxlsheet, cellule


Set xlapp = CreateObject("Excel.Application")
xlapp.visible = True
Set xlbook = xlapp.Workbooks.Open("C:\dossier\fichier1.xls")
Set xlsheet = xlbook.WorkSheets("test")


Set xlapp2 = CreateObject("Excel.Application")
xlapp2.visible = True
Set xlbook2 = xlapp2.Workbooks.Open("C:\dossier2\fichier2.xls")
Set xlsheet2 = xlbook2.Worksheets(1)

Set selection2 = xlsheet2.range("A1:D41")
Set selection = xlsheet.range("A2")
selection2.copy selection

xlappl2.quit

Set nxlsheet = xlsheet.name("test2.xls")
xlbook.saveas("c:\dossier3\fichier3.xls")
xlbook.close
xlapp.quit
-------------------------------------------------------

Avez vous une idée pour remedier à mon petit problème si toutefois le copier
coller est possible vbscript ?
Merci de vos réponses

3 réponses

Avatar
Yannick SCHAPPLER
Bonjour,

Ton plantage est du au fait que tu cherches à coller une plage de cellules
source, d'une dimension différente de la plage de destination.
Un peu comme quand tu fais à la main un copier-coller de 4 cellules, en ne
sélectionnant que deux cellules par ex.

Yannick SCHAPPLER



"berthelagrandepatte" a
écrit dans le message de news:

Bonjour,

Je dois créer un script qui doit copier/coller des données d'un fichier
excel vers un autre sachant que les données du fichier source doivent
remplacer les données du fichier cible. Ce n'est pas un rajout de
données.Une
fois le copier/coller terminé, le script enregistre le fichier sous un
autre
nom.
J'ai commencé mon script et il bloque à selection2.copy selection en
precisant que "la methode copy de la classe range a échoué".

-----------------------
Option Explicit

Dim xlapp, xlbook, xlsheet, xlapp2, xlbook2, xlsheet2, selection,
selection2, nxlsheet, cellule


Set xlapp = CreateObject("Excel.Application")
xlapp.visible = True
Set xlbook = xlapp.Workbooks.Open("C:dossierfichier1.xls")
Set xlsheet = xlbook.WorkSheets("test")


Set xlapp2 = CreateObject("Excel.Application")
xlapp2.visible = True
Set xlbook2 = xlapp2.Workbooks.Open("C:dossier2fichier2.xls")
Set xlsheet2 = xlbook2.Worksheets(1)

Set selection2 = xlsheet2.range("A1:D41")
Set selection = xlsheet.range("A2")
selection2.copy selection

xlappl2.quit

Set nxlsheet = xlsheet.name("test2.xls")
xlbook.saveas("c:dossier3fichier3.xls")
xlbook.close
xlapp.quit
-------------------------------------------------------

Avez vous une idée pour remedier à mon petit problème si toutefois le
copier
coller est possible vbscript ?
Merci de vos réponses




Avatar
berthelagrandepatte
j'avais, avant de poster cette demande, selectionné une plage identique de
cellules et le resultat fut identique avec le meme message d'erreur.

Merci


Bonjour,

Ton plantage est du au fait que tu cherches à coller une plage de cellules
source, d'une dimension différente de la plage de destination.
Un peu comme quand tu fais à la main un copier-coller de 4 cellules, en ne
sélectionnant que deux cellules par ex.

Yannick SCHAPPLER



"berthelagrandepatte" a
écrit dans le message de news:

Bonjour,

Je dois créer un script qui doit copier/coller des données d'un fichier
excel vers un autre sachant que les données du fichier source doivent
remplacer les données du fichier cible. Ce n'est pas un rajout de
données.Une
fois le copier/coller terminé, le script enregistre le fichier sous un
autre
nom.
J'ai commencé mon script et il bloque à selection2.copy selection en
precisant que "la methode copy de la classe range a échoué".

-----------------------
Option Explicit

Dim xlapp, xlbook, xlsheet, xlapp2, xlbook2, xlsheet2, selection,
selection2, nxlsheet, cellule


Set xlapp = CreateObject("Excel.Application")
xlapp.visible = True
Set xlbook = xlapp.Workbooks.Open("C:dossierfichier1.xls")
Set xlsheet = xlbook.WorkSheets("test")


Set xlapp2 = CreateObject("Excel.Application")
xlapp2.visible = True
Set xlbook2 = xlapp2.Workbooks.Open("C:dossier2fichier2.xls")
Set xlsheet2 = xlbook2.Worksheets(1)

Set selection2 = xlsheet2.range("A1:D41")
Set selection = xlsheet.range("A2")
selection2.copy selection

xlappl2.quit

Set nxlsheet = xlsheet.name("test2.xls")
xlbook.saveas("c:dossier3fichier3.xls")
xlbook.close
xlapp.quit
-------------------------------------------------------

Avez vous une idée pour remedier à mon petit problème si toutefois le
copier
coller est possible vbscript ?
Merci de vos réponses









Avatar
bayosky
Dans le message ,
berthelagrandepatte a


Set selection2 = xlsheet2.range("A1:D41")
Set selection = xlsheet.range("A2")
selection2.copy selection




Cette syntaxe m'étonne ...

ne serait-ce pas

selection2.copy
' suivi de
selection.paste

???

HB