aide: moulinette SVP avec Exel et VB

aide: moulinette SVP avec Exel et VB - VB/VBA/VBS - Programmation

Marsh Posté le 15-05-2012 à 15:06:22    

Salut çava  
j'ai un fichier .txt voir exemple

Spoiler :


                                         Fichier1.txt
0400107040040200TND305510110981399110512  110512
0400107680040200TND305510110981399110512  110512
0400107060040200TND305510110981399110512  110512


 je veux faire un moulinette qui se transforme ce fichier en un autre fichier texte mais
s'il trouve 0400 alors il change 99 ---> 07
s'il trouve 6800 alors il change 99 ---> 62
s'il trouve 3800 alors il change 99 ---> 40
 
alors mon nouveau fichier text doit étre comme ça  

Spoiler :


                                         Fichier2.txt
0400107040040200TND305510110981307110512  110512
0400107680040200TND305510110981362110512  110512
0400107060040200TND305510110981340110512  110512


 
 
MERCiiiiiiiiiiiiiii

Reply

Marsh Posté le 15-05-2012 à 15:06:22   

Reply

Marsh Posté le 15-05-2012 à 15:49:23    

Salut,
C'est une action que tu vas faire régulièrement ou c'est ponctuel ?
 
Si c'est ponctuel, tu peux t'en sortir sans vba en utilisant les formules d'excel (stxt(), gauche(), droite() ...etc)


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 15-05-2012 à 15:56:57    

oui mais je veux faire une moulinette qui faire tt ça automatiquement de façon rapide
parce-que j'ai plusieurs fichier comme ça et contient plusieurs ligne
 :??:  :??:  

Reply

Marsh Posté le 16-05-2012 à 10:46:34    

Salut, à toi de vérifier la validité du/des fichier(s) généré(s), affecter un bouton à la procédure SelectionTXT

Option Explicit
 
Private Function Chemin(ByVal sFichier As String) As String
Dim i As Integer
Dim sChemin As String
    sChemin = ""
    If Dir$(sFichier) = "" Then Exit Function
    For i = 0 To UBound(Split(sFichier, "\" )) - 1
      sChemin = sChemin & Split(sFichier, "\" )(i) & "\"
    Next i
    Chemin = sChemin
End Function
 
Private Sub Correction(ByVal sNomFichier As String)
Dim sIn As String
Dim sOut As String
Dim iNumFichier1 As Integer, iNumFichier2 As Integer
Dim sNomFichier2 As String, sCheminFichier As String
 
    Close
     
    sCheminFichier = Chemin(sNomFichier)
    sNomFichier2 = sCheminFichier & "Corr_" & NomDuFichier(sNomFichier)
     
    iNumFichier1 = FreeFile
    Open sNomFichier For Input As #iNumFichier1
        iNumFichier2 = FreeFile
        Open sNomFichier2 For Output As #iNumFichier2
            Do While Not EOF(iNumFichier1)
                Line Input #iNumFichier1, sIn
                Select Case Mid$(sIn, 8, 4)
                    Case "0400"
                        sOut = Left$(sIn, 32) & "07" & Mid$(sIn, 35)
                        Print #iNumFichier2, sOut
                    Case "6800"
                        sOut = Left$(sIn, 32) & "62" & Mid$(sIn, 35)
                        Print #iNumFichier2, sOut
                    Case "3800"
                        sOut = Left$(sIn, 32) & "40" & Mid$(sIn, 35)
                        Print #iNumFichier2, sOut
                End Select
            Loop
        Close #iNumFichier2
    Close #iNumFichier1
End Sub
 
Private Function NomDuFichier(ByVal sFichier As String) As String
    With CreateObject("Scripting.FileSystemObject" )
      On Error Resume Next
          NomDuFichier = .GetFileName(sFichier)
      On Error GoTo 0
    End With
End Function
 
Sub SelectionTXT()
Dim Fichier As Variant
Dim i As Long
 
    ChDir ThisWorkbook.Path
    Fichier = Application.GetOpenFilename("Fichier TXT (*.txt), *.txt", , "Sélectionner un ou plusieurs fichier(s)", , True)
    If TypeName(Fichier) = "Boolean" Then Exit Sub
 
    For i = 1 To UBound(Fichier)
        Correction Fichier(i)
    Next i
End Sub


---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 16-05-2012 à 18:23:10    

Merci Kiki
 
cette moulinette modifie juste les 4 première lignes et supprime les autres
comment faire pour restructurer tous les lignes dans l fichier
 
merci

Reply

Marsh Posté le 16-05-2012 à 19:02:53    

Re, rajouter qqch comme ceci

 
                    Case Else  
                        Print #iNumFichier2, sIn  

 
dans la procédure

                   
                    Case "3800"
                        sOut = Left$(sIn, 32) & "40" & Mid$(sIn, 35)
                        Print #iNumFichier2, sOut
                    Case Else
                        Print #iNumFichier2, sIn            
                   End Select



Message édité par kiki29 le 16-05-2012 à 19:06:17

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed