Export de donnée d'un classeur à un autre => supression fichier ?

Résolu
MrZurg12 Messages postés 15 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 20 juillet 2012 - 29 mai 2012 à 17:09
MrZurg12 Messages postés 15 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 20 juillet 2012 - 29 mai 2012 à 17:58
Bien le bonjour !

J'ai un légèr problème dans mon code, et, n'étant pas super calé en vba, je ne vois pas du tout d'où ça peut venir.
Je cherche à prendre des valeurs d'un classeur, et les copier dans un autre. En gros, c'est de l'export de données d'un classeur à un autre.

Alors le truc c'est que ma valeur est copiée, no problemo, mais par contre le fichier depuis lequel on extrait la valeur n'est plus ouvrable par la suite... Ce qui est bien dommage !
J'ai trouvé ce code sur le net, et je me demande si le problème ne viendrait pas de "Set xls = Nothing"

Public Sub Qexport_test()
Dim xls As Object        ' déclaration d'une variable objet de type classeur Excel
Dim var1 As String

Set xls = GetObject("monfichier.xlsx")   'instanciation de l'objet (qui devient ici le fichier excel indiqué)

'je rentre une valeur dans mon fichier, histoire de dire
xls.Worksheets(1).Range("B6").Value = "1"

' import de données: on choisit les valeurs qui nous intéresse
var1 = xls.Worksheets(1).Range("C2").Value

'on met ces valeurs dans la cellule de notre fichier
Worksheets(2).Range("B2").Value = var1

xls.Save
Set xls = Nothing

End Sub


Merci de votre aide !
Z

4 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
29 mai 2012 à 17:46
Je pilote excel depuis... excel :) donc vba


Arfff ! Ta méthode est donc bizarre !

Set xls = Workbooks("monfichier.xlsx") 


suffit à récupérer le fichier donc plus besoin de tout le reste !

Par contre il serait preferable de dimensionner ta variable comme suit :

Dim xls As Workbook


évidemment tout ceci suppose que "monfichier.xlsx" à été préalablement ouvert

A+
3
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
29 mai 2012 à 17:17
Salut,

peut être est-ce du au fait que tu ne ferme pas le fichier ???

essai d'ajouter
Xls.close
apres
xls.save
je dirait même que

Xls.close True
a la place de
xls.save
serait plus sure.

Sinon tu pilote excel depuis quel langage ?

A+
0
MrZurg12 Messages postés 15 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 20 juillet 2012
29 mai 2012 à 17:27
Salut bigfish,

Merci pour ta réponse, mais malheureusement ça ne change rien.
J'ai bien remplacé xls.save par xls.close TRUE, mais monfichier.xlsx ne s'ouvre toujours pas.
J'ai complêtement fermé excel (manuellement) après coup aussi, mais le fichier ne s'ouvre plus. Il m'ouvre Excel, mais sans aucun classeur ouvert.

Je pilote excel depuis... excel :) donc vba

Aurais-tu une autre idée ?

Merci,
Z
0
MrZurg12 Messages postés 15 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 20 juillet 2012
29 mai 2012 à 17:58
Merci bigfish, ça marche parfaitement!

Je n'utiliserai plus GetObject !
0
Rejoignez-nous