Registriert seit: 01.08.2016
Version(en): 2007
Hallo liebe Experten der VBA-Kampfkunst,
ich bin mal wieder der Ochse vorm Berg.
Ich habe in einer Spalte A von A1 bis A100 ganz normale Sätze stehen.
Wie üblich werden die einzelnen Wörter in den Sätzen dabei von Leerzeichen getrennt.
Wie kann ich möglichst schnell und einfach alle diese Leerzeichen in den Zellen von A1 bis A100 zählen?
Danke im voraus für eure Hilfe.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
03.01.2017, 17:45
(Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2017, 17:46 von RPP63.)
Moin!
Ohne VBA:
=SUMMENPRODUKT(LÄNGE(A1:A100)-LÄNGE(WECHSELN(A1:A100;" ";"")))
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Lupy,
erst mal die Theorie.
Mit der Funktion LÄNGE ermittelst Du die Satzlänge.
Mit der Funktion WECHSELN kannst Du die Leerzeichen aus einem Satz entfernen.
Wenn Du nun die Originallänge mit der "WECHSEL"-Länge verrechnest, hast Du die Anzahl Leerzeichen. Bekommst Du das so gebacken?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 01.08.2016
Version(en): 2007
Hallo und Danke,
aber ich brauche wie immer eine VBA Lösung.
Ich denke es müßte doch irgendeine Funktion geben die so etwas macht.
Gehe ich in Excel auf Suchen und Ersetzen zeigt mir das Programm
von Microsoft sofort an wieviel Stellen ersetzt worden sind.
Daher mein Optimismus auf eine extreme kurze Schnelllösung.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Was ist an meiner Formellösung, die natürlich auch per VBA rechnen darf, keine "extrem schnelle Kurzlösung"?
Bekommst Du dies nicht umgesetzt?
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 01.08.2016
Version(en): 2007
Doch eine solche Umsetzung bekomme ich noch hin,
jedoch möchte ich die ermittelte Leerzeichenanzahl in
weiteren VBA Code einbauen. Hätte natürlich schon
ein paar Ideen wie man so etwas machen könnte.
Stichwort Split Funktion und dann Zeile für Zeile per
Schleife hochzählen. Mich interessiert aber die
effektivste Möglichkeit. Wenn's so eine Funktion
nicht gibt auch Ok. Aber dann schreibt mir das
bitte.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hi!
Ist nicht böse gemeint, aber dies ist Killefit und ich nehme Dir die Umsetzung nicht ab.
Zwei Lösungen:
Code:
Sub Quatsch()
MsgBox Evaluate("=SUMPRODUCT(LEN(A1:A100)-LEN(SUBSTITUTE(A1:A100,"" "","""")))")
MsgBox [SUMPRODUCT(LEN(A1:A100)-LEN(SUBSTITUTE(A1:A100," ","")))]
End Sub
Statt MsgBox darfst Du natürlich auch eine Variable füllen.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
per VBA könnte es so ausehen:
Code:
Sub leerzeichen()
Dim i As Long, lngAnzahl As Long
For i = 1 To 100
If Cells(i, 1) <> "" Then lngAnzahl = lngAnzahl + UBound(Split(Cells(i, 1)))
Next i
MsgBox lngAnzahl
End Sub
Gruß Atilla
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
(03.01.2017, 18:14)atilla schrieb: per VBA könnte es so ausehen:
Sorry, aber chinesisch hatte ich doch auch nicht geschrieben. :21:
Bei 100 Zellen sicherlich egal, aber bei größeren Bereichen?
Aber gut, ich teste mal …
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Ralf,
was ist schlimm daran, mehrere Möglichkeiten aufgezeigt zu bekommen?
Wenn ich VBA einsetze, dann würde ich persönlich meinen Weg gehen.
Gruß Atilla