adrienr11vdv
Messages postés99Date d'inscriptionjeudi 13 juillet 2006StatutMembreDernière intervention16 avril 2009
-
8 mars 2007 à 10:25
kamilia911 -
29 mai 2008 à 14:05
Bonjour à tous,
Je développe un projet en VB6
Je souhaite transférer le contenu d'un MSFlexGrid dans un fichier Excel. Jusque là tous va bien!!!
Mais au moment de sauvegarder mon fichier Excel j'ai l'erreur suivante:
Erreur d'exécution '1004':
la méthode de 'SaveAs' de l'objet '_Workbook' a échoué
Voici le bout de code:
'Objet excel
Dim XlApp As New Excel.Application
'Objet Classeur
Dim XlWorkBook As Excel.workbook
...
'Enregistrer sous le classeur
XlWorkBook.SaveAs ("C:\base données")
...
adrienr11vdv
Messages postés99Date d'inscriptionjeudi 13 juillet 2006StatutMembreDernière intervention16 avril 2009 8 mars 2007 à 10:46
Re-bonjour,
je te remercie de m'avoir répondu,
mais ça ne marche toujours pas
pourtant, j'ai bien rajouter l'extension mais j'ai toujours la même erreur.
'Enregistrer sous le classeur
XlWorkBook.SaveAs ("C:\Documents and Settings\stagiareit\nomfichier.XLS")
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 8 mars 2007 à 10:49
Salut,
Je suppose que C:\Documents and Settings\stagiareit\ est un répertoire valide?
Sinon il faudrait donne un pu plus de code, pour pouvoir mieux débugger
adrienr11vdv
Messages postés99Date d'inscriptionjeudi 13 juillet 2006StatutMembreDernière intervention16 avril 2009 8 mars 2007 à 11:31
Je vous remercie pour vos réponses mais ça ne marche toujours pas.
J'ai tout d'abord essayé de mettre en minuscule, ça ne change rien
J'ai essayé de faire ce que tu m'as proposé Drikce 06 et ça n'a pas l'air de fonctionner ou c'est moi qui n'est peu être pas tout bien fait
Je te montre le code:
Private Sub Command1_Click()
'Objet excel
Dim XlApp As New Excel.Application
'Objet Classeur
Dim XlWorkBook As Excel.workbook
Set XlApp = CreateObject("Excel.Application")
XlApp.Visible = True
colHeader = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y")
'Ouvre un classeur neuf
Set XlWorkBook = XlApp.Workbooks.Open("E:\base données\Code\MonFichier.xls")
'[...les mofid => Objets Worksheets... Ranges]
With grd_visu
For intRow = 0 To .Rows - 1
For intCol = 0 To .Cols - 1
XlApp.Range(colHeader(intCol) & (intRow + 1)).BorderAround Color:=vbBlack
XlApp.Range(colHeader(intCol) & (intRow + 1)) = .TextMatrix(intRow, intCol)
Next intCol
Next intRow
End With
'Enregistrer sous le classeur
XlWorkBook.SaveAs ("E:\base données\Code\MonFichier.xls")
'Sauvegarde le classeur
XlWorkBook.Close (True)
'Quitte l'application
XlApp.Quit
'Destruction des objets
Set XlApp = Nothing
Set XlWorkBook = Nothing
End Sub
enfin pour information, ma référence :
Microsoft Excel 2007 ObjectLibrary
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 8 mars 2007 à 11:44
Salut,
Premiere chose, si ton classeur ne change pas de nom, il est inutilse d'utiliser SaveAs L'instruction XlWorkBook.Close (True) devrait suffire.
Ensuite peu être (Mais rien n'est moins sûr) que Excel n'aime pas que tu appelle ton objet XlWorkBook , vu que c'est une constante déjà utilisée par Excel
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 8 mars 2007 à 11:48
Re.
Si tu ne changes pas de nom l'instruction XlWorkBook.Close (True) devrait suffire, le TRUE veut dire sauvegarder les modifications.
Et c'est le classeur qui est sauvegarder donc il est sauvegarder au même endroit qu il a été ouvert
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 8 mars 2007 à 11:48
Le chemin est le même donc il se sauve à l'endroit où tu l'as ouvert tout simplement avec Book.Close comme l'a dit jrivet. SaveAs sert uniquement à changer le nom du fichier ou le chemin!
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 8 mars 2007 à 11:49
C'est comme dans n'importe quel prog la différence entre enregistrer sous et enregistrer de même pour close quand tu quitte une appli il te demande d'enregistrer les modif ou non avec .Close = True cela enregistre les modifs!
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
adrienr11vdv
Messages postés99Date d'inscriptionjeudi 13 juillet 2006StatutMembreDernière intervention16 avril 2009 8 mars 2007 à 11:59
Private Sub Command1_Click()
'Objet excel
Dim xlApp As New Excel.Application
'Objet Classeur
Dim XlBook As workbook
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
colHeader = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y")
'Ouvre un classeur neuf
Set XlBook = xlApp.Workbooks.Open("E:\base données\Code\MonFichier.xls")
'Set XlBook = xlApp.Workbooks.Add
' [...les mofid => Objets Worksheets... Ranges]
With grd_visu
For intRow = 0 To .Rows - 1
For intCol = 0 To .Cols - 1
xlApp.Range(colHeader(intCol) & (intRow + 1)).BorderAround Color:=vbBlack
xlApp.Range(colHeader(intCol) & (intRow + 1)) = .TextMatrix(intRow, intCol)
Next intCol
Next intRow
End With
'Sauvegarde le classeur
XlBook.Close (True)
'Quitte l'application
xlApp.Quit
'Destruction des objets
Set xlApp = Nothing
Set XlBook = Nothing
End Sub
alors ça marche presque!!!
ça m'ouvre le classeur vide MonFichier.xls
ça copie bien les données a l'intérieur
Le programme s'arrête sans erreur sauf que lorsque je vais voir mon fichier,
il n'y a rien dedans
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 8 mars 2007 à 13:04
Set XlBook = xlApp.Workbooks.Add
Tu as ajouté un classeur tu n'en as pas ouvert un mets Set XlBook = xlApp.Workbooks.Open("E:\base données\Code\MonFichier.xls")
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas: