Net Framework, Office 365, C#, WPF, ASP.Net, Visual Studio, Programmiersprachen PC, C# Programmieren, vba, SQL Server, free source code snippets Antivirus free
#

 

 

Diese vba Code Funktion wandelt eine Nummerierung wie 1.a oder 1.1 oder 1-a in eine Zahl mit Kommastellen um

 

Aufgabe:

Wenn man eine Tabelle mit einer logischen Sortierung ordnen will, dann kommt man schnell auf das Problem dass die Sortierung falsch ist.

Zum Beispiel wird die Sortierung falsch sortiert:

1

20

21

1.1

1.a

 

Deshalb verwendet man interne oft eine Double-Zahl welche die Sortierungswert der Text-Nummerierung bewertet.

In diesem Fall wird aus 1.a der Sortierwert 1.1

 

Aufruf wie hier

'--< SortVal >--

Dim dblSort As Double

dblSort = Conver_Text_to_SortNr_as_Double(sInput)

 

Me![sortNr] = dblSort

'--</ SortVal >--

 

 

Vba Funktion zum Sortieren von Text-Nummerierungen zu Zahlen

Public Function Conver_Text_to_SortNr_as_Double(ByVal text As String) As Double

    '--------< Conver_Text_to_SortNr_as_Double() >--------

    Dim sSortNr As String

    sSortNr = ""

 

    Dim sValueOfCharacter As String

    sValueOfCharacter = ""

 

    '--< @Loop: all Characters >--

    Dim iChar As Integer

    For iChar = 1 To Len(text)

        '< get Loop-Character >

        Dim sCharacter As String

        sCharacter = Mid(text, iChar, 1)

        '</ get Loop-Character >

 

        If InStr(".,;-*", sCharacter) > 0 Then

            '< IsSeparater >

            sValueOfCharacter = ","

            '</ IsSeparater >

        ElseIf sCharacter Like "[a-Z]" Then

            '< Is Letter >

            Dim intAscii As Integer

            intAscii = Asc(sCharacter)

            sValueOfCharacter = intAscii - Asc("a") + 1

            '</ Is Letter >

        ElseIf sCharacter Like "[0-9]" Then

            '< IsNumber >

            sValueOfCharacter = sCharacter

            '</ IsNumber >

        Else

            sValueOfCharacter = ""

        End If

        sSortNr = sSortNr & sValueOfCharacter

    Next

    '--</ @Loop: all Characters >--

 

    '< convert to double >

    Dim dblSortNr As Double

    dblSortNr = CDbl(sSortNr)

    '</ convert to double >

 

    '< output >

    Conver_Text_to_SortNr_as_Double = dblSortNr

    '</ output >

    '--------</ Conver_Text_to_SortNr_as_Double() >--------

End Function

 

Mobile
»
Access: Sonderzeichen in vba einsetzen
»
Access VBA: Löschen von Datensätzen
»
VBA Funktion: Konvertiere Numerierung in Zahl
»
Access vba: Fortschreibende Nummerierung als Vorgabewerte erstellen
»
Vba: Option Explicit
»
VBA: Option Explicit

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Raimund.Popp@Microsoft-Programmierer.de