Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

von rechts nur text übernehmen

von rechts nur text übernehmen
20.07.2004 09:05:05
rechts
Hallo zusammen,
benötige in VBA einen Befehl, der aus einer Zelle die Zahlen und Text beinhaltet, nur den Text der am Ende steht, also von rechts den Namen bis Zahlen beginnen.Ist immer verschieden lang.
Beispiel: der Zellinhalt sieht so aus:
017798200410072004071619000UNGUELTIGE BLZ IN C04 BLZ123232300 KTO.0000002029ERSTATTUNG 2774516464380061300MEYER,HEINZ

Kann mir jemand helfen?
Müßte das in mein Makro einbauen in Zelle C1 steht der lange Text und in B1 soll nur MEYER,HEINZ stehen.
Gruß Regina

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: von rechts nur text übernehmen
20.07.2004 09:21:14
rechts
Hallo Regina,
das könnte es tun, wenn die Voraussetzungen stimmen:
Sub test() Dim i As Integer Dim x As String x = "" For i = Len(Cells(1, 1)) To 1 Step -1 If Not IsNumeric(Mid(Cells(1, 1), i, 1)) Then x = Mid(Cells(1, 1), i, 1) & x Else Exit For End If Next MsgBox x End Sub
Voraussetzungen sind: not isnumeric() prüft auf 0...9 Alles Andere würde als teil des Reststrings erkannt, also z.B. "012345!@Meyer,Heinz" -> "!@Meyer.Heinz".
Aber auch anders herum: "012345Heinz0,Meyer" -> ",Meyer".
Es wäre schon komplizierter, in diesen Fällen weitere Sonderbehandlungen einzuführen.
Gruß Harald
Anzeige
AW: von rechts nur text übernehmen
rechts
Hallo
meinst du sowas ? ;-)
Tabelle1
 A
1017798200410072004071619000UNGUELTIGE BLZ IN C04 BLZ123232300 KTO.0000002029ERSTATTUNG 2774516464380061300MEYER,HEINZ
2MEYER,HEINZ
Formeln der Tabelle
A2 : =findname(A1)
 

Die Funktion gehört in ein Modul
Function FindName(fString As String) As String Dim i For i = Len(fString) To 1 Step -1 If IsNumeric(Mid(fString, i, 1)) Then FindName = Right(fString, Len(fString) - i) Exit Function End If Next i End Function
Aus einem anderen Makro kannst du sie so aufrufen
Sub test() MsgBox FindName(Range("a1").Value) End Sub
Gruss Rainer
Anzeige
AW: von rechts nur text übernehmen
rechts
Hi,
ach wie heisst dieses Bankenformat?
Das kommt mir so bekannt vor ;-)
ansonsten nimm mal diesen Schnipsel:
Sub nameExtract() Dim lngZeil As Long Dim intLetter As Integer lngZeil = 1 Do Until Cells(lngZeil, 1) = "" For intLetter = Len(Cells(lngZeil, 1)) To 1 Step -1 If IsNumeric(Mid(Cells(lngZeil, 1), intLetter, 1)) Then Cells(lngZeil, 2) = Right(Cells(lngZeil, 1), Len(Cells(lngZeil, 1)) - InStrRev(Cells(lngZeil, 1), ",")) Cells(lngZeil, 3) = Mid(Cells(lngZeil, 1), intLetter + 1, Len(Cells(lngZeil, 1)) - (intLetter + 1 + Len(Cells(lngZeil, 2)))) Exit For End If Next lngZeil = lngZeil + 1 Loop End Sub
Eintrage sind in Spalte A und fangen in der ersten Zeile an.
Bye
Nike
Anzeige
Nur zum Spaß als Formel
20.07.2004 10:28:29
peh
Hi,
ein Ungetüm, was die Formelsupis sicherlich noch drücken können.
Aber hat eben mal Spaß gemacht.
 
 AB
2017798200410072004071619000UNGUELTIGE BLZ IN C04 BLZ123232300 KTO.0000002029ERSTATTUNG 2774516464380061300MEYER,HEINZMEYER,HEINZ
Formeln der Tabelle
B2 : {=RECHTS(A2; LÄNGE(A2) - MAX(ISTZAHL(WERT(TEIL(A2;ZEILE(INDIREKT("1:"&LÄNGE(A2)));1))) * ZEILE(INDIREKT("1:"&LÄNGE(A2)))))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß Peter
Anzeige
AW: von rechts nur text übernehmen - ohne VBA
rechts
Hallo Regina,
... geht es auch :-)
Tabelle1
 AB
1017798200410072004071619000UNGUELTIGE BLZ IN C04 BLZ123232300 KTO.0000002029ERSTATTUNG 2774516464380061300MEYER,HEINZMEYER,HEINZ
Formeln der Tabelle
B1 : {=RECHTS(A1;LÄNGE(A1)-MAX(ISTZAHL(TEIL(A1;SPALTE(1:1);1)+0)*SPALTE(1:1)))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Servus aus dem Salzkammergut
Franz
Anzeige
Hmm ... das alte Problem
20.07.2004 10:59:51
peh
Hi Franz,
irgendwie kommt mir das aus dem Quersummenthread bekannt vor ;-)
Ich meine das Problem mit Spalte(1:1)
Wenn der Text länger als 256 Zeichen ist wird es Probleme geben und
ansonsten wird jedesmal egal wie lang eine 256 Matrix erstellt.
Ich denke immernoch das die Lösung mit Indirekt und Zeilen (ich glaube Peter Dorigo
hat dies zum ersten Mal vorgestellt) am saubersten ist.
Gruß Peter
AW: Hmm ... das alte Problem
FP
Hallo Peter,
so darf der Name zwar nur noch 40 Zeichen lang sein, ist aber bestimmt wesentlich performanter als die Lösung per INDIREKT... ;-)
=RECHTS(A1;40-MAX(ISTZAHL(TEIL(RECHTS(A1;40);SPALTE(A:AN);1)+0)*SPALTE(A:AN)))
Servus aus dem Salzkammergut
Franz
Anzeige
Danke; Danke Super
Regina
O.T
AW: von rechts nur text übernehmen - kürzer
rechts
Hallo Regina,
etwas kürzer geht es noch:
Tabelle1
 AB
1017798200410072004071619000UNGUELTIGE BLZ IN C04 BLZ123232300 KTO.0000002029ERSTATTUNG 2774516464380061300MEYER,HEINZMEYER,HEINZ
Formeln der Tabelle
B1 : {=ERSETZEN(A1;1;MAX(ISTZAHL(TEIL(A1;SPALTE(1:1);1)+0)*SPALTE(1:1));"")}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Servus aus dem Salzkammergut
Franz
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige