Ich habe folgendes Problem:
In einer Adress-Tabelle mit 2500 Datensätzen muss der Nachname und Vorname aus einer Zelle für eine Anschrift selektiert werden. In dieser Zelle gibt es zusätzlich auch weitere Angaben, wie Berufsbezeichnung oder Geschäft. Insgesamt 7 verschiedene Formate.
1. Nachname(NN) Vorname(VN)
2. VN NN
3. VN NN Firma
4. NN VN Firma
5. Firma VN NN
6. Firma NN VN
7. Firma
Da die Person, die diese Tabelle bearbeiten soll fast keine Erfahrung mit excel hat, sollte die Lösung im handling nicht allzu kompliziert sein.
Optimal wäre pro Zelle manuell ein Makro aufzurufen, das eine Auswahlliste zur Verfügung stellt, in der man nur die richtige Form anzuklicken braucht und dann automatisch den Vornamen und Nachnamen in die entsprechenden Zellen stellt.
Hallöchen,
gibt es zwischen den einzelnen Positionen irgendwelche Trennzeichen? Ansonsten sehe ich da die Fälle
davonschwimmen - oder waren's die Felle
Beispiel:
Nagelstudio Ilse Schön
wäre einfach, erster Text ist die Firma, zweiter der Vorname und dritter der Nachname
Nagelstudie schnelle Feile Chantalle Ilse von Drüben
So, nun gibt es ein paar mehr Worte und bei Chantalle bin ich mir nicht sicher, ob das noch zum Nagelstudio gehört oder zum Vornamen der geadelten Dame - könnte ja ein doppelter sein.
Wenn es denn so einfach wäre, insgesamt sind es wohl 9 verschiedene Formen ohne Trennzeichen. Die Datei hat meine Frau von ihrem Chef und hat 400€ gekostet. Nachbearbeitungszeit 8-10 Stunden, inklusive Sehnenscheidenentzündung und Fehler. Ich hätte für diesen Sch... kein Geld ausgegeben.
Ich bin nun auch nicht der große Ecxel-Experte
und werde eine Lösung unter Smartsuite Approach
versuchen. Das wäre dann aber nur eine Hilfskrücke. :22:
Hallöchen,
das wäre hier mal ein erster Ansatz. Funktioniert auch nur mit dem Eintrag in A2 und zeigt sozusagen ein Muster, wie man den Text trennen kann und was für den Anwender trotzdem noch für eine Arbeit dahinter steckt.
Hallo,
man könnte da einiges rumbasteln, so dass das umsortieren sogar Spaß bereiten könnte.
Ich habe auch mal eine simple Lösung in der Beispielmappe.
In Tabelle1 sind die Daten schon mit Text in Spalten getrennt in Spalten.
Diese werden manuell in tabelle2 ab Zelle A2 eingefügt.
In Tabelle2 sind die Überschriften schon in der Reihenfolge, so wie man sie haben möchte.
Die Überschriften werden beim aktivieren der tabelle2 in die Combobox eingelesen.
Man wählt eine Überschrift aus. Die Spalte wird farbig hervorgehoben.
Das bedeutet alles was man jetzt anklickt wird in diese Spalte in der gleichen Zeile geschrieben. Der vorhandene Inhalt wird nicht gelöscht, sonder ausgetauscht.
Also einfach mal etwas aus der Combobox auswählen und in die Zellen mit Einträgen klicken und beobachten.
Hier die Beispielmappe:
[
attachment=11489]
Zum Testen für alle, die keine Dateien mit Makros herunterladen möchten:
Arbeitsblatt mit dem Namen 'Tabelle2' |
| A | B | C | D | E | F | G | H |
1 | Firma | Vorname | Nachname | Strasse | Hausnummer | PLZ | Ort | Bemerkung |
2 | Hans | Müller | 12345 | Kiel | Holzstr | 15 | | |
3 | 12345 | Hamburg | Musterstr. | 100 | Fa | XyZ | Schmitz | Klaus |
4 | Merkel | Gerda | 80001 | München | valentinstr | 32 | Fa | Stereo |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
Folgender Code hinter die Tabelle:
Code:
Private Sub ComboBox1_Change()
Range("A1").CurrentRegion.Interior.ColorIndex = xlNone
If Me.ComboBox1.ListIndex > -1 Then
With Cells(1, Me.ComboBox1.ListIndex + 1)
.Resize(.CurrentRegion.Rows.Count, 1).Interior.ColorIndex = 15
End With
End If
End Sub
Private Sub Worksheet_Activate()
Me.ComboBox1.List = Application.Transpose(Range("A1").CurrentRegion.Resize(1, Range("A1").CurrentRegion.Columns.Count))
ComboBox1.ListIndex = -1
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim strgT As String
If Target.Count = 1 Then
If Me.ComboBox1.ListIndex > -1 Then
If Target.Column < 9 And Target.Row > 1 Then
If Target <> "" Then
strgT = Cells(Target.Row, Me.ComboBox1.ListIndex + 1)
Cells(Target.Row, Me.ComboBox1.ListIndex + 1) = Target
Target = strgT
End If
End If
End If
End If
End Sub
Und es muss in die Tabelle eine Combobox aus den ActiveX Steuerelementen eingefügt werden.
Hallo,
ja, ich habe mir auch mal Gedanken gemacht und anbei eine Beispieldatei. Die anderen Lösungen hab ich noch nicht angeschaut.
Mein Beispiel wird am Anfang etwas schwierig sein, denn es besteht aus 2 verschiedenen Tabellen mit vielen Button. Die 1. Tabelle dient zum auflisten der einfaccheren Daten, die man am leichtesten zuordnen kann. Die Rohdaten müssen in Spalte B kopiert werden. Mir faellt gerade ein ich habe vergessen den Index in Spalte A automatisch auszufüllen Bitte von Hand mit "ausfüllen Seriell" erledigen.
Der oberste Linke Button erstellt zuerst in Spalte N eine Liste aus Einzel Namen, wo man mit "V, N, B, F" mir sagen muss was Vorname, Name, Beruf oder Firma ist. unnütze Daten können gelöscht werden. Man kann für Doppel Nachnamen eine Zeile einfügen und danach sortieren. Doppel Vornamen findet man Programm automatisch. Sie werden Rot markiert. Nach dem ausfüllen der Spalte M mit dem Button "übernehmen" die Namen in die Spalten N-R übernehmen.
Weiter geht es mit dem Button "Spalte E-H" auflisten. Hier werden alle Daten soweit bekannt zugeordnet. Doppel Vornamen erkennt mein Programm automatisch und fügt sie in Spalte O mit ein. Zur Sicherheit wird die Zelle zum prüfen rot markiert. Ich werde aber nicht alle daten auf Anhişeb erfassen können.
Das Programm prüft beim auflisten in Spalte F-I ob die Einzelworte von der Laenge her mit dem Original String übereinstimmen. Dann wird in der OK Spalte ein Haeckchen gesetzt, sonst erscheint ein Fragezeichen. Ist das Haeckchen in Rot heisst das, Der Wert stimmt, aber das Programm ist sich nicht ganz sicher ab alle Wörter korrekt sind? Beispiel der Name "Schön" und "Schönfeld" könnte Problem geben. Rote Zeilen immer manuelle prüfen!!
Wurden Namen von Hand korrigiert kann man die Daten mit dem grünen Button als okay erklaeren. Dazu muss der Cursor in der richtigen Ok Zeile stehen! Ist die Prüfung beendet kann man dişese daten in die éGültige Daten" Tabelle verschieben. Dannach bleiben die noch unbearbeiteten Daten offen. Die kann man in Tabelle2 bearbeiten.
Tabelle2 hat ein anderes System. Zum kopieren dient der Button ganz Rechts "Tabelle" kopieren" Hier brauche ich in Spalte D den Code "V/N/B/F" ohne Space aber in der richtigen Reihenfolge. Bei Doppel Vornamen 2x "VV", ebenso bei Doppel Nachnamen, wenn kein "-" dazwischen steht. Bei Bindestrich nur einmal "N" eingeben. Hier werden alle verbleiben Worte als Firmentext oder Beruf angesehen. Wieder mit grünem Okay wenn ein Datensatz stimmt.
Weil ich nicht weiss wieveile Exoten es in den Daten gibt kann ich nicth abschaetzen wie gut das Programm ist??
Einfach in der Praxis ausprobieren. Dürfte schneller gehen als von Hand auswerten.
mfg gast 123
Hallo Atilla,
ja, ein Anfang ist gemacht
Mein Ansatz ist da deutlich komplizierter zu programmieren.
Interessant wird es bei Deinem Ansatz mit
mehrteilige Vornamen,
mehrteilige Nachnamen
mehrteilige Firmannamen
mehrteilige Ortsnamen
mehrteilige Straßennamen
Da passt ja das Austauschen nicht mehr. Eventuell könnte man da Quelle und Ziel trennen. Man wählt "Firma" in der Combo, und alles was man dann anklickt kommt in der Reihenfolge ins Ziel, wie es in der Quelle steht. Man könnte also beim Klicken der Straße erst die Hausnummer anklicken und dann den Straßennamen. Wäre aus meiner Sicht wichtig, falls man mal was vergisst. Hat man was zuviel, klickt man in der Quelle nochmal drauf und es wird aus dem Ziel entfernt.
Bei meinem Ansatz wird die Umsetzung einer Änderung z.B. komplizierter, wenn schon Daten im Folgefeld gewählt sind. Ich müsste z.B. bei "Kürzung" des Vornamens Daten aus dem Nachnamensfeld in des Vornamensfeld verschieben usw. Dazu (und auch aus anderen Gründen) würde ich den Code aus den Ereignisprozeduren auslagern und ...
Hier nochmal der String aus meinem Beispiel, noch um den mehrteiligen Vorname und Straßennamen erweitert
William Christ Birne vom Baume Baumschule Lutherstad Wittenberge GmbH & Co KG 06888 Lutherstadt Wittenberge Straße Am Bahnhof 1
müsste getrennt werden in
William Christ
Birne vom Baume
Baumschule Lutherstadt Wittenberge GmbH & Co KG
06888 Lutherstadt Wittenberge
Straße Am Bahnhof 1