![]() |
![]() |
|
|
|||||||
| Programmierung Rat & Tat für Programmierer |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Master
![]() Registriert seit: 17.09.2001
Alter: 49
Beiträge: 563
|
Hallo
hab da wieder mal ein kleines Problem sollte eine Funktion haben dir mir aus den Zelleninhalten zB. DDr. Max Mustermann Med. Dr. Franz-Stefan Ates Erich Vogel den Nachnamen , den Vornamen und den kompletten Titel herausnimmt und in dementsprechende Zellen einträgt ich bin schon soweit dass ich den Nachnamen herausbekomme aber alles ander scheitert kläglich wer kann mir helfen? Danke für eure Hilfe |
|
|
|
|
|
#2 |
|
Master
![]() |
HI!
Leider hab ich noch nie etwas in Exel usw programmiert. Aber VBA soll ja VB ser ähnlich sein. Vielleicht hilft dir mein Code ja weter Code:
Private Const AlleTitel As String = "DR. DDR. PROF. DOKTOR UNIPROF. MED."
Private Sub Command1_Click()
Dim fullname As String 'Hier wird der Volle Name zwischengespeichert
Dim VName As String 'Hier kommt der nachname hin
Dim NNAme As String 'Hier der Vorname
Dim Titel As String 'Die gesammelten Titel
Dim temp As String 'Hält den Temporären Abschnitt
Dim iPos As Integer 'Um zu entscfheiden ob wir beim vornamen oder beim nachnamen sind
fullname = Trim(Text1.Text) & " " 'Alle führenden und nachkommenden spaces wegschneiden und ein space hinufügen
While Len(fullname) > 0 'Solange wir was zum verarbeiten haben
temp = Left(fullname, InStr(1, fullname, " ") - 1) 'Den nächsten teil des namens (bis zum sapce) rausschneiden
fullname = Right(fullname, Len(fullname) - InStr(1, fullname, " ")) 'Den anderen teil rausschneiden
If InStr(1, AlleTitel, UCase(temp)) Then 'Prüfen ob der Teil des namens ein Titel ist dh ob er in unserem AlleTitel String vorkommt
'Es ist ei nTitel also zu unseren endgültigen Titeln hinzufügen
Titel = Titel & " " & temp
Else
'Es ist kein titel
If iPos = 0 Then
'Wen niPos noch 0 ist ist es der vorname
VName = temp
iPos = 1
Else
'Ansonsten der Nachname
NNAme = temp
End If
End If
Wend
Titel = LTrim(Titel) 'Das 1. Leerzeichen vom titel wegschneiden
End Sub
Um zu entscheiden ob es ein Titel ist oder nicht, haben wir einen String in dem Alle titel drinnen stehen, dann prüfen wir ub der abschnit den wir gerade beabeiten in diesem string vorkommt, wenn ja dann wird er zu unserem Titel string hinzugefügt. Ich hoffe mein Code ist verständlich und hilft dir weiter. Bei Fragen melde dich einfach wieder. ![]() lg
____________________________________
__________________ |»»»»»SONIC««««««| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |
|
|
|
|
|
#3 |
|
Master
![]() Registriert seit: 17.09.2001
Alter: 49
Beiträge: 563
|
danke für deine Hilfe
kann ich leider nicht so machen da die Daten zu unterschiedlich sind - leider mein Ansatz ist eher folgendermaßen zuerst die Zeichenkette umdrehen dann nach dem ersten Leerzeichen suchen Zeichenkette von rechts rausschreiben wieder Leerzeichen suchen dann Zeichenkette zwischen ersten und 2. Leerzeichen rausschreiben und dann die zeichen vor dem 2. Leerzeichen rausschreiben aber die Frage ist wie löse ich das programmiertechnisch in Excel VBA |
|
|
|
|
|
#4 |
|
Master
![]() |
Hi!
Ich versteh nicht ganz was der unterschied zwischen deiner und meiner Methode sein soll, außer das du die strings 2x drehst. nehmen wir "Med. Dr. Franz-Stefan Ates" als Beispiel: Meine Methode: 1.) beim 1. leerzeichen schneiden "Med." übrig bleibt "Dr. Franz-Stefan Ates " wenn "Med." in dem string der titel vorkommt dann für den Titel übernehmen (ansonsten währe es ein vorname) 2.) beim nächsten leerzeichen schneiden "Dr." übrig bleibt "Franz-Stefan Ates " kommt wieder in unserer Titelliste vor also zum titel hinzufügen. Titel sieht wie folgt aus " Med. Dr." 3.) beim nächsten leerzeichen schneiden "Franz-Stefan" übrig bleibt "Ates " kommt in unserer titelliste nicht vor also ist es ein vorname 4.) beim nächsten leerzeichen schneiden "Ates" übrig bleibt "" kommt in der Titelliste nicht vor also ist es der nachname ENDE Deine Methode: 1.) string umdrehen aus "Med. Dr. Franz-Stefan Ates" wird "setA nafetS-znarF .rD .deM" 2.) bis zum 1. leerzeichen schneiden "setA" "nafetS-znarF .rD .deM" als Nachname speichern 3.) bis zum 1. leerzeichen schneiden "nafetS-znarF" ".rD .deM" als Vorname speichern der rest ist Titel. Vielleicht steh ich ja auf der Leitung.... lg
____________________________________
__________________ |»»»»»SONIC««««««| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|