Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen auseinander nehmen

Betrifft: Zellen auseinander nehmen von: Michael
Geschrieben am: 18.08.2004 07:21:29

Hallo

Ich muss in ein Makro schreiben, dass aus einer Zell in der Postleitzahl und Ort(z.B. A-4040 Linz) stehen, Die postleitzahl heraus nimmt und in der gleichen zeile in Spalte I einfügt! Für das Zellen auseinander nehmen anundfürsich hab ich ein Beispiel gefunden das funktioniert aber nur wenn die zellen immer untereinander sind ich hab jetzt das Problem die PLZ kann in Spalte D - G stehen
Ich hab mir das so gedacht wenn man abfragt wo befindent sich ein A-(da es immer österreichische Postleitzahlen sind) und von diesem von da an nimmt man die nächsten 6 Zeichen! So hatt jemand eine Idee wie ich dieß realisieren könnte?
Danek im Voraus

mfg Michael


PS: DAs mit dem Level stimmt ned ganz ich bin in excel eigentlich sehr gut hab aber keine guten VBA kentnisse

  


Betrifft: AW: Zellen auseinander nehmen von: Hans W. Herber
Geschrieben am: 18.08.2004 07:38:34

Hallo Michael,

wenn sich auch in Spalte A irgendwo ein beliebiger Wert befindet, folgender Code:
Sub SplitPLZ()
   Dim rng As Range
   For Each rng In ActiveSheet.UsedRange.Columns("D:G").Cells
      If rng.Value Like "A-#### *" Then
         Cells(rng.Row, 12).Value = Left(rng.Value, 6)
         Cells(rng.Row, 13).Value = Right(rng.Value, Len(rng.Value) - 7)
      End If
   Next rng
End Sub

gruss hans


  


Betrifft: AW: Zellen auseinander nehmen von: Michael
Geschrieben am: 18.08.2004 07:57:26

Danke für eure Lösungen

Die erste klappt super bis auf das er sie ned in Spalte I einfügt das ist aber kein problem!
Beim zweiten kommt eine Feher medlung:

K.a.
aber danke für die rasche Hilfe :-)

mfg Michael


  


Betrifft: AW: Zellen auseinander nehmen von: Mac4
Geschrieben am: 18.08.2004 07:43:35

Hallo Michael,

trotz der Lösung von Hans wollte Dir meine Lösung nicht vorenthalten:

Sub test()
Dim i As Long, erster_Treffer
Set Treffer = Range("D1:G" & Range("D:G").Find("*", searchdirection:=xlPrevious).Row).Find(what:="A-", LookIn:=xlValues, lookat:=xlPart)
If Not Treffer Is Nothing Then
erster_Treffer = Treffer.Address
Do
Cells(Treffer.Row, 9) = Right(Treffer, Len(Treffer) - WorksheetFunction.Find("-", Treffer, 1))
Set Treffer = Range("D1:G" & Range("D:G").Find("*", searchdirection:=xlPrevious).Row).FindNext(Treffer)
Loop While Not Treffer Is Nothing And Treffer.Address <> erster_Treffer
End If
End Sub


Marc (aus Köln)


 

Beiträge aus den Excel-Beispielen zum Thema "Zellen auseinander nehmen"