OVH Cloud OVH Cloud

Comment enregistrer des données dans un fichier excel?

17 réponses
Avatar
Erick
Bonjour,

Je ne possède que des notions de base de VB6.

Pour simplifier mon problème: imaginons un compteur de type

for ligne = 1 to 40
for col = 1 to 40
n = n+1
next col
next ligne

Je cherche un moyen d'enregistrer les 1600 valeurs de n dans 1600 cellules
d'un fichier excel qui devrait être nommé test.xls et sauvegardé dans le
répertoire c:\test\

Les valeurs de n étant disposées dans les colonnes de A à AN et les lignes
de 1 à 40

Pouvez-vous m'aider?

Un grand merci

7 réponses

1 2
Avatar
Erick
J'ai trouvé l'astuce: le programme fonctionne mais lorsque j'ouvre le
fichier test.xls, les feuilles sont cachées......
Comment les rendre visibles par défaut? Merci

Erick


"Erick" wrote in message
news:2VtHj.247577$
J'ai essayé ce code...malheureusement sans succès. Pourriez-vous encore
éclairer ma lanterne?

Private Sub Form_Load()

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Meric d'avance

Erick


"Mishell" wrote in message
news:
Bonjour.


Rendre visible une Instance de Microsoft Excel

Sub OpenXL()
Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
End Sub

Le fichier d'aide d'automatisation de Microsoft Office 2000 est
disponible sur
http://support.microsoft.com/kb/260410

Mishell


"Em" <no_spam> wrote in message
news:47e9747c$0$852$
j'ai oublier de préciser !

- la ligne xls_fichier.Save permet d'enregistrer les changements dans le
fichier
- par contre après une modif+enregistrement via VB, les feuilles du
classeurs sont par défaut masquées (je ne sais pas pourquoi), ce qui
n'enlève rien au bon fonctionnement du code; dans Excel, il faut donc
faire Fenetre -> Afficher pour visualiser les modifs

PS: si qqn sait comment faire pour que le classeur soit affiché par
défaut à l'ouverture dans Excel je suis preneur :o)!

--
Em
"Em" <no_spam> a écrit dans le message de news:
47e972dd$0$905$
cela peut se faire très rapidement

- créer un fichier xls vide à l'endroit désiré ex : c:test.xls
- ajouter au projet la référence aux objets Excel : Projet ->
Références -> cocher Microsoft Excel 10.0 object library
- et le code tient en quelques lignes (je vous laisse adapter ce qu'il
faut écrire à la place d'AZERTY):


Sub ECRIRE_DONNEES_XLS()
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Feuil1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing
End Sub




--
Em
"Erick" a écrit dans le message de news:
kv4Gj.162168$
Bonjour,

Je ne possède que des notions de base de VB6.

Pour simplifier mon problème: imaginons un compteur de type

for ligne = 1 to 40
for col = 1 to 40
n = n+1
next col
next ligne

Je cherche un moyen d'enregistrer les 1600 valeurs de n dans 1600
cellules d'un fichier excel qui devrait être nommé test.xls et
sauvegardé dans le répertoire c:test

Les valeurs de n étant disposées dans les colonnes de A à AN et les
lignes de 1 à 40

Pouvez-vous m'aider?

Un grand merci




















Avatar
Mishell
Private Sub Form_Load()
Path = "C:TEST.xls"

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.Workbooks.Open Path

Set xls_fichier = xlApp.ActiveWorkbook
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Mishell

"Erick" wrote in message
news:2VtHj.247577$
J'ai essayé ce code...malheureusement sans succès. Pourriez-vous encore
éclairer ma lanterne?

Private Sub Form_Load()

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Meric d'avance

Erick


"Mishell" wrote in message
news:
Bonjour.


Rendre visible une Instance de Microsoft Excel

Sub OpenXL()
Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
End Sub

Le fichier d'aide d'automatisation de Microsoft Office 2000 est
disponible sur
http://support.microsoft.com/kb/260410

Mishell


"Em" <no_spam> wrote in message
news:47e9747c$0$852$
j'ai oublier de préciser !

- la ligne xls_fichier.Save permet d'enregistrer les changements dans le
fichier
- par contre après une modif+enregistrement via VB, les feuilles du
classeurs sont par défaut masquées (je ne sais pas pourquoi), ce qui
n'enlève rien au bon fonctionnement du code; dans Excel, il faut donc
faire Fenetre -> Afficher pour visualiser les modifs

PS: si qqn sait comment faire pour que le classeur soit affiché par
défaut à l'ouverture dans Excel je suis preneur :o)!

--
Em
"Em" <no_spam> a écrit dans le message de news:
47e972dd$0$905$
cela peut se faire très rapidement

- créer un fichier xls vide à l'endroit désiré ex : c:test.xls
- ajouter au projet la référence aux objets Excel : Projet ->
Références -> cocher Microsoft Excel 10.0 object library
- et le code tient en quelques lignes (je vous laisse adapter ce qu'il
faut écrire à la place d'AZERTY):


Sub ECRIRE_DONNEES_XLS()
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Feuil1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing
End Sub




--
Em
"Erick" a écrit dans le message de news:
kv4Gj.162168$
Bonjour,

Je ne possède que des notions de base de VB6.

Pour simplifier mon problème: imaginons un compteur de type

for ligne = 1 to 40
for col = 1 to 40
n = n+1
next col
next ligne

Je cherche un moyen d'enregistrer les 1600 valeurs de n dans 1600
cellules d'un fichier excel qui devrait être nommé test.xls et
sauvegardé dans le répertoire c:test

Les valeurs de n étant disposées dans les colonnes de A à AN et les
lignes de 1 à 40

Pouvez-vous m'aider?

Un grand merci




















Avatar
Erick
Merci Mishell,

Lorsque je lance ton code, j'obtiens l'erreur suivante:

Compile error: user-defined type not define à la ligne: Static xlApp As
Excel.Application

Merci pour ton aide.

Erick


"Mishell" wrote in message
news:

Private Sub Form_Load()
Path = "C:TEST.xls"

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.Workbooks.Open Path

Set xls_fichier = xlApp.ActiveWorkbook
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Mishell

"Erick" wrote in message
news:2VtHj.247577$
J'ai essayé ce code...malheureusement sans succès. Pourriez-vous encore
éclairer ma lanterne?

Private Sub Form_Load()

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Meric d'avance

Erick


"Mishell" wrote in message
news:
Bonjour.


Rendre visible une Instance de Microsoft Excel

Sub OpenXL()
Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
End Sub

Le fichier d'aide d'automatisation de Microsoft Office 2000 est
disponible sur
http://support.microsoft.com/kb/260410

Mishell


"Em" <no_spam> wrote in message
news:47e9747c$0$852$
j'ai oublier de préciser !

- la ligne xls_fichier.Save permet d'enregistrer les changements dans
le fichier
- par contre après une modif+enregistrement via VB, les feuilles du
classeurs sont par défaut masquées (je ne sais pas pourquoi), ce qui
n'enlève rien au bon fonctionnement du code; dans Excel, il faut donc
faire Fenetre -> Afficher pour visualiser les modifs

PS: si qqn sait comment faire pour que le classeur soit affiché par
défaut à l'ouverture dans Excel je suis preneur :o)!

--
Em
"Em" <no_spam> a écrit dans le message de news:
47e972dd$0$905$
cela peut se faire très rapidement

- créer un fichier xls vide à l'endroit désiré ex : c:test.xls
- ajouter au projet la référence aux objets Excel : Projet ->
Références -> cocher Microsoft Excel 10.0 object library
- et le code tient en quelques lignes (je vous laisse adapter ce qu'il
faut écrire à la place d'AZERTY):


Sub ECRIRE_DONNEES_XLS()
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Feuil1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing
End Sub




--
Em
"Erick" a écrit dans le message de news:
kv4Gj.162168$
Bonjour,

Je ne possède que des notions de base de VB6.

Pour simplifier mon problème: imaginons un compteur de type

for ligne = 1 to 40
for col = 1 to 40
n = n+1
next col
next ligne

Je cherche un moyen d'enregistrer les 1600 valeurs de n dans 1600
cellules d'un fichier excel qui devrait être nommé test.xls et
sauvegardé dans le répertoire c:test

Les valeurs de n étant disposées dans les colonnes de A à AN et les
lignes de 1 à 40

Pouvez-vous m'aider?

Un grand merci
























Avatar
Mishell
Mets une référence à Microsoft Word dans ton Projet.


"Erick" wrote in message
news:WC4Ij.55688$
Merci Mishell,

Lorsque je lance ton code, j'obtiens l'erreur suivante:

Compile error: user-defined type not define à la ligne: Static xlApp As
Excel.Application

Merci pour ton aide.

Erick


"Mishell" wrote in message
news:

Private Sub Form_Load()
Path = "C:TEST.xls"

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.Workbooks.Open Path

Set xls_fichier = xlApp.ActiveWorkbook
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Mishell

"Erick" wrote in message
news:2VtHj.247577$
J'ai essayé ce code...malheureusement sans succès. Pourriez-vous encore
éclairer ma lanterne?

Private Sub Form_Load()

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Meric d'avance

Erick


"Mishell" wrote in message
news:
Bonjour.


Rendre visible une Instance de Microsoft Excel

Sub OpenXL()
Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
End Sub

Le fichier d'aide d'automatisation de Microsoft Office 2000 est
disponible sur
http://support.microsoft.com/kb/260410

Mishell


"Em" <no_spam> wrote in message
news:47e9747c$0$852$
j'ai oublier de préciser !

- la ligne xls_fichier.Save permet d'enregistrer les changements dans
le fichier
- par contre après une modif+enregistrement via VB, les feuilles du
classeurs sont par défaut masquées (je ne sais pas pourquoi), ce qui
n'enlève rien au bon fonctionnement du code; dans Excel, il faut donc
faire Fenetre -> Afficher pour visualiser les modifs

PS: si qqn sait comment faire pour que le classeur soit affiché par
défaut à l'ouverture dans Excel je suis preneur :o)!

--
Em
"Em" <no_spam> a écrit dans le message de news:
47e972dd$0$905$
cela peut se faire très rapidement

- créer un fichier xls vide à l'endroit désiré ex : c:test.xls
- ajouter au projet la référence aux objets Excel : Projet ->
Références -> cocher Microsoft Excel 10.0 object library
- et le code tient en quelques lignes (je vous laisse adapter ce
qu'il faut écrire à la place d'AZERTY):


Sub ECRIRE_DONNEES_XLS()
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Feuil1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing
End Sub




--
Em
"Erick" a écrit dans le message de news:
kv4Gj.162168$
Bonjour,

Je ne possède que des notions de base de VB6.

Pour simplifier mon problème: imaginons un compteur de type

for ligne = 1 to 40
for col = 1 to 40
n = n+1
next col
next ligne

Je cherche un moyen d'enregistrer les 1600 valeurs de n dans 1600
cellules d'un fichier excel qui devrait être nommé test.xls et
sauvegardé dans le répertoire c:test

Les valeurs de n étant disposées dans les colonnes de A à AN et les
lignes de 1 à 40

Pouvez-vous m'aider?

Un grand merci




























Avatar
Erick
Merci beaucoup pour ton aide. Tout est en ordre maintenant.

Erick


"Mishell" wrote in message
news:uw%
Mets une référence à Microsoft Word dans ton Projet.


"Erick" wrote in message
news:WC4Ij.55688$
Merci Mishell,

Lorsque je lance ton code, j'obtiens l'erreur suivante:

Compile error: user-defined type not define à la ligne: Static xlApp As
Excel.Application

Merci pour ton aide.

Erick


"Mishell" wrote in message
news:

Private Sub Form_Load()
Path = "C:TEST.xls"

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.Workbooks.Open Path

Set xls_fichier = xlApp.ActiveWorkbook
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Mishell

"Erick" wrote in message
news:2VtHj.247577$
J'ai essayé ce code...malheureusement sans succès. Pourriez-vous encore
éclairer ma lanterne?

Private Sub Form_Load()

Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Sheet1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing

End Sub

Meric d'avance

Erick


"Mishell" wrote in message
news:
Bonjour.


Rendre visible une Instance de Microsoft Excel

Sub OpenXL()
Static xlApp As Excel.Application

Set xlApp = Nothing
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
End Sub

Le fichier d'aide d'automatisation de Microsoft Office 2000 est
disponible sur
http://support.microsoft.com/kb/260410

Mishell


"Em" <no_spam> wrote in message
news:47e9747c$0$852$
j'ai oublier de préciser !

- la ligne xls_fichier.Save permet d'enregistrer les changements dans
le fichier
- par contre après une modif+enregistrement via VB, les feuilles du
classeurs sont par défaut masquées (je ne sais pas pourquoi), ce qui
n'enlève rien au bon fonctionnement du code; dans Excel, il faut
donc faire Fenetre -> Afficher pour visualiser les modifs

PS: si qqn sait comment faire pour que le classeur soit affiché par
défaut à l'ouverture dans Excel je suis preneur :o)!

--
Em
"Em" <no_spam> a écrit dans le message de news:
47e972dd$0$905$
cela peut se faire très rapidement

- créer un fichier xls vide à l'endroit désiré ex : c:test.xls
- ajouter au projet la référence aux objets Excel : Projet ->
Références -> cocher Microsoft Excel 10.0 object library
- et le code tient en quelques lignes (je vous laisse adapter ce
qu'il faut écrire à la place d'AZERTY):


Sub ECRIRE_DONNEES_XLS()
Set xls_fichier = GetObject("C:TEST.xls")
xls_fichier.Sheets("Feuil1").Cells(1, 1) = "AZERTY"
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing
End Sub




--
Em
"Erick" a écrit dans le message de news:
kv4Gj.162168$
Bonjour,

Je ne possède que des notions de base de VB6.

Pour simplifier mon problème: imaginons un compteur de type

for ligne = 1 to 40
for col = 1 to 40
n = n+1
next col
next ligne

Je cherche un moyen d'enregistrer les 1600 valeurs de n dans 1600
cellules d'un fichier excel qui devrait être nommé test.xls et
sauvegardé dans le répertoire c:test

Les valeurs de n étant disposées dans les colonnes de A à AN et les
lignes de 1 à 40

Pouvez-vous m'aider?

Un grand merci
































Avatar
parci
On Tue, 25 Mar 2008 22:54:02 +0100, "Em" <no_spam> wrote:

j'ai oublier de préciser !

- la ligne xls_fichier.Save permet d'enregistrer les changements dans le
fichier
- par contre après une modif+enregistrement via VB, les feuilles du
classeurs sont par défaut masquées (je ne sais pas pourquoi), ce qui
n'enlève rien au bon fonctionnement du code; dans Excel, il faut donc faire
Fenetre -> Afficher pour visualiser les modifs

PS: si qqn sait comment faire pour que le classeur soit affiché par défaut à
l'ouverture dans Excel je suis preneur :o)!



Pour afficher un classeur masqué avec ton exemple :

Sub ECRIRE_DONNEES_XLS()
Dim xls_fichier As Excel.Workbook
Set xls_fichier = GetObject("d:TEST.xls")
xls_fichier.Sheets(1).Cells(1, 1) = "AZERTY"
xls_fichier.Windows(1).Visible = True
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing
End Sub
Avatar
Erick
Merci Parci, problème résolu!

Erick

"parci" wrote in message
news:
On Tue, 25 Mar 2008 22:54:02 +0100, "Em" <no_spam> wrote:

j'ai oublier de préciser !

- la ligne xls_fichier.Save permet d'enregistrer les changements dans le
fichier
- par contre après une modif+enregistrement via VB, les feuilles du
classeurs sont par défaut masquées (je ne sais pas pourquoi), ce qui
n'enlève rien au bon fonctionnement du code; dans Excel, il faut donc
faire
Fenetre -> Afficher pour visualiser les modifs

PS: si qqn sait comment faire pour que le classeur soit affiché par défaut
à
l'ouverture dans Excel je suis preneur :o)!



Pour afficher un classeur masqué avec ton exemple :

Sub ECRIRE_DONNEES_XLS()
Dim xls_fichier As Excel.Workbook
Set xls_fichier = GetObject("d:TEST.xls")
xls_fichier.Sheets(1).Cells(1, 1) = "AZERTY"
xls_fichier.Windows(1).Visible = True
'Fermeture fichier
xls_fichier.Save
Set xls_fichier = Nothing
End Sub


1 2