Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA If Then Else Problem
15.09.2004 11:15:07
Rehhirsch
Hallo, ich nochmal. Also folgendes Problem : Angenommen ich habe in der Spalte C in der 1. Zelle "Mario Henze" zu stehen und in der 2. Zelle "Mario Himbeer Henze". Nun teile ich diese mittels Script in mehrere Zellen auf, so daa der 1. Name nun 2 weitere Zellen belegt, nämlich D und E, und der 2. Name 3 weitere Zellen, nämlich D und E und F. Nun möchte ich dass das Script mittels If ... Then ... Else ... Formel erkennt ob in einer Zelle von Spalte F etwas steht und wenn ja, dass er dann den Inhalt in der dazugehörigen Zelle von Spalte C an den Anfang setzt und dann den Inhalt der anderen beiden Zellen dahinter, mit dieser Formel :
ActiveCell.FormulaR1C1 = "=+RC[3] &"" "" &RC[1] &"" "" &RC[2]"
Wenn in der Zelle von Spalte F allerdings nichts steht soll er diese Formel anwenden : ActiveCell.FormulaR1C1 = "=+RC[2] &"" "" &RC[1]" .
Er soll praktisch zwischen Namen mit einem Vornamen und namen mit 2 Vornamen unterscheiden und die jeweilige Formel anwenden. Kann mir jemand sagen wie ich das machen kann? Ich weiß dass dies eine sehr komplizierte Umschreibung ist, aber ich weiß nich wie ich es noch genauer bescheiben soll, da mir in anderen Foren irgendwie keiner helfen kann...
Wenn noch Fragen sind bitte stellen, ich antworte sofort!
MfG Rehhirsch

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA If Then Else Problem
15.09.2004 11:40:03
Dominic
Man kann es auch mit der Wenn Formel machen:
ActiveCell.FormulaR1C1 = "=IF(RC[3]="""",RC[2]&"" ""&RC[1],RC[3]&"" ""&RC[1]&"" ""&RC[2])"
Dominic
AW: VBA If Then Else Problem
15.09.2004 12:23:21
Rehhirsch
Alles klar danke, so funktioniert es schon mal recht gut. Wie muss ich aber die Formel :
Selection.FormulaR1C1 = "=IF(RC[3]="""",RC[2]&"" ""&RC[1],RC[3]&"" ""&RC[1]&"" ""&RC[2])"
umschreiben, wenn ich zum beispiel einen Namen mit 4 Bestandteilen habe, wie z.B.:
"Mario u. Christian Krakau"
Daraus soll er "Krakau Mario u. Christian" machen.
MfG Rehhirsch
AW: VBA If Then Else Problem
15.09.2004 12:33:05
Dominic
Gib es eine maximale Begrenzung der Anzahl der Vornamen?
Anzeige
AW: VBA If Then Else Problem
15.09.2004 12:36:16
Rehhirsch
Ja ich glaube mehr als 3 Vornamen hat keiner, also besteht kein Name aus mehr als 4 Teilen.
AW: VBA If Then Else Problem
15.09.2004 12:53:33
Dominic
Wenn du lange If... Then... Else... Formeln vermeiden möchtest, hier eine Lösung die Du beliebig erweitern kannst:
ActiveCell.FormulaR1C1 = "=TRIM(CONCATENATE(RC[4],"" "",RC[1],"" "",RC[2],"" "",RC[3]))"
CONCATENATE = Verketten der Zellinhalte mit einer Leerzeichen, also bei nur eine Vorname werden 2 Leerzeichen hinten stehen.
TRIM = Glättet das Ergebnis: alle unnötigen Leerzeichen löschen, d.h. die 2 letzten im Beispiel.
Dominic
AW: VBA If Then Else Problem
15.09.2004 13:34:06
Rehhirsch
Ja OK, dadurch wäre das Problem mit den 4 Namen gelöst, danke bis dahin, allerdings kann ich dann diese Formel nicht auf alle Fälle anwenden, also nicht auf Namen die nur aus 2 oder 3 Teilen bestehen. Es sieht ja so aus, dass das Script ausgeführt werden soll und der eine Teil Scripts, um den es ja hier geht, dann eine Spalte mit tausenden von Namen durchläuft und diese dann in die richtige Reihenfolge bringen soll. Kannst mir da auch weiterhelfen? Bitte...
MfG Rehhirsch
Anzeige
AW: VBA If Then Else Problem
15.09.2004 14:08:12
Dominic
Was für eine Sortierung nimmst Du vor: Name, Vorname, Anzahl Vornamen? Was soll denn passieren?
Wenn ich mehr weis kann ich vielleicht weiterhelfen.
Dominic
AW: VBA If Then Else Problem
15.09.2004 14:34:58
Rehhirsch
Naja, zunächsteinmal glaube ich dass ich es jetzt hinbekommen habe und zwar mit dieser superkomplizierten Formel :
Selection.FormulaR1C1 = "=IF(RC[4]="""",(IF(RC[3]="""",RC[2]&"" ""&RC[1],RC[3]&"" ""&RC[1]&"" ""&RC[2])),TRIM(CONCATENATE(RC[4],"" "",RC[1],"" "",RC[2],"" "",RC[3])))"
Also mit dieser Formel scheint er es so richtig zu machen : Er soll erst gucken ob der Name aus 4 Teilen besteht, wenn nicht wendet er deine erste Formel an, wo er den Nachnamen vor den oder die Vornamen setzt.
Wenn der Name allerdings aus 4 Teilen besteht wendet er deine zweite Formel an, wo er den Nachnamen vor den anderen eventuellen Vornamen setzt.
Es scheint soweit jetz alles zu klappen, außer dass er wenn der Name nur aus einem Teil besteht nach der ganzen Prozedur ein Leerzeichen davor macht. Eigentlich sollte dies ja durch das Trim weggehen, aba das funzt wohl noch nicht so richtig...
Ist dieser Weg, also mit der obigen Formel der richtige oder gibt es einen anderen besseren?
Danke für deine Hilfe bis jetz!!!
MfG Rehhirsch
Anzeige
AW: VBA If Then Else Problem
15.09.2004 14:55:30
Dominic
Wenn Du TRIM an den Anfang der Formel setzt, dann sollte es gehen. Jetzt wird TRIM nur dann ausgeführt wenn es 4 Namen findet:
"=TRIM(IF(RC[4]="""",IF(RC[3]="""",RC[2]&"" ""&RC[1],RC[3]&"" ""&RC[1]&"" ""&RC[2]),RC[4]&"" ""&RC[1]&"" ""&RC[2]&"" ""&RC[3]))"
Dominic
AW: VBA If Then Else Problem
15.09.2004 15:01:25
Rehhirsch
Jo alles klar danke!!!

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige