Omdat ik met 'n Excel sheet bezig ben die (financiele) gegevens importeert van de website van een derde, ben ik aan 't knoeien met VBA macro's om de boel te automatiseren. De gegevens worden namelijk herkent door Excel als 'tekst' in de vorm van '$23.45', wat veranderd moet worden in een cel van 't type 'financieel' met numerieke data.
Om dit voor elkaar te krijgen ben ik met 'n macro begonnen die de data ophaalt en vervolgens de boel vervangt, welke hieronder staat.
Het probleem hiermee is dus dat Excel sommige cellen niet direct herkent als numeriek, waardoor er wel 'n getal in komt te staan, maar dit vervolgens pas de 'USD' prefix krijgt zodra je een actie zoals F2-enter uitvoert.
Een mogelijke oplossing is natuurlijk om 'n loop in te bouwen en alle cellen stuk voor stuk door te lopen, maar dit is bijzonder traag waardoor ik eigenlijk hoop op 'n andere oplossing; ideeën zijn meer dan welkom!
Om dit voor elkaar te krijgen ben ik met 'n macro begonnen die de data ophaalt en vervolgens de boel vervangt, welke hieronder staat.
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| Sub Vervangen() ' ' Vervangen Macro ' ' Refresh alle externe data Workbooks("Inkomsten.xls").Worksheets("Bron").Activate Range("B1:B200").Activate ThisWorkbook.RefreshAll ' Vervang de $ en punten zodat de data numeriek wordt. Cells.Replace What:="$", Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False Cells.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False ' Rebuild alle inhoud; werkt helaas niet Application.CalculateFullRebuild End Sub |
Het probleem hiermee is dus dat Excel sommige cellen niet direct herkent als numeriek, waardoor er wel 'n getal in komt te staan, maar dit vervolgens pas de 'USD' prefix krijgt zodra je een actie zoals F2-enter uitvoert.
Een mogelijke oplossing is natuurlijk om 'n loop in te bouwen en alle cellen stuk voor stuk door te lopen, maar dit is bijzonder traag waardoor ik eigenlijk hoop op 'n andere oplossing; ideeën zijn meer dan welkom!