![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Master
![]() Registriert seit: 17.09.2001
Alter: 48
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: 48
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) | |
|
|