• 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.

Valuta uitlezen uit cel-opmaak of getypte waarde

Status
Niet open voor verdere reacties.

Piet Bom

Verenigingslid
Lid geworden
13 nov 2010
Berichten
786
Ik heb een PDF-rapport geconverteerd naar Excel
Die converter is zo slim, dat als hij 100 EUR leest, maakt hij daar gewoon 100 van met een cel-opmaak: 0 [$EUR]
Soms maakt hij er een tekst-string van: 100 EUR Die kan je met een formule uitlezen: =Mid(input_string; Search(" ";input_string)+1;99)
Ik ben op zoek naar een User Defined Function (VBA) of twee formules die me enerzijds het getal geeft en daarnaast de valuta of eenheid.
In de bijlage zit een voorbeeld dat meer duidelijkheid geeft over het vertrekpunt en de gewenste resultaten.
Ik zit me nu net af te vragen of er PDF-convertors zijn die je kunt wijsmaken dat hij de letterlijke tekst moet uitlezen en er geen opgemaakte cel van moet maken.
Ik heb al wat zoek-pogingen gedaan op deze site, maar vond geen passend antwoord.
 

Bijlagen

  • Extract_Currency_from_Formatted_Cell.xlsb
    8,6 KB · Weergaven: 25
Wauw, dat is snel, Had je die functies al op voorraad liggen of schud je ze zo uit je mouw :)
En hele compacte code. Ik snap ze bijna helemaal, alleen vraag ik me af wat die 0 en 1 tussen haakjes doen ?
 
Momenteel draag ik korte mouwen en er viel van alles uit ;)
Die 0 en 1 zijn om te bepalen welk element uit de array die door Split wordt gemaakt terug gegeven moet worden.
Het kan dus ook nog zo om het nog compacter te maken:
Code:
Function CValue(Target As Range) As Long
    CValue = IIf(IsNumeric(Split(Target.Text)(0)), Split(Target.Text)(0), Split(Target.Text)(1))
End Function

Function CUnit(Target As Range) As String
    CUnit = IIf(IsNumeric(Split(Target.Text)(0)), Split(Target.Text)(1), Split(Target.Text)(0))
End Function

Daarnaast gebruik ik van de cel het .Text attribuut.
Daarin staat wat de gebruiker in de cel ziet staan.
Dat is dus anders dan de waarde (.Value) of de opmaak (.NumberFormat).
 
Laatst bewerkt:
Het kan nog iets vrolijker:

Code:
Function F_snb(c00)
    st = Split(c00.Text)
    F_snb = Array(val(st(IsNumeric(st(1)))), st(Abs(IsNumeric(st(0)))))
End Function

Voer de funktie in als een array-formule in Range(K6:L6)

En naar beneden trekken.
 

Bijlagen

  • __Extract_Currency_from_Formatted_Cell.xlsb
    15,4 KB · Weergaven: 23
Laatst bewerkt:
@snb,
Dat is ook een hele mooie functie.
Ik had even moeite om de juiste array-formule te vinden, maar toch gelukt :)

Allebei bedankt voor de oplossingen.
Ik ga de vraag afsluiten als Opgelost en kan weer verder met de naar Excel geconverteerde PDF ;)

N.B.: bijlage aangepast i.v.m. privacy
 

Bijlagen

  • Extract_Currency_from_Formatted_Cell2.xlsb
    19 KB · Weergaven: 17
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan