Enregistrer sous un fichier Excel à partir de VB

Résolu
cs_Ma2004 Messages postés 150 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 22 octobre 2008 - 23 juil. 2004 à 09:14
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.

9 réponses

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
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.
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
23 juil. 2004 à 09:33
: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, @+.
0
cs_Ma2004 Messages postés 150 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 22 octobre 2008
23 juil. 2004 à 10:52
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.
0
cs_Ma2004 Messages postés 150 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 22 octobre 2008
23 juil. 2004 à 10:53
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Ma2004 Messages postés 150 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 22 octobre 2008
23 juil. 2004 à 10:54
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.
0
cs_Ma2004 Messages postés 150 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 22 octobre 2008
23 juil. 2004 à 10:54
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.
0
cs_Ma2004 Messages postés 150 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 22 octobre 2008
23 juil. 2004 à 10:57
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.
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
23 juil. 2004 à 11:12
: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, @+.
0
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:04
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.
0
Rejoignez-nous