IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] enregistrement fichier txt - date


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut [VBA-E] enregistrement fichier txt - date
    Bonjour,

    Je souhaite enregistrer une colonne excel de date dans un fichier texte.
    Pour resoudre le probleme de date francaise - americaine, j utilise la fonction format.

    J avais un probleme pour les 12 premiers que je resouds comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                    While Not n = 31
                        If n <= 12 Then
                            Cells(i, "A") = n & "-" & mes & "-" & Anom
                        Else
                            Cells(i, "A") = mes & "-" & n & "-" & Anom
                        End If
                        Cells(i, "A") = Format(Cells(i, "A"), "dd/mm/yyyy")
                        i = i + 1
                        n = n + 1
                    Wend
    Mon probleme est lorsque je veux sauver le fichier et fermer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                        ActiveWorkbook.SaveAs Filename:="D\text.txt" _
                        , FileFormat:=xlText, CreateBackup:=False
    - Si je mets il ne me garde pas les bonnes dates...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    1/10/1950
    1/11/1950	
    1/12/1950	
    13/01/1950	
    14/01/1950
    meme avec ma condition...

    - Si je ne le mets pas
    Excel me demande si je souhaite garder les changements efectués, et conserver le format text
    et si je reponds oui aux 2 : c´est tout bon! (je veux avec les 0 : 01/02/2006 exactement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    10/01/1950	
    11/01/1950	
    12/01/1950	
    13/01/1950
    Mon probleme est que je ne comprends pas pourquoi avec le saveas text il ne me garde pas les infos... je voudrais que ces reponses "ok" soient automatiques mais je ne vois pas comment...

    pour votre aide!

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(Cells(i, "A"), "dd\/MM\/yyyy")
    mm étant érservé aux minutes

  3. #3
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Merci pour ta réponse mais ca ne change pas...
    Si je sauve encore une fois et sans changer le format, c´est bon mais sinon j´ai la meme chose...

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Je m'excuse je n'avais pas bien lu toute la question... honte sur moi...

    Tu as bien mis toutes les valeurs pour tous les parametres de la méthode SaveAs ?

  5. #5
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Ben je l utilise comme ca...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveWorkbook.SaveAs Filename:="D\text.txt", FileFormat:=xlText, _
                                    CreateBackup:=False
    J´ai toujours pas resolu, je comprends pas bien comment faire...

  6. #6
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    J ai l impression que le probleme vient du fait que je veuille fermer le fichier texte, si jutilise close ca marche pas, et si je le fais a la main, excel me demande de garder le format et ca marche.

    Y a t il une methode a ajouter pour forcer encore une fois le format texte lorsqu´on ferme le fichier?

    Merci!

  7. #7
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Citation Envoyé par Lnmex
    J ai l impression que le probleme vient du fait que je veuille fermer le fichier texte, si jutilise close ca marche pas, et si je le fais a la main, excel me demande de garder le format et ca marche.

    Y a t il une methode a ajouter pour forcer encore une fois le format texte lorsqu´on ferme le fichier?

    Merci!
    Bonjour,

    As-tu testé la méthode de suppression des messages d'alerte (DisplayAlerts) avant la fermeture ?

    Essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.DisplayAlerts = False 'Suppression des messages d'alerte
    ActiveWorkbook.SaveAs Filename:="D\text.txt", FileFormat:=xlText, CreateBackup:=False
    Application.DisplayAlerts = True 'Retour à la normale
    +

    Théo
    Forums VB : lire la notice
    La touche existe pour être utilisée
    Pensez au tag
    Pour ceux n'ayant pas l'aide installée :
    - Aide MSDN pour VB6
    - Aide MSDN pour VBA
    Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.

  8. #8
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Plutôt que d'enregistrer le fichier Excel en format texte, essaie plutôt d'enregistrer les données du fichier quitte à invoquer une autre boîte de dialogue que SaveAs pour sélectionner le chemin et le nom du fichier.

    Je regarde ça et te donne des nouvelles plus tard. Pour tout de suite, les enfants arrivent de l'école...

    @+

  9. #9
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Merci, j aurais appris un truc en plus ca fait pas longtemps que je "programme" en vba

    Mais... j ai toujours le probleme que pour les 12 premieres dates et en plus il me garde pas les 0... ah lala...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    1/9/1950	
    1/10/1950	
    1/11/1950	
    1/12/1950	
    13/01/1950	
    14/01/1950	
    15/01/1950

    Sinon je vais finir par ecrire a la main mais j ai 20000 cellules alors c est pas genial!

  10. #10
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par zazaraignée
    Salut

    Plutôt que d'enregistrer le fichier Excel en format texte, essaie plutôt d'enregistrer les données du fichier quitte à invoquer une autre boîte de dialogue que SaveAs pour sélectionner le chemin et le nom du fichier.

    Je regarde ça et te donne des nouvelles plus tard. Pour tout de suite, les enfants arrivent de l'école...

    @+

    Merci, je vais regarder dans cette voie la...

    J´ai le temps, chui au mexique alors ici il est que 10h10 du matin

  11. #11
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Hop ca marche!

    Alors merci a tous les 2 car c´est grace à vous que j ai eu l idée!

    Donc pour les dates je force le format sans faire de cas particulier pour les 12 premiers jours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Cells(i, "A") = mois & "-" & jour & "-" & annee
    Cells(i, "A").NumberFormat = "@"
    Cells(i, "A") = Format(Cells(i, "A"), "dd\/mm\/yyyy")
    et pour enregistrer j enleve les messages d erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ActiveWorkbook.SaveAs Filename:="D:\HELENE\bandas\macros\macros\0018140.txt", FileFormat:=xlText, CreateBackup:=True
     
    Application.DisplayAlerts = False 
    ActiveWorkbook.Close
    Et j ai bien ce que je veux avec les zeros, automatique et tout!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    08/01/1950	
    09/01/1950	
    10/01/1950	
    11/01/1950	
    12/01/1950	
    13/01/1950	
    14/01/1950

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Au lieu de
    Cells(i, "A") = Format(Cells(i, "A"), "dd/mm/yyyy")
    Mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                        Cells(i, "A") = Format(cdate(Cells(i, "A")), "dd/mm/yyyy")
    Tu dis

    A+

    Edit
    Nos messages se sont téléscopés mais... n'est-ce pas plus simple ?

  13. #13
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Merci!

    En effet, c´est plus simple!

    Encore merci a tous pour vos reponses!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA DAO]Enregistrer un champs Date
    Par Bejarid dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/09/2008, 14h24
  2. [Excel - VBA] lecture de fichier txt
    Par simstef dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/06/2007, 16h00
  3. [VBA-E] Enregistrement Fichier
    Par LAETIAZ dans le forum Macros et VBA Excel
    Réponses: 30
    Dernier message: 07/04/2007, 15h21
  4. [VBA-E] Enregistrement fichier Excel
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/08/2006, 09h55
  5. [VBA-E]import fichier TXT et séparateur
    Par arkazar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/04/2006, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo