• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

TRIMMEN van bestand

Status
Niet open voor verdere reacties.

Humadgen

Gebruiker
Lid geworden
16 aug 2006
Berichten
251
Hallo,

We ontvangen maandelijks meerdere feeds vanaf het mainframe met .csv bestanden.
In deze bestanden moeten we een aantal kolommen bewerken. Sinds we zijn overgegaan op XP hebben bijna alle kolommen extra spaties in de cellen gekregen. Hierdoor hebben we nu extra werk gekregen omdat we nu (bij gemiddeld 20 kolommen over 15 bestanden) kolom voor kolom middels de Replace functie (Ctrl + H) de spaties eruit moeten halen.

Het moet kolom voor kolom omdat anders EXCEL er een half uur over doet om 1 bestandje te doen en kolom per kolom is het 10 seconden per kolom. Bovendien geld het niet voor alle kolommen.

Er is een TRIM functie, maar deze kan ik alleen maar gebruiken door in een andere sheet middels TRIM() de cellen te laten schonen en met een LOOP tot de laatste regel het spreadsheet te laten vullen.
Ik geloof echter niet dat dat de beste manier is. Er moet toch iets in VBA te schrijven zijn die voor een aantal (te definieren kolommen) de spaties eruit haalt. (Bijvoorbeeld alleen kolommen A-D, F-I, N-AB)

Kan iemand mij aan dat stukje code helpen, want ik krijg het niet bedacht.
Alvast bedankt
Humadgen
 
Laatst bewerkt:
Beste,

Ik hier een erg simpel voorbeeld. Is dit wat je bedoelt?

Voorwaarde is wel dat de data altijd hetzelfde moet zijn en dus ook de kolommen die gesplits moeten worden. Op blad 2 staat de "data" als je deze kopieert naar blad 1 en dan op de knop drukt, zie je dat hij altijd de 1ste en laatste kolom splits (dus alle a en b's gescheiden houdt)..
 

Bijlagen

Beste,

Ik hier een erg simpel voorbeeld. Is dit wat je bedoelt?

Voorwaarde is wel dat de data altijd hetzelfde moet zijn en dus ook de kolommen die gesplits moeten worden. Op blad 2 staat de "data" als je deze kopieert naar blad 1 en dan op de knop drukt, zie je dat hij altijd de 1ste en laatste kolom splits (dus alle a en b's gescheiden houdt)..
 
Hoi Clipstra

Ik ben bang dat dit niet is wat ik zoek. (Wel handig om te gerbuiken voor andere toepassingen in de toekomst wellicht.)

Ik zoek echt een VBA oplossing om in cellen de extra spaties te laten verwijderen.
Dus als in kolom A altijd 7 caracters worden weggezet vanuit een datafeed en i bijvoorbeel in cel A1 staat: Piet[spatie][spatie][spatie]
Dan zou ik heel eenvoudig in cel B1 kunnen zetten =trim(a1) en het gevolg is dat in cel B1 staat: Piet (zonder de spaties)

Dit moet dan voor de hele kolom gedaan worden, en vervolgens ook nog voor 20 kolommen (van de totaal 26 kolommen van het spreadsheet.

Ik zou met een macro iedere keer een kolom kunnen invoegen en den met een "loop" de Trim functie kunnen kopieren. Vervolgens Copy - Paste Special Values doen over de originele data heen en dan de lege kolom verplaatsen naar de volgende rij etc.

Dat gaat best werken, maar................ ik denk dat er een betere oplossing te bedenken moet zijn.

Dus als je (of iemand anders) nog een idee voor me heeft.

Humadgen
 
Code:
sub slank()
  With application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    Activesheet.columns("A:D, F:I, N:AB").replace " ",""
    .Calculation = xlCalculationAutomatic  
    .ScreenUpdating = True
  End With
end Sub
 
Laatst bewerkt:
Hoi snb

Excuus dat ik niet eerder kon reageren, maar ik was even met met vakantie.

De code die je hebt gestuurd loopt vast op de regel:

Activesheet.columns("A:E, F:I, N:AB").replace " ",""

Ik heb echter nu iets anders geprobeerd, en dat lukt wel, maar het neemt natuurlijk veel meer plaats in. Ik heb nu staan:

Columns("A:E").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Columns("F:I").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Columns("N:AB").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Het werkt wel op deze manier, maar ik had inderdaad gehoopt dat het korter kon.
Bedankt echter voor je reaktie.

Grtnx
Humadgen
 
Code:
Sub slank()
  With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    ActiveSheet.[COLOR="Red"][B]Range[/B][/COLOR]("A:D, F:I, N:AB").Replace " ", ""
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
  End With
End Sub

Zo werkt bovenstaande code wel.
SNB had Range moeten gebruiken ipv Columns.

Met vriendelijke groet,


Roncancio
 
Roncancio en snb,

Beiden bedankt voor de input
Dit werkt super :thumb::thumb::thumb:en is een stuk korter dan mijn oplossing

Thanks:)
Humadgen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan