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, 17:39 (Dieser Beitrag wurde zuletzt bearbeitet: 11.04.2017, 17: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, 17:51 (Dieser Beitrag wurde zuletzt bearbeitet: 11.04.2017, 17: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, 17: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, 17: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.