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
|
Sub ExporTxt()
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Dim Tbl
Dim Dossier As String
Dim FileN As String
Dim I As Integer
Dim Chaine As String
'Contient 1 feuille de calcul nommé JDD
With Worksheets(1)
'modifs des CSU récupérés sur SOAPUI
Set Plage = .Range("C4:C7, C9:C12, C14:C17, C19:C22, C24:C27, C29:C32, G4:G7, G9:G12, G14:G17, G19:G22, G24:G27, G29:G32")
Plage.Cells.Replace "csu09", "09;", xlPart
'supressdion des feuille inutiles
For Each Fe In Worksheets
If Fe.Name <> .Name Then Fe.Delete
Next
'Message pour Sauvegarde le fichier
If MsgBox("Êtes-vous certain de vouloir créer vos JDDs ?", vbYesNo, "Demande de confirmation") = vbNo Then MsgBox ("Arret de la sauvegarde"): Exit Sub
'Recupere le contenu de la cellule B4 et C4 pour créer le nom du fichier
FileN = .Range("B4").Value & .Range("C4").Value
'ouvre la boite de dialogue pour le choix du dossier d'enregistrement
With Application.FileDialog(4)
If .Show = -1 Then Dossier = .SelectedItems(1)
End With
If Dossier = "" Then MsgBox ("Arret de la sauvegarde"): Exit Sub
Dossier = Dossier & "\"
End With
For Each Cel In Plage
I = I + 1
'seulement si pas vide
If Cel.Value <> "" Then Chaine = Chaine & Cel.Value & vbCrLf
If I Mod 4 = 0 Then
'splite dans le tableau
Tbl = Split(Chaine, vbCrLf)
'seulement si le tableau est plein
If UBound(Tbl) = 4 Then
'récupère le titre du tableau
FileN = Tbl(0)
'comme plusieurs tableaux possèdent le même nom, les distingue en ajoutant I au nom
If Dir(Dossier & FileN & ".txt") <> "" Then FileN = FileN & I
'création du fichier
Open Dossier & FileN & ".txt" For Output As #1
Print #1, Chaine
Chaine = ""
Close #1
Else
Chaine = ""
End If
End If
Next Cel
End Sub |
Partager