Enregistrer sous un fichier Excel à partir de VB [Résolu]

Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
- - Dernière réponse : cs_Ma2004
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
- 23 juil. 2004 à 12:25
Hello !

J'ai un fichier Excel qui me sert de modèle et dans lequel des résultats sont insérés lorsque l'utilisateur du prog VB clique sur "Validez". Je voudrais donc enregistrer ce fichier avec les résultats mais sous un autre nom pour ne pas "endommager" le modèle.

Jusque là, j'y arrive.

Mais je voudrais changer de nom à chaque nouvel enregistrement de résultats et là je n'y arrive pas.

Par exemple mon modèle s'appelle "model.xls". Il faudrait que la 1ère fois que le user affiche les résultats dedans, le fichier s'enregistre sous, automatiquement en "model1.xls". La seconde fois, sous "model2.xls", la 3e fois sous "model3.xls" .......

Je suppute qu'il faille utilise un do avec un while ou un until mais ma boucle ne fonctionne et en plus fait planter le programme.

Un petit d'aide ne serait pas de refus !!

D'avance merci.
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
3
Merci
C bon j'ai trouvé l'erreur !!

If Dir("c:\model" & nom_fichier & ".xls" ) <> "" Then

Je n'avais pas spécifié le type de fichier !
Maintenant tout fonctionne sur des roulettes !

Merci quand même à toi.

Je vais essayer aussi avec les FlieListbox.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
0
Merci
:big) YOYO ;)

Salut,

A mon avis il faut que tu te serves d'une variable globale i(déclarée en haut de la feuille de code) par exemple un entier.
Et aussi faire une fonction lorsque l'utilisateur enregistre comme ça tu incrémentes ta variable de 1 à chaque passage et ça donnerai :

"model" & Cstr(i) & ".xls"

J'espère que ça t'aidera.

YOYO, @+.
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
0
Merci
Merci d'avoir réppondu, c'est sympa.

Le hic, c'est que cette méthode ne fonctionne que le temps que le user utilise le logiciel. En fait, je voudrais que mon prog scanne le disque dur dans un répertoire défini (juste dans c:\) et voit à quel numéro sont arrivés les enregistrements de fichiers model_numéro.xls. Et ajouter la nouvelle sauvegarde à la suite en implémentant numéro. Ainsi même si le user éteint le prog ou le PC, l'enregistrement se fera toujours à la suite.

Mais merci quand même pour ton aide.
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
0
Merci
Merci d'avoir réppondu, c'est sympa.

Le hic, c'est que cette méthode ne fonctionne que le temps que le user utilise le logiciel. En fait, je voudrais que mon prog scanne le disque dur dans un répertoire défini (juste dans c:\) et voit à quel numéro sont arrivés les enregistrements de fichiers model_numéro.xls. Et ajouter la nouvelle sauvegarde à la suite en implémentant numéro. Ainsi même si le user éteint le prog ou le PC, l'enregistrement se fera toujours à la suite.

Mais merci quand même pour ton aide.
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
0
Merci
Merci d'avoir réppondu, c'est sympa.

Le hic, c'est que cette méthode ne fonctionne que le temps que le user utilise le logiciel. En fait, je voudrais que mon prog scanne le disque dur dans un répertoire défini (juste dans c:\) et voit à quel numéro sont arrivés les enregistrements de fichiers model_numéro.xls. Et ajouter la nouvelle sauvegarde à la suite en implémentant numéro. Ainsi même si le user éteint le prog ou le PC, l'enregistrement se fera toujours à la suite.

Mais merci quand même pour ton aide.
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
0
Merci
Merci d'avoir réppondu, c'est sympa.

Le hic, c'est que cette méthode ne fonctionne que le temps que le user utilise le logiciel. En fait, je voudrais que mon prog scanne le disque dur dans un répertoire défini (juste dans c:\) et voit à quel numéro sont arrivés les enregistrements de fichiers model_numéro.xls. Et ajouter la nouvelle sauvegarde à la suite en implémentant numéro. Ainsi même si le user éteint le prog ou le PC, l'enregistrement se fera toujours à la suite.

Mais merci quand même pour ton aide.
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
0
Merci
Merci d'avoir réppondu, c'est sympa.

Le hic, c'est que cette méthode ne fonctionne que le temps que le user utilise le logiciel. En fait, je voudrais que mon prog scanne le disque dur dans un répertoire défini (juste dans c:\) et voit à quel numéro sont arrivés les enregistrements de fichiers model_numéro.xls. Et ajouter la nouvelle sauvegarde à la suite en implémentant numéro. Ainsi même si le user éteint le prog ou le PC, l'enregistrement se fera toujours à la suite.

Mais merci quand même pour ton aide.
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
0
Merci
:big) YOYO ;)

Dans ce cas il te faut une FileListBox (FLB) sur une de tes form et la même variable globale que précédemment (i as Integer).
Et tu mets au démarrage :

FLB.Path = "C:"
FLB.Pattern = "*.xls"
i = FLB.ListCount

et après tu fais comme je t'ai dit avant pour la sauvegarde.
Par contre pour que ça fonctionne, il ne faut qu'il y ait que des fichiers excel du type que tu veux (model_#.xls) sinon le nombre sera faussé.

Voilà.

YOYO, @+.
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
0
Merci
Ok, je vais essayer ce que tu m'as dit mais je dois d'abord apprendre à utiliser les FileListBox.
D'après toi, qu'est ce qui cloche avec le code suivant ?
Normalement je remplace le for par un do while test=1. Il ne rentre jamais dans la condition du if, il passe tout de suite au else, alors que ke fichier "model1" existe. Comprends pas. . .

test = 1
nom_fichier = 1
MsgBox "passe ici 1"

For h = 0 To 5
If Dir("c:\model" & nom_fichier) <> "" Then
nom_fichier = nom_fichier + 1
MsgBox "nom=" & nom_fichier
Else:
test = 0
MsgBox "test=" & test
End If
Next

MsgBox " passe ici 2"

AppliExcel.ActiveWorkbook.SaveAs ("c:\model" & nom_fichier)

En tout cas, merci pour ton aide.