ich suche eine Funktion in der ich im Prinzip zeichen zählen und ausgeben lassen kann ohne das leerzeichen gezählt werden.
Also Beispiel :
=links(A2;250) <- so zählt excel ja stur von links 250 zeichen. Genau so soll es auch sein nur das beim zählen leerzichen ignoriert werden, allerdings müssen diese trotzdem mit ausgegeben werden...
11.04.2017, 18:39 (Dieser Beitrag wurde zuletzt bearbeitet: 11.04.2017, 18:40 von Ego.)
Hallo Timo,
ich könnte es nur mit einer selbst geschriebenen Funktion (UDF) in VBA in ein allgemeines Modul eingebaut:
Code:
Option Explicit Public Function LINKSOHNE(strText As String, lngZeichen As Long) As String Dim lngAnz As Long Dim lngPos As Long
LINKSOHNE = "" If Len(strText) >= lngZeichen Then lngPos = 0 lngAnz = 0 While lngPos < Len(strText) And lngAnz < lngZeichen lngPos = lngPos + 1 If Mid(strText, lngPos, 1) <> " " Then lngAnz = lngAnz + 1
End If Wend If lngAnz = lngZeichen Then LINKSOHNE = Left(strText, lngPos) End If End If End Function
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
11.04.2017, 18:51 (Dieser Beitrag wurde zuletzt bearbeitet: 11.04.2017, 18:52 von Ego.)
Hallo Timo,
da die Funktion LINKS den gesamten Text ausgibt, wenn er kleiner als die gewünschte Anzahl an Zeichen ist, hier die entsprechende Version:
Code:
Public Function LINKSOHNE2(strText As String, lngZeichen As Long) As String Dim lngAnz As Long Dim lngPos As Long
If Len(strText) < lngZeichen Then LINKSOHNE2 = strText Else lngPos = 0 lngAnz = 0 While lngPos < Len(strText) And lngAnz < lngZeichen lngPos = lngPos + 1 If Mid(strText, lngPos, 1) <> " " Then lngAnz = lngAnz + 1
End If Wend LINKSOHNE2 = Left(strText, lngPos) End If End Function
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Zitat:...leerzichen ... allerdings müssen diese trotzdem mit ausgegeben werden.
@Steffl: Deine Lösung passt nicht zu
Zitat:...nur das beim zählen leerzichen ignoriert werden...
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Guten Morgen auch hier. Jonas es scheint leute wie dich zu geben die vor lauter langeweile alles und jeden schlecht machen müssen. Was ist verwerflich daran wenn ich mehrere Ansatzpunkte suche um mein Problem zu lösen. Genau dafür sond solch Foren doch da...
Naja zurück zum Thema:
(11.04.2017, 18:39)Ego schrieb: Hallo Timo,
ich könnte es nur mit einer selbst geschriebenen Funktion (UDF) in VBA in ein allgemeines Modul eingebaut:
Code:
Option Explicit Public Function LINKSOHNE(strText As String, lngZeichen As Long) As String Dim lngAnz As Long Dim lngPos As Long
LINKSOHNE = "" If Len(strText) >= lngZeichen Then lngPos = 0 lngAnz = 0 While lngPos < Len(strText) And lngAnz < lngZeichen lngPos = lngPos + 1 If Mid(strText, lngPos, 1) <> " " Then lngAnz = lngAnz + 1
End If Wend If lngAnz = lngZeichen Then LINKSOHNE = Left(strText, lngPos) End If End If End Function
@ EGO. Dein VBA kann ich leider nicht testen da ich null plan davon habe was VBA ist und wie ich es verwenden kann. Gibt es evtl ein kurzes How to oder ähnliches dann würde ich es gerne probieren.
(11.04.2017, 18:38)Steffl schrieb: Auch Hallo,
und so habe ich es verstanden
Code:
=LINKS(A2;250-LÄNGE(WECHSELN(A2;" ";"")))
Da werden zwar keine Leerzeichen mitgezählt -> Aber bei der Ausgabe werrden die erforderlichen Leerzeichen auch nicht mit ausgegeben. Und dies ist leider zwingend erforderlich.