Mots-Clés pour faire recherche

Signaler
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Bonjour a tous le monde!

voilà, je souhaiterais, dans l'évenement click d'un bouton, faire une sauvegarde du contenu d'une listbox dans un fichier .txt (pour faire la sauvegarde pas de souci)

Mais, le fichier txt serais créé au moment du click et il serait nommé en fonction du numéro de semaine à laquelle on fait le click (je sais que je doit utiliser datepart (WW))

ce que je ne sais pas c'est comment (et est ce possible?) créer ce fichier lors du click...
ne trouvant pas sur le forum, je me dis que je ne dois pas introduire les bons mots clés... quelqu'un peut-il m'aiguiller?

Merci!

15 réponses

Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Je n'ai pas bien compris la question, mais si il s'agit de créer un fichier texte portant le nom de la semaine, alors:

Private Sub CommandButton1_Click()

Dim Fichier as String
Dim AdressFile as String
Dim Mois As String




Mois = Str(DatePart("ww", Date))





    Fichier = ""
    Fichier = Dir("C:" & Mois & ".txt", vbNormal)
   
   If Fichier = "" Then
    Drive = "C:"
    AdressFile = "C:" & Mois & ".txt"
    ChDrive Drive
    Fichier = AdressFile
   End If





    Open Fichier For Output As #3
   
    '************************************************
    '            TRAITEMENT                         *
    '************************************************
   
    Close 3
End Sub



Jimy

Le savoir n'est accessible que si l'on admet son ignorance.... 
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Merci Jimy!

c'est exactement ce que je recherchais!
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

euh... je reviens vers vous!

le code fonctionne super, il crée mon fichier et sauvegarde bien le contenu de la listbox que je voulais sauvegarder... mais j'ai un petit souci:

lorsque je rempli de nouveau ma listbox et que je click à nouveau sur le bouton, il ne sauvegarde plus les données à la suite des précédente...

la "sauvegarde" dans mon fichier .txt ne se fait qu'avec le premier click, pas les suivants... est-ce normal?

voici mon code: (et surtout le tient Jimy!)

Private Sub ValiderVente_Click()

'création du fichier .txt



Dim Fichier As String
Dim AdressFile As String
Dim Mois As String



Mois = Str(DatePart("ww", Date))



    Fichier = ""
    Fichier = Dir("d:\profiles\beufab\Bureau\Images" & "VenteSemaine" & Mois & ".txt", vbNormal)
   
   If Fichier = "" Then
    Drive = "D:"
    AdressFile = "d:\profiles\beufab\Bureau\Images" & "VenteSemaine" & Mois & ".txt"
    ChDrive Drive
    Fichier = AdressFile
   End If

'Sauvegarde des données de la listbox dans le fichier .txt

Dim FileNbr As Integer
Dim Cmpt As Integer
FileNbr = FreeFile
Open Fichier For Append As FileNbr
For Cmpt = 0 To (ListeVente.ListCount - 1)
Print #FileNbr, ListeVente.List(Cmpt)
Next Cmpt
Close #FileNbr

End Sub
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Je bloque,

je ne comprend pas, si je ne me sert pas du code pour créer le fichier .txt,

le reste du code fonctionne parfaitement, il majoute a la suite l'un de lautre mes articles dans le fichiers txt que j'ai créé.

Mais si je l'inclus dans le code pour créer le fichier au moment du click (comme dans le post précédent), et ben ca fonctionne plus...

il ne m'encode dans le fichier que les articles validés au premier click, pas les suivants... bizare....
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
C'est normal, le code que j'ai posté recherche l'existance du dit fichier .txt, s'il n'existe pas, il le creer, mais si il existe, l'ecriture ecrase la précedente!!!

Pour eviter cela, un petit bout de code pour scanner le fichier existant et ecrire à la suite est nécessaire. A vous de jouer!

Petit tuyau:
Evitez les chemin d'acces figé genre: 
    AdressFile = "d:\profiles\beufab\Bureau\Images" & "VenteSemaine" & Mois & ".txt"

Votre appli ne pourrais pas fonctionner sur un autre PC
Essayer plutot de declarer une variable (Dim LienFile as String) 
    AdressFile = LienFile  & " 
" & Mois & ".txt"

egale à ce même chemin que vous iriez lire dans un fichier txt ou ini, plus facile à modifier que de reprendre le code.

Jimy

Pensez: Réponse acceptée
------------------------------------------------------------------------------------------
Citation:  Le savoir n'est
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Essayez aussi:

Open Fichier For Input As FileNbr

au lieu de
Open Fichier For Append As FileNbr

Jimy

Pensez: Réponse acceptée
------------------------------------------------------------------------------------------
Citation:  Le savoir n'est
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Allez voir mon code au lien ci-dessous, il est truffé de gestion de fichier txt, vous devriez trouver votre bonheur.
http://www.vbfrance.com/codes/GESTION-HEURE-GARDE_45825.aspx

PS:N'hésitez pas à le noter...

Jimy

Pensez: Réponse acceptée
------------------------------------------------------------------------------------------
Citation:  Le savoir n'est accessible que si l'on admet son ignorance.
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Merci pour le coup de main, je vais essayer de trouver pour le scan...!

Mais dans mon cas (je ne sais pas si ca change quelque chose)
les données ne sont pas écrasées... elles ne sont simplement pas retranscrites!

exemple:
le fichier n'existe pas. je remplis la listbox avec la ligne suivante: "pomme"
je click sur le bouton, il crée bien le fichier et il inscrit bien "pomme" dans ce dernier.

Puis (ma listbox est vide) je remplis la listbox avec "poire"
mais lorsque je clique il n'ecrase pas "pomme" pour mettre "poire"... il reste sur pomme et n'inscrit pas du tout poire!
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Jimmy, si je retire le bloc "if" de ton code pour créer le fichier et bien mon souci disparait et tout fonctionne nickel!!

est-ce que ca pose un probleme de ne pas avoir ce bloc "if"?

j'ai donc le code suivant (1ère partie, la seconde est identique!)

    Fichier = ""
    Fichier = Dir("d:\profiles\beufab\Bureau\Images" & "VenteSemaine" & Mois & ".txt", vbNormal)
   
  
    Drive = "D:"
    AdressFile = "d:\profiles\beufab\Bureau\Images" & "VenteSemaine" & Mois & ".txt"
    ChDrive Drive
    Fichier = AdressFile
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Je n'ai pas fait l'essai, mais si ça marche comme tu le dit, es tu sure qu'il va le creer si il n'existe pas...

De plus, si tu enlève le 'If', le code pour rechecher l'existance du fichier (ci-dessous), est unitile puisque tu le recreer systématiquement!

    Fichier = ""
    Fichier = Dir("d:\profiles\beufab\Bureau\Images" & "VenteSemaine" & Mois & ".txt", vbNormal)

As-tu besoin de garder l'historique des clic precedent? Dans le cas présent, c'est tout le fichier txt qui est écrasé, mais tu ne garde dans le fichier txt, que le dernier clic.

Tiens moi au courant

Jimy

Pensez: Réponse acceptée
'**********************************************
Citation:  Le savoir n'est accessible que s'il on admet son ignorance
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Bonjour jimy,

concernant mon code, j'ai repris celui proposé dans l'autre post (celui qui fait double emploi avec celui-ci...)

Et concernant votre idée pour les chemins d'accès, c'est une très bonne idée, mais (excusez-moi, mais je suis vraiment très nul...) je ne comprend pas ce que je dois faire pour ne pas devoir préciser tout le chemin d'accès et que le programme le retrouve lui meme...
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Salut Jimy!

j'ai utilisé "ThisWorkBook.Path" pour ne plus préciser le chemin d'accès...
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Et bien, puisque tu es dans la gestion des fichiers txt, profites-en pour creer un fichier txt (ex: Config.txt)où sera noté le chemin d'acces:

d:\profiles\beufab\Bureau\Images\

Lors de l'ouverture de ton appli, lit ce fichier txt (Config.txt) et place le chemin lu dans un String,(ex: Lien ) et donc dans ton code, utilise cette variable, plutot que d'écrire ton chemin en tout lettre.

Lien= d:\profiles\beufab\Bureau\Images\

Cela a pour avantage de pouvoir changer le chemin d'accés à tes fichier txt, sans avoir à reprendre ton code, simplement en modifiant le fichier Config.txt

Jimy

Pensez: Réponse acceptée
'**********************************************
Citation:  Le savoir n'est accessible que s'il on admet son ignorance
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
"ThisWorkBook.Path", et le chemin d'acces de l'application, cela fonctionnera, mais tes fichiers txt devront toujours être dans le même dossier que l'application..c'est une question de choix!

Jimy

Pensez: Réponse acceptée
'**********************************************
Citation:  Le savoir n'est accessible que s'il on admet son ignorance
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Salut Jimy!

Ben disons que dans un premier temps, ça me va très bien, parceque je travaille sur deux ordinateurs et tous mes fichiers sont dans le meme dossier qui voyage sur clé usb...

et puis, je pense qu'il sera plus simple (pour moi) de laisser les fichiers dans des sous-dossiers, tous regroupé dans un meme dossier...

encore merci pour toute ton aide!

je vais maintenant passer à l'étape suivante... récupérer des données se trouvant dans un fichier txt pour les inclure dans des labels et textbox...!

je crois que je vais aller voir le lien que tu m'as laissé avec ton code... je devrai certainement y trouver mon bonheur!