Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - erste Buchstaben eines Textes
#1
Hallo liebe Excelfreunde,

ich habe zwei "Probleme" die mich dann, wie ich merke doch überfordern  Huh

1.) 
Gern würde ich immer nur den Anfangsbuchstaben der Wörter aus einer Zelle in eine andere Zelle schreiben.

Stünde in einer Zelle:
Hund, Katze, Esel, Maus

Dann sollte also in einer anderen Zelle:
H,K,E,M 
stehen. 

2.)
Fängt in dem Text dieser einen Zelle ein Wort mit einem P an, dann sollen die ersten zwei Buchstaben dieses Wortes verwendet werden.
Stünde also in einer Zelle:
Hund, Katze, Pferd, Maus, Papagei

Dann sollte in einer anderen Zelle:
H,K,Pf,M,Pa
stehen.

Wie könnte man sowas geschickt umsetzen?

Liebe Grüße
Klaus
Antworten Top
#2
Hallöchen,

mit WENN und LINKS. Du überprüfst, ob LINKS(...;1) P ergibt und wenn ja, nimmst Du LINKS(...;2) und ansonsten ...;1
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Klaus
Antworten Top
#3
Hallo schauan,

vielen Dank für deine schnelle Nachricht.

Wenn ich das recht verstehe, dann wäre dies über Formel so lösbar.
Leider sind die verschiedenen Blätter um die es geht unveränderbar.
Heißt, ich müsste tatsächlich mit VBA arbeiten.  

Liebe Grüße
Klaus
Antworten Top
#4
Hallöchen,

Zitat:Leider sind die verschiedenen Blätter um die es geht unveränderbar.
Heißt, ich müsste tatsächlich mit VBA arbeiten.

Willst Du nur eine Meldung? Ich hatte gelesen, dass die Daten in Zellen sollen. Wenn die aber nicht veränderbar sind ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Ja du hast Recht, das hab ich geschrieben. Ich hätte mich besser ausdrücken sollen. Entschuldige bitte.
Ich schreibe dieses Kürzel in ein anderes Blatt und ich verwende es im Dateinamen.
Antworten Top
#6
Hallöchen,

Zitat:Ich schreibe dieses Kürzel in ein anderes Blatt und ich verwende es im Dateinamen.

Ist denn das "andere Blatt" auch geschützt? Entferne den Schutz, trage die Formeln ein und setze den Schutz wieder.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
hm... ok, ist dann zwar nicht so wie angedacht, könnte aber gehen.

allerdings würde doch "Links" auch nur das erste Wort prüfen? Wie rutscht man denn ein Wort weiter ohne das man weiß wie viele Buchstaben das Wort haben wird?

wäre das dann nicht in etwa adäquat zu:

dim var as string
var = left(cells(1,1),1) 'für Zelle A1
Antworten Top
#8
Hallo, 19

hier als UDF und als SUB: 21

.xlsb   Etster_oder_die_ersten_beiden_Buchstaben_aus_Zelle_mit_mehreren_Woertern.xlsb (Größe: 17,66 KB / Downloads: 4)

Das kannst du natürlich auch auf einem anderen Tabellenblatt ausgeben. Blush
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Klaus
Antworten Top
#9
Hallo Case,

jetzt bin ich aber platt.
Im Leben hätte ich das so nicht hin bekommen. Mit dem Code muss ich mich erstmal in Ruhe befassen.
Ein Träumchen  18

Vielen herzlichen Dank
Klaus
Antworten Top
#10
Hallo,

vermutlich zu spät:

Code:
function Erste_Buchstaben(rng) as string
Tx = split(replace(rng, " ", ""), ",")
for i = 0 to ubound(Tx)
    if left(Tx, i) = "P" then
        Tx(i) = left(Tx(i),2)
    else
        Tx(i) = left(Tx(i),1)
    endif
next i

Erste_Buchstaben = join(Tx, ",")
end function

mfg

ungeprüft
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Klaus
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste