WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 12.03.2002, 11:54   #1
Montafon
Master
 
Registriert seit: 17.09.2001
Alter: 48
Beiträge: 563


Standard Excel Zeichenkette trennen in Titel, Vorname und Nachname

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
Montafon ist offline   Mit Zitat antworten
Alt 12.03.2002, 13:57   #2
Sonic
Master
 
Registriert seit: 28.03.2000
Alter: 45
Beiträge: 691


Sonic eine Nachricht über ICQ schicken
Standard

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
Das wichtigste ist das von links nach rechts jeder teil einzeln abgearbeitet wird.
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««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Sonic ist offline   Mit Zitat antworten
Alt 12.03.2002, 14:02   #3
Montafon
Master
 
Registriert seit: 17.09.2001
Alter: 48
Beiträge: 563


Standard

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
Montafon ist offline   Mit Zitat antworten
Alt 12.03.2002, 16:11   #4
Sonic
Master
 
Registriert seit: 28.03.2000
Alter: 45
Beiträge: 691


Sonic eine Nachricht über ICQ schicken
Standard

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««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Sonic ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:05 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag