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 :

probleme enregistrement d'un classeur au format .txt [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut probleme enregistrement d'un classeur au format .txt
    Salut,

    dans le cadre d'un projet, je dois sauvegarder un classeur dont l'adresse et le nom sont variables à partir d'une macro qui est elle meme dans un autre classeur.

    ca a marché hier mais plus aujourd'hui et je ne trouve pas du tout (mais alors pas du tout )
    si quelqu'un peut y jeter un coup d'oeil!

    le classeur contenant les macros est: accueil.xls
    son adresse est variable

    le main.exe (voir la suite) est situé dans le meme dossier que accueil.xls

    le fichier a traité peut etre n'importe ou


    existencefichier: test l'existence du fichier (pas de moi)

    enregistrement: enregistre le fichier (ajoute aussi une colonne car j'aime les chips!)

    test: contient les appels à toutes mes subs et tout et tout

    main: ben le main

    ps: je dois enregistrer les fichiers car le programme main.exe les utilisent

    ps2: les quatres secondes servent à être sur que le main.exe à fini de s'executer

    ps3: si vous avez une meilleur idée pour ça, je prend( j'avais pensé à une boucle qui tant que existencefichier(resultat.txt) ne retourne pas TRUE, attend puis l'ouvre une fois qu'il est détécté mais si il y a mieux, )

    ps4: tout le reste du code marche, y compris le main.exe sauf le kill à la fin mais c'est normal, le classeur reste ouvert!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Function ExistenceFichier(sFichier As String) As Boolean
      ExistenceFichier = Dir(sFichier) <> ""
    End Function
     
    Sub enregistrement(adresseclasseuraccueuil As String, adressefichier As String)
     
    Dim nomfeuille As String
    Dim i As Integer
    Dim nombredeligneINTER As Long
     
     
    nombredeligneINTER = Sheets(1).Range("A1").End(xlDown).Row
     
    'insere une colonne avant la colonne O codvoi pour le traitement des fichiers textes
    'elle sera supprimé à la fin de l'execution des macros
    Sheets(1).Activate
    Columns("O:O").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets(1).Range("O2:O" & nombredeligneINTER).FormulaR1C1 = "=WEEKNUM(RC[-10],2)"
     
        For i = 1 To 5
        nomfeuille = Sheets(i).Name
        Sheets(i).Activate
        ActiveWorkbook.SaveAs Filename:=nomfeuille, FileFormat:=xlText, CreateBackup:=False
        Next i
     
    Columns("O:O").Delete Shift:=xlToLeft
            ActiveWorkbook.SaveAs Filename:=adressefichier, _
            FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
    End Sub
     
    Sub test()
     
    Call miseenplacedelafeuille
    Call calculdesdureeope1
    Call calculdureesallereveil
    Call ajoutnomanesthesiste
    Call ajoutnomoperateur
    Call pilotededonneejour
    Call pilotededonneejourcodesalle
    Call pilotededonneesemaine
    Call pilotededonneesemainecodesalle
    Call pilotededonneeperiodecodesalle
    Call pilotededonneeperiode
    End Sub
     
    Sub main()
     
    Dim adressefichier As String
    Dim adresseclasseuraccueil As String
    Dim nomfichier As String
    Dim nomfeuille As String
    Dim i As Integer
    Dim classeur As Workbook
    adressefichier = Application.InputBox("Quel est l'adresse du fichier que vous voulez traiter: ", "", "D:\Users\Nakamura\Desktop\CHGE.xls")
     
     
    If ExistenceFichier(adressefichier) Then
     
            adresseclasseuraccueil = ActiveWorkbook.Path
            nomfichier = Mid(adressefichier, InStrRev(adressefichier, "\") + 1)
            Set classeur = Application.Workbooks.Open(adressefichier)
            classeur.Activate
     
            Application.Run "accueil.xls!enregistrement", adresseclasseuraccueil, adressefichier
     
            Shell (adresseclasseuraccueil & "\main.exe")
     
            Application.Run "accueil.xls!'test'"
     
            Application.Wait (Now + TimeValue("0:00:4"))
                Workbooks.OpenText Filename:= _
            adresseclasseuraccueil & "\resultat.txt", Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
            , Space:=False, Other:=True, OtherChar:=";", FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
     
            Kill adresseclasseuraccueil & "\resultat.txt"
        Else
            MsgBox "fichier inexistant"
        End If
     
    End Sub

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    c'est bon j'ai trouvé (enfin je pense) il manquait le chdir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    Function ExistenceFichier(sFichier As String) As Boolean
      ExistenceFichier = Dir(sFichier) <> ""
    End Function
     
    Sub enregistrement(adresseclasseuraccueil As String, adressefichier As String, nomfichier As String)
     
    Dim nomfeuille As String
    Dim i As Integer
    Dim nombredeligneINTER As Long
     
     
    nombredeligneINTER = Sheets(1).Range("A1").End(xlDown).Row
     
    'insere une colonne avant la colonne O codvoi pour le traitement des fichiers textes
    'elle sera supprimé à la fin de l'execution des macros
    Workbooks(nomfichier).Sheets(1).Activate
    Columns("O:O").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets(1).Range("O2:O" & nombredeligneINTER).FormulaR1C1 = "=WEEKNUM(RC[-10],2)"
     
        For i = 1 To 5
        nomfeuille = Sheets(i).Name
        Sheets(i).Activate
        ChDir adresseclasseuraccueil
        ActiveWorkbook.SaveAs Filename:=nomfeuille & ".txt", _
            FileFormat:=xlText, CreateBackup:=False
     
        Next i
     
    Columns("O:O").Delete Shift:=xlToLeft
            ActiveWorkbook.SaveAs Filename:=adressefichier, _
            FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
    End Sub
     
    Sub test()
     
    Call miseenplacedelafeuille
    Call calculdesdureeope1
    Call calculdureesallereveil
    Call ajoutnomanesthesiste
    Call ajoutnomoperateur
    Call pilotededonneejour
    Call pilotededonneejourcodesalle
    Call pilotededonneesemaine
    Call pilotededonneesemainecodesalle
    Call pilotededonneeperiodecodesalle
    Call pilotededonneeperiode
    End Sub
     
    Sub main()
     
    Dim adressefichier As String
    Dim adresseclasseuraccueil As String
    Dim nomfichier As String
    Dim nomfeuille As String
    Dim i As Integer
    Dim classeur As Workbook
    adressefichier = Application.InputBox("Quel est l'adresse du fichier que vous voulez traiter: ", "", "D:\Users\Nakamura\Desktop\CHGE.xls")
     
     
    If ExistenceFichier(adressefichier) Then
     
            adresseclasseuraccueil = ActiveWorkbook.Path
            nomfichier = Mid(adressefichier, InStrRev(adressefichier, "\") + 1)
            Set classeur = Application.Workbooks.Open(adressefichier)
            classeur.Activate
     
            Application.Run "main.xls!'enregistrement'", adresseclasseuraccueil, adressefichier, nomfichier
     
            Shell (adresseclasseuraccueil & "\main.exe")
     
            Application.Run "main.xls!'test'"
     
            Application.Wait (Now + TimeValue("0:00:4"))
                Workbooks.OpenText Filename:= _
            adresseclasseuraccueil & "\resultat.txt", Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
            , Space:=False, Other:=True, OtherChar:=";", FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
     
            'Kill adresseclasseuraccueil & "\resultat.txt"
        Else
            MsgBox "fichier inexistant"
        End If
     
    End Sub

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

Discussions similaires

  1. Enregistrer un fichier résultat sous format txt
    Par hananemto2007 dans le forum R
    Réponses: 3
    Dernier message: 19/02/2009, 16h16
  2. enregistrer classeur au format compressé
    Par pep68 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/11/2007, 19h23
  3. OUTLOOK 2007-enregistrer sous/plusieurs mails format .txt
    Par sharrascript dans le forum Outlook
    Réponses: 6
    Dernier message: 11/10/2007, 14h25
  4. [VBA-E]probleme enregistrement format txt
    Par smartbis dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/04/2007, 20h01
  5. Comment enregistrer un résultat SQL en format TXT ...
    Par Jamal_71 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 30/01/2006, 15h23

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