nur Zahlen raussuchen.

Dieses Thema nur Zahlen raussuchen. im Forum "Microsoft Office Suite" wurde erstellt von Mr_Tom, 15. Aug. 2005.

Thema: nur Zahlen raussuchen. HI@ALL also ich habe ein schweres problem, ich habe eine spalte in der straßennamen mit hausnummern stehen. nun...

  1. HI@ALL

    also ich habe ein schweres problem, ich habe eine spalte in der straßennamen
    mit hausnummern stehen. nun brauche ich aber die hausnummern (wenns geht auch
    mit zusatz also A oder B) in einer extra spalte. wie kann ich das verwirklichen sodass
    es auch noch in ein makro passt. also ich brauche entweder eine formel oder ein makro
    dafür. leider sind die straßennamen und die hausnummern immer unterschiedlich lang.
    vielen dank im vorraus.
     
  2. Hallo Mr_Tom,

    wo sollen die beiden getrenten Teile - also Straße und Hausnummer - denn abgelegt werden ?

    Gruß Matjes :)
     
  3. hallo matjes,

    vielen dank erstmal. also später sollen dann einmal straße in einer spalte und hausnummer in einer spalte sein.
     
  4. Hi Mr_Tom,

    dann probier mal den folgenden Makro.

    Gruß Matjes :)
    Code:
    Option Explicit
    Sub Excel_StrasseHausnummerTrennen()
     -> Trennt Straße/Hausnummer
     -> - Straßenbezeichnung bleibt in der jeweiligen Zelle erhalten
     -> - Hausnummer wird in der rechts danebenliegenden Zelle abgelegt
     ->
     -> Vor dem Aufruf ist die Spalte oder Teile dieser zu markieren.
     -> Es folgt eine Abfrage, ob eine neue  Spalte für Hausnummer
     -> rechts neben der markierten Spalte eingefügt werden soll.
     ->
     -> Es muß mehr als eine Zelle markiert werden.
     ->
      
      Dim ret As Integer, r As Range, Zelle As Range
      Dim l_Spalte As Long, l_leerCnt As Long
      Dim s_StrHnr As String, s_Str As String, s_HNr As String
      
     ->markierten Bereich merken
      Set r = Selection
      
     ->nur eine Zelle selektiert
      If r.Count = 1 Then
        MsgBox (Es muß mehr als eine Zelle markiert sein.)
        GoTo AUFRAEUMEN
      End If
      
     ->mehr als eine Spalte selektiert
      If r.Columns.Count <> 1 Then
        MsgBox (Es darf nur eine Spalte oder Teile davon selektiert werden.)
        GoTo AUFRAEUMEN
      End If
      
      l_Spalte = r.Column
      
      ret = MsgBox( _
              Trennen von Straße/Hausnummer & vbLf & vbLf & _
              Die Hausnummern werden in der Zelle rechts neben der jeweils selektierten abgelegt. & vbLf & _
              Soll dafür rechts neben der markierten Spalte eine neue Spalte eingefügt werden ?, _
              vbQuestion + vbDefaultButton2 + vbYesNoCancel)
              
      If ret = vbCancel Then Exit Sub
      If ret = vbYes Then
       ->Spalte einfügen
        On Error Resume Next
        Columns(l_Spalte + 1).Insert Shift:=xlToRight
        If Err.Number <> 0 Then
          Err.Clear
          MsgBox ( _
            Eine neue Spalte konnte nicht eingefügt werden. & vbLf & _
            Die könnte an verbundenen Zelle liegen.)
          GoTo AUFRAEUMEN
        End If
       ->als Text formatieren
        Columns(l_Spalte + 1).NumberFormat = @
        On Error GoTo 0
      End If
    
    
     ->Für alle selektierten Zellen
      l_leerCnt = 0
      For Each Zelle In r
        s_StrHnr = Zelle.Value
        
       ->nur noch leer Zellen?
        If s_StrHnr =  Then
          l_leerCnt = l_leerCnt + 1
         ->10 leere Zellen -> Ende
          If l_leerCnt > 10 Then GoTo AUFRAEUMEN
        Else
          l_leerCnt = 0
        End If
        
       ->Straße/Hausnummer trennen
        Call StrasseHausnummerTrennen(s_StrHnr, s_Str, s_HNr)
        Cells(Zelle.Row, Zelle.Column) = s_Str
        Cells(Zelle.Row, Zelle.Column + 1) = s_HNr
      Next
    
    AUFRAEUMEN:
      Set r = Nothing: Set Zelle = Nothing
    End Sub
    
    '****************************************************************
    Private Function StrasseHausnummerTrennen( _
                          s_StrHnr As String, _
                          s_Str As String, _
                          s_HNr As String)
    
     ->getrennt wird ab der ersten Zahl
      
      Dim pos As Long, s As String, x As Long
      
     ->erste Zahl suchen
      pos = 0
      For x = 1 To Len(s_StrHnr)
        s = Mid(s_StrHnr, x, 1)
        Select Case s: Case 0 To 9: pos = x: Exit For: End Select
      Next
    
     ->Hausnummer vorhanden ?
      If pos <> 0 Then
        pos = pos - 1
        s_Str = Trim(Left(s_StrHnr, pos))
        s_HNr = Right(s_StrHnr, Len(s_StrHnr) - pos)
      Else
        s_Str = s_StrHnr
        s_HNr = 
      End If
    End Function
     
  5. der blanke wahnsinn. super das läuft wie geschmiert.
    du hast mir damit sehr geholfen.

    DANKE und bis nächstes mal ;-)
     
Die Seite wird geladen...

nur Zahlen raussuchen. - Ähnliche Themen

Forum Datum
Excel Buchstabenkombination z.B. "ABC" durch Zahlenkombination z.B."1,2,3" ersetzen Microsoft Office Suite 29. Juli 2013
[INFO] Software-Pirat muss 500.000 Euro Strafe zahlen Windows 7 Forum 18. März 2010
Access Zeilen zählen und dann für jeden Datensatz +1 Windows XP Forum 25. Juli 2013
Excel 2010 - Spalten automatisch zählen Windows XP Forum 22. Apr. 2013
Warum undeutliche Zahlen- und Buchstabencodes Sonstiges rund ums Internet 28. Dez. 2012