HWV
Terugkerende gebruiker
- Lid geworden
- 19 feb 2009
- Berichten
- 1.183
Beste,
Hier op het formum dit script gehaald om tekst om te zetten naar getal via VBA.
Ik heb dit script verwerkt in mijn code ( ik roep deze aan vanuit een ander macro).
Ik laat dit script over de rond 4400 regels lopen die gevuld zijn.
Echter hij doet er verschrikkelijk lang over.
Als ik de niet via de VBA code doet dan gaat het binnen enkel seconden, maar moet dit in mijn conversie meenemen dus VBA is gewenst.
Nu kom de vraag kan dit niet sneller.
Groet HWV
Hier op het formum dit script gehaald om tekst om te zetten naar getal via VBA.
Ik heb dit script verwerkt in mijn code ( ik roep deze aan vanuit een ander macro).
Ik laat dit script over de rond 4400 regels lopen die gevuld zijn.
Echter hij doet er verschrikkelijk lang over.
Als ik de niet via de VBA code doet dan gaat het binnen enkel seconden, maar moet dit in mijn conversie meenemen dus VBA is gewenst.
Nu kom de vraag kan dit niet sneller.
Code:
Sub TekstNaarGetallen()
Dim C As Range, T As String, T2 As Integer, T3 As Integer
Columns("H1:H4400").Select
On Error Resume Next
For Each C In Selection
C.Replace _
What:=Chr(160), _
Replacement:=Chr(32)
'vaste spaties omzetten in spaties
T = Trim(C.Value)
With Application.WorksheetFunction
T2 = .Find(".", T)
T3 = .Find(".", T, T2 + 1)
End With
If IsEmpty(C) Then
'overslaan lege cellen
ElseIf LCase(C.Value) Like "*[a-z]*" Then
'overslaan cellen met letters
ElseIf C.Value Like "*[@$#;:/\]*" Then
'overslaan tekens
ElseIf T3 - T2 = 2 Or T3 - T2 = 3 Then
'twee punten in een getal overslaan
Else
If C.Value Like "*.*" Then
C.Replace _
What:=".", _
Replacement:=""
End If
If IsNumeric(C) Then
'datum getallen negeren
C.NumberFormat = "general"
'celopmaak instellen
C.Value = C.Value * 1
End If
End If
Next
On Error GoTo 0
' Een kolom selecteren
Columns("H:H").Select
' Maken dat hij financieel wordt met een euro teken
Selection.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End Sub
Groet HWV