Anzeige
Archiv - Navigation
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Geht das

Geht das
22.01.2005 21:32:35
Baymax
Hallo,
ich kopiere mir Adressen aus aus dem Netz, die ich dann wie im Anhang unten zu sehen ist, über kopieren Inhalte einfügen in Excel kopiere.
Ist es möglich das Format automatisch so abzuändern wie das bei den obigen Adressen manuell genacht wurde?
Habe dazu im Archiv leider nichts gefunden.
https://www.herber.de/bbs/user/16626.xls
Gruß
Baymax

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Geht das
22.01.2005 21:44:57
Baymax
Hallo hier nochmal Baymax,
habe leider vergessen darauf hinzuweisen dass die PLZ und der Ort jeweils in eine eigene Zelle sollten. Bei der Tel. Nr. sollte nur die Nr. ohne das TEL. übernommen werden.
Mit den besten Grüßen aus dem tief verschneitem Bayerischen Wald
Baymax
Klar....
Ramses
Hallo
etwas modifiziert
Option Explicit

Sub Divide_Adresses()
Dim i As Integer
Dim lr As Integer
Dim tmp As String
lr = Range("A65536").End(xlUp).Row
For i = 2 To lr
If Cells(i, 1) <> "" Then
With Cells(i, 1)
.Offset(1, 0).Cut Destination:=.Offset(0, 4)
tmp = .Offset(0, 4).Text
.Offset(0, 4) = Trim(Right(tmp, Len(tmp) - 4))
.Offset(2, 0).Cut Destination:=.Offset(0, 1)
tmp = .Offset(3, 0).Text
.Offset(0, 2) = Left(tmp, InStr(1, tmp, " ") - 1)
.Offset(0, 3) = Right(tmp, Len(tmp) - InStr(1, tmp, " "))
.Offset(3, 0).Clear
End With
End If
Next i
End Sub

Vorgehen wie im anderen Beitrag bereits beschrieben
Gruss Rainer
Anzeige
AW: Geht das
Ramses
Hallo
Kopier das Makro in ein Modul deiner Tabelle und lass laufen.
Danach kansnt du die Tabelle nach Spalte A sortieren
Option Explicit

Sub Divide_Adresses()
Dim i As Integer
Dim lr As Integer
Dim tmp As String
lr = Range("A65536").End(xlUp).Row
For i = 26 To lr
If Cells(i, 1) <> "" Then
With Cells(i, 1)
.Offset(1, 0).Cut Destination:=.Offset(0, 4)
.Offset(2, 0).Cut Destination:=.Offset(0, 1)
tmp = .Offset(3, 0).Text
.Offset(0, 2) = Left(tmp, InStr(1, tmp, " ") - 1)
.Offset(0, 3) = Right(tmp, Len(tmp) - InStr(1, tmp, " ") - 1)
.Offset(3, 0).Clear
End With
End If
Next i
End Sub

Gruss Rainer
Anzeige
AW: Geht das
22.01.2005 22:03:37
Baymax
Hallo Ramses,
besten Dank für Deine schnelle Antwort!
Leider fehlt bei dem Ortsnamen der erste Buchstabe?
2 Datensätze werden nicht umsortiert?
Was habe ich falsch gemacht?
Hier eine neue Tabelle.
https://www.herber.de/bbs/user/16629.xls
Danke
Baymax
AW: Geht das
22.01.2005 22:14:24
Baymax
Hallo Ramses,
jetzt zeigt er mir leider Laufzeitfehler 5 ?
Ich hoffe ich nerve nicht zu stark.
CU
Baymax
Nimm den Code von oben. o.T.
oben.
...
AW: Nimm den Code von oben. o.T.
22.01.2005 22:37:00
oben.
Hallo,
geht leider noch nicht, immer noch Laufzeitfehler :-(
CU
Baymax
AW: Nimm den Code von oben. o.T.
oben.
Hallo
Das makro läuft mit deiner Beispieldatei ohne Probleme durch.
Wenn du auf "Debuggen" bei der Fehlermeldung gehst, welche Zeile wird dann markiert ?
Gruss Rainer
Anzeige
AW: Nimm den Code von oben. o.T.
22.01.2005 22:48:29
oben.
Hallo,
.Offset(0, 2) = Left(tmp, InStr(1, tmp, " ") - 1)
dieser Eintrag ist gelb markiert. Zeile 14
CU
Baymax
Adressenfehler
Ramses
Hallo
kann es sein, dass du nicht von jeder Adresse einen Ortsnamen oder PLZ hast, oder diese ein anderes Trennzeichen haben ?
Ansonsten gibt es keinen Grund, warum das Makro hier aussteigen sollte.
Lass das alte Makro nochmals laufen, gehe auf "Debuggen" und zeige mit der Maus auf "tmp". Daraufhin wird dir ein gelbes QuickInfo Feld angzeigt mit dem Inhalt der Variablen.
Zeige mir denn dann bitte nochmals
Hier eine andere Variante, bei der du allerdings um eine kleine Datennachbearbeitung dann nicht herumkommst.
Probier mal das:
Option Explicit

Sub Divide_Adresses()
Dim i As Integer
Dim lr As Integer
Dim tmp As String
lr = Range("A65536").End(xlUp).Row
For i = 2 To lr
If Cells(i, 1) <> "" Then
With Cells(i, 1)
.Offset(1, 0).Cut Destination:=.Offset(0, 4)
tmp = .Offset(0, 4).Text
.Offset(0, 4) = Trim(Right(tmp, Len(tmp) - 4))
.Offset(2, 0).Cut Destination:=.Offset(0, 1)
tmp = .Offset(3, 0).Text
If tmp <> "" Then
If InStr(1, tmp, " ") = 0 Then
MsgBox "Datenfehler bei " & Cells(i, 1).Offset(3, 0).Address & Chr$(13) & _
"Die weiteren Daten werden bearbeitet"
Else
.Offset(0, 2) = Left(tmp, InStr(1, tmp, " ") - 1)
.Offset(0, 3) = Right(tmp, Len(tmp) - InStr(1, tmp, " "))
.Offset(3, 0).Clear
End If
End If
End With
End If
Next i
End Sub

Gruss Rainer
Anzeige
AW: Adressenfehler
22.01.2005 23:39:01
Baymax
Hallo Rainer,
in der Quickinfo steht nut TMP= ""
Bei Deinem neuen Makro passiert folgendes, die oberen Adressen (die schon sortiert sind)
verschiebt sich der Name des Hotels auf weitere Spalten a - e
siehe hier
https://www.herber.de/bbs/user/16630.xls
Mit dem bisschen nachbearbeiten könnte ich gut leben.
Gruß
Lutz
AW: Adressenfehler
Ramses
Hallo
Dann stelle den Startwert
For i = 10 to lr
Ich bin natürlich davon ausgegangen, dass deine Daten alle noch in ungeordneter Form vorliegen.
Gruss Rainer
AW: Adressenfehler
23.01.2005 18:29:57
Baymax
Hallo Ramses,
oder so. ;-))
Ich habe mich von meinem eigenem Beispiel verwirren lassen.
In der Regel sind erst einmal alle Adressen unsortiert.
Jetzt habe es sogar ich verstanden.
Vielen Dank noch einmal
Gruß
Baymax
Anzeige
AW: Geht das
bernd
hallo baymax
ich weiss nicht wie du manuell geändert hast,
aber schneller ginge das evtl. so:
den 4er block kopieren
inhalte einfügen-haken bei transponieren
dann hast du die werte schonmal horizontal
die spalten ordnen wie du es haben möchtest
die spalte mit den orten und den plz mit Daten-Text in spalten trennen
bernd
AW: Geht das
22.01.2005 22:05:59
Baymax
Hallo Bernd,
danke für Deine schnelle Antwort, aber das Makro von Ramses ist echt gut.
Danke
Baymax

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige