Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses

1 2
Avatar
aski
Bonjour Erick,

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



Pour de tels tableaux, j'utilise un fichier texte avec :
- séparateur point-virgule entre chaque cellule d'une ligne
- fin de ligne par VbCrLf
J'enregistre le fichier avec l'extension xls.
--
Cordialement
Aski
Avatar
Erick
Hi Aski,

Merci pour ta réponse si rapide mais malheureusement, je ne sais pas plus
gérer les fichiers textes que les fichiers xls!
Je voudrais pouvoir adresser les valeurs de n directement dans les cellules
du fichier .xls.

Mais je ne sais même pas comment créer ce fichier xls et comment le placer
dans le répertoire souhaité.....
De même, la dénomination des colonnes dans Excel m'interpelle car comment
traduire la 27ème colonne par AA....etc?

Merci

Erick


"aski" wrote in message
news:
Bonjour Erick,

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



Pour de tels tableaux, j'utilise un fichier texte avec :
- séparateur point-virgule entre chaque cellule d'une ligne
- fin de ligne par VbCrLf
J'enregistre le fichier avec l'extension xls.
--
Cordialement
Aski


Avatar
LE TROLL
Bonjour,

Voici, sur la base de ce qu'a écrit "Aski", et
si j'ai tout compris ?
Tout s'enregistre bien, mais tu as l'ensemble des
cellules d'une ligne, dans une même cellule ?
Attention, ce fichier ne fait qu'écrire en
détruisant le fichier du même nom au même endroit,
déjà présent, s'il y a lieu, évidemment :o)
Je crois de mémoire, que si tu ne lances pas le
fichier directement (en cliquant dessus), tu dois
avoir dans Excel la possibilité du lui indiquer le
séparateur de cellules (ici = ";"), faudrait dans
ce cas, activer cette option avant d'appeler le
fichier...
Je vais voir s'il y a quelque chose de particulier
pour les format texte csv, que je ne connais pas
en fait. Pour ton vbcrlf à la fin (saut de ligne
et retour au début), ça se fait automatiquement
par le fichier texte, tel que je l'ai écrit :o)


Sub Form_Load()
Dim colonne As Long
Dim ligne As Long
Dim pointeur As Long
Dim faute As String
Dim une_ligne As String
'Pour mon test, laisser ainsi
'Dim ta_cellule(41, 41) As String
'For ligne = 1 To 40
'For colonne = 1 To 40
'ta_cellule(colonne, ligne) = colonne * ligne
'Next colonne
'Next ligne
'
ChDrive App.Path
ChDir App.Path
pointeur = FreeFile
On Error GoTo erreur
Open "nom_de_fichier.xls" For Output As pointeur
For ligne = 1 To 40
une_ligne = ""
For colonne = 1 To 40
une_ligne = une_ligne &
ta_cellule(colonne, ligne) & ";"
Next colonne
Print #pointeur, une_ligne
Next ligne
Close pointeur
Exit Sub
erreur:
Close pointeur
faute = " ERREUR : Enrégistrement fichier " &
vbLf
faute = faute & Err.Number & vbLf
faute = faute & Err.Description & vbLf
faute = faute & Err.Source & vbLf
On Error Resume Next
MsgBox faute
End Sub


--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"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
webmaster.progitek
Solution Simple :
Faire un opendatabase en séctionant comme type base EXCEL
Créer une table avec pour rubrique les colonnes Excel
Enregistrer classiquement vos données .addnew puis .update
Fermer la table.

-----------------------------------------------------
Windows Vista pour les non-initiés complique le partage des fichiers et des
répertoires.

L'exemple que vous trouverez sur notre site résoud ce problème auquel nous
sommes tous confrontés.
"Pas à Pas ou comment partager totalement et aisément un disque sous Windows
Vista"
Consultable http://www.progitek.com/partage-vista.htm
Editable en PDF en téléchargeant partage-vista.pdf sur www.progitek.com
Editable avec Word en téléchargeant partage-vista.doc sur www.progitek.com
Avatar
aski
Hi,

Voici un exemple de code dans lequel j'ai utilisé la tabulation entre 2
éléments (de préférence au point-virgule).
Colle le code et déclare les variables.

Const z As String = vbTab

noFichier = FreeFile

Open NomF For Output As #3
For j = 1 To nbLignes
For i = 1 To nbColonnes
Print #noFichier , Element(i,j); z;
Next i
Print #noFichier,
Next j
Close noFichier

--
Aski

"Erick" a écrit dans le message de groupe de discussion
: yC5Gj.110216$
Hi Aski,

Merci pour ta réponse si rapide mais malheureusement, je ne sais pas plus
gérer les fichiers textes que les fichiers xls!
Je voudrais pouvoir adresser les valeurs de n directement dans les
cellules du fichier .xls.

Mais je ne sais même pas comment créer ce fichier xls et comment le placer
dans le répertoire souhaité.....
De même, la dénomination des colonnes dans Excel m'interpelle car comment
traduire la 27ème colonne par AA....etc?

Merci

Erick


"aski" wrote in message
news:
Bonjour Erick,

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



Pour de tels tableaux, j'utilise un fichier texte avec :
- séparateur point-virgule entre chaque cellule d'une ligne
- fin de ligne par VbCrLf
J'enregistre le fichier avec l'extension xls.
--
Cordialement
Aski






Avatar
Em
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
Em
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
Un grand merci à vous tous pour vos solutions.
J'essaierai de les mettre en pratique dès que possible.
Au plaisir...

Erick


"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
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
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
















1 2