anoniem Geplaatst: 12 februari 2006 Delen Geplaatst: 12 februari 2006 Het is misschien een beetje een rare vraag maar ik het het volgende: Ik heb een excel-sheet met daarin 2 kolommen 1 met tekst en 1 met cijfers. Nu is het de bedoeling om van deze excelsheet een ascii-file te maken die aan een vast bepaalde opmaakkenmerken voldoet bv positie 1-20=bijv gegevens kolom x; positie 21-50= kolom y; ..... Kan dit op een of andere manier geprogrammeerd worden via een macro of maak ik het dan te ingewikkeld? Quote Link naar reactie
anoniem Geplaatst: 13 februari 2006 Auteur Delen Geplaatst: 13 februari 2006 Ik geloof niet dat je in Excel een kolom kan dimensioneren (vast aantal tekens) en vervolgens op vaste breedte kan exporteren, dus dan ben je denk ik sowieso op een macro aangewezen. Je kan in VBA een textfile outputten met [code:1:f0f9d34a38] Open "C:\test.txt" For Output As #1 Print #1, "tekstregel" Print #1, "tekstregel" Close #1 [/code:1:f0f9d34a38] Om een kolom op een vaste breedte te zetten (van voorloopspaties voorzien) kun je een While-loop combineren met de functie Len(): [code:1:f0f9d34a38] var1 = Cells(1, 1) ' waarde van A1 in variabele zetten Do While Len(var1) < 20 var1 = " " & var1 Loop var = Cells(1, 2) ' waarde van B1 in variabele zetten Do While Len(var2) < 30 var2 = " " & var2 Loop Print #1, var1 & var2 [/code:1:f0f9d34a38] Dan is denk ik ook wel duidelijk hoe je volgspaties bij een tekstkolom moet doen. Je bepaalt of een waarde numeriek is met de functie IsNumeric: If IsNumeric(var1) Then ' routine om voorloopspaties te zetten Else ' routine om volgspaties te zetten End If Quote Link naar reactie
anoniem Geplaatst: 13 februari 2006 Auteur Delen Geplaatst: 13 februari 2006 Heeft VBA geen Space() of String() functie? In dat geval kan je namelijk ook op volgende wijze padden met een spatie. [code:1:0140d00f3a] ' lengte 20 paddedvalue = Right(Space(20) & cellvalue, 20) [/code:1:0140d00f3a] Quote Link naar reactie
anoniem Geplaatst: 13 februari 2006 Auteur Delen Geplaatst: 13 februari 2006 Klopt, zo leer ik ook nog es wat ;-) Daar kan ik nog wel een leuke clieop-functie mee stroomlijnen :-) Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen