10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)
  • Q:
    Bijdrager
    evdl

    Applescript / Excel – 1e karakter weghalen in een range

    Ik heb het volgende probleem:
    Een Excel kolom (J2:J175) bevat vanuit Safari gekopieerde tekst, welke dagelijks ververst wordt middels applescript. Elke cell van deze kolom begint met een spatie met vervolgens tekst, deze spatie wil ik graag verwijderd hebben. De kolom moet vergeleken (vlookup) worden met een kolom van een ander sheet. Middels trim / clean of andere commando’s lukt het niet, daar deze kolom ‘in de tabel’ staat welke vergeleken wordt: Vlookup(B5;$J$2:K$175;2).
    Nu heb ik een applescript geschreven welke alle cellen uit deze kolom apart bekijkt, de waarde van de string neemt en daar het eerste karakter (de spatie) vanaf haalt. Het vervelende hiervan is dat dit de bewerking langdurig maakt, je ziet hem door de cellen heen stappen.
    Is er een mogelijkheid om in 1 keer van een hele range/kolom het eerste karakter weg te halen?
    Hierbij overigens het applescript….

    tell application “Microsoft Excel”
    activate object worksheet “Sheet1”
    repeat with i from 2 to 171
    set currentCell to cell (“J” & i)
    set theItem to string value of range (“j” & i)
    if the length of theItem > 0 then
    if (the character 1 of theItem is ” “) then set theItem to characters 2 thru end of theItem as string
    end if
    set the clipboard to theItem
    select currentCell
    paste special active cell what paste values
    end repeat
    end tell

    Bijdrager
    Leander

    Google even op “excel spaties wissen” of “excel delete spaces”, dan vind je o.a. de formule “=spaties.wissen()”, engelstalige excelformule: “=trim()” alsook macro’s die de klus kunnen klaren.
    Kan ook via “=vervangen(A1;1;1;””)”, engelstalige excelformule: “=substitute(A1;1;1;””)”
    Een andere alternatief is gewoon via zoek-en-vervang.

    Succes

    Bijdrager
    evdl

    Hi Leander,

    “spaties.wissen()” komt overeen met trim, dit werkt niet heb ik reeds geprobeerd.
    Als er een manier is om een macro toe te passen, dan ben ik daar erg benieuwd naar. Tot nu toe echter, is het niet mogelijk volgens mij met Excel for Mac2008?

    Bijdrager
    Leander

    Trim werkt niet? Probeer eens op leeg excelblad: zet in cel A1 een woord met beginspatie. In cel B1 =trim(A1) Dat werkt gewoon hoor.

    Je kan toch gewoon een nieuwe kolom er tussen plaatsen en in die kolom bovenin de “trim” formule zetten en dan deze cel (met verwijzende formule) ‘naar beneden trekken’ waardoor de formule effect heeft op alle rijen binnen die kolom. In de vervolgformules verwijs je naar de resultaten uit deze nieuwe kolom.

    Ik geloof dat Excel in de Office 2011 versie weer wel macro’s ondersteunt, de twee voorafgaande versies helaas niet.

    Bijdrager
    evdl

    Op die manier werkt Trim wel, maar ik zou het graag automatisch gedaan zien. Ik haal nl de gegevens met een applescript op, knip, plak en rangschik dit middels Applescript dus als het enigszins kan wil ik ook deze handeling geautomatiseerd zien…..
    Gelukkig is het alweer 2011, dus even geduld nog, tot die tijd doe ik het wel met m’n eigen scriptje vrees ik..
    Ik zal iig nog je suggestie voor substitute proberen!
    Bedankt voor de moeite zover..

    Bijdrager
    Raddie

    Ik ben geen Excel expert, maar kan mij herinneren wel eens de commando’s LEFT, RIGHT en misschien ook MIDDLE te hebben gebruikt in Excel. Je kunt daarmee bijvoorbeeld de rechter n karakters uit cel A1 naar cel B1 kopieren. Succes!

    Bijdrager
    Ir.Bob

    Euhm, die spatie komt zeer waarschijnlijk uit jouw AppleScript, die met Safari verbonden is. Waarom pas je dat Applescript niet aan?

    Bijdrager
    evdl

    Euhm, zeer waarschijnlijk niet, ik kopieer namelijk een hele pagina welke in Excel verdeeld wordt over acht kolommen. 7 Van de kolommen hebben dit probleem niet, en 1 wel?
    Ter verduidelijking hier het kopieer script vanuit safari:

    ……nadat de betreffende pagina is geopend…….
    tell application “System Events”
    keystroke “a” using command down
    end tell
    set scriptText to (do JavaScript “getSelection()” in document 1)
    set the clipboard to scriptText
    tell application “Microsoft Excel”
    activate object worksheet “Sheet1”
    select range “I1”
    paste special active cell what paste values
    …….

    Als ik vanavond even tijd over heb zal ik bovenstaande suggesties nog proberen..

    Bijdrager
    evdl

    ik geef het op….bedankt voor de reacties allen, ik laat het bij mijn huidige trage scriptje. Dan gaat alles automatisch alleen niet zo snel als ik hoopte

    Bijdrager
    Obi

    Met find/replace en dat in een macro?

    Find: ” “
    Replace:”” (niet invullen)

10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.