transformer des infos excel en txt par vba
Bonjour,
Je souhaite à partir un fichier excel (où des infos sont récupérées, mettre en forme sous notes en respectant un certain format. Voilà ce que cela devrait donner :
0000165978LVY8 01910691860188MR MACHIN 0048516395020100129201101317085422 196787,10388900700 0600000015 30000,0020100202MR MACHIN 140 12
en d'autres termes 8 caratères +6 caractères collés + 8 espaces+11 caractère+le nom. A la 66ème position 16 caractères ( deux dates format yyyymmdd) et à la 136ème position un montant format 00000,00)
J'ai essayé d'écrire cela en formule excel :
Code:
=TEXTE(Feuil1!A4;"00000000") & Feuil1!B4 & REPT(" ";8) & TEXTE(Feuil1!C4;"00000000000") & Feuil1!D4 & REPT(" "; 32-NBCAR(Feuil1!D4))& REPT(" ";11) & Feuil1!E4 & Feuil1!F4 & REPT(" ";54 - NBCAR(TEXTE(Feuil1!G4;"0,00"))) & TEXTE(Feuil1!G4;"0,00")
et sous vba :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| i = 2
While WS.Cells(i, 1).Text <> ""
Temp(1) = Left(WS.Cells(i, 1).Text + Space(8), 8)
Temp(2) = Left(WS.Cells(i, 2).Text + Space(11), 11)
Temp(3) = Left(WS.Cells(i, 3).Text + Space(11), 11)
Temp(4) = Left(WS.Cells(i, 4).Text + Space(32), 32)
Temp(5) = WS.Cells(i, 8).Text + Right("00" + WS.Cells(i, 9).Text, 2) + Right("00" + WS.Cells(i, 10).Text, 2)
Temp(6) = WS.Cells(i, 5).Text + Right("00" + WS.Cells(i, 6).Text, 2) + Right("00" + WS.Cells(i, 7).Text, 2)
Temp(7) = Right(Space(13) + WS.Cells(i, 11).Text, 13)
Line = Temp(1) + Temp(2) + Space(3) + Temp(3) + Temp(4) + Space(11) + Temp(5) + Temp(6) + Space(41) + Temp(7)
Print #1, Line
i = i + 1
Wend
Close #1
WB.Close |
Le problème c'est qu'aucune des deux formules ne fonctionne correctement, sous vba il ne prend le montant. Pouvez vous m'aider ?