Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zeichen zählen wie in Word (Excel XP)





Frage

Hallo zusammen, gibt es irgendeine Möglichkeit,alle Zeichen in einer Excel-Tabelle (Excel XP) zu zählen, so wie in Word (incl. leerzeichen usw.)? Gerne auch per Makro, dann aber bitte mit Erklärung, wie ich was wo eintragen muß, hab absolut keinen Plan von VBA. (Hab's nur mal geschafft, ein Makro aufzuzeichnen... :-) ) Vielen Dank für Eure Hilfe im Voraus. Gruß cmkatz

Antwort 1 von want2cu

Hallo CMKATZ,

m.E. geht das nicht , zumindest ncht ohne VBA.

Mit ZÄHLENWENN und dem * kannst du nur die Zellen mit Inhalt zählen, aber nicht die einzelnen Zeichen.

Ich hätte aber wieder mal einen Praktikervorschlag: kopier doch die Tabelle einfach komplett nach Word und lass dort die "Wörter" zählen, Dabei werden auch alle Zeichen gezählt und explizit angegeben ;-)

CU
want2cu

Antwort 2 von cmkatz

hi want2cu,

diesen Vorschlag hatte ich auch schon im Sinn, aber leider sind 20 000 Zeilen mit je 6 Zellen etwas zuviel für Word, sodaß es immer den Löffel schmeißt.


Zur Erklärung:

Es sollen für einen Kunden 20 000 Adressen in einer Excel-Tabelle erfaßt werden. Der Kunde will nun, daß ich nach Zeichen abrechne.

Deshalb steh ich auch einer VBA-Lösung offen gegenüber. Nur kannich leider kein "VBAisch" und weiß auch nicht, was ich wo wie reinschreiben muß...

Danke trotzdem..

Gruß
cmkatz

Antwort 3 von Guenter

Hi cmkatz,

folgendes Makro zählt alle Zeichen in der ersten Spalte (incl. Überschrift):


Option Explicit

Sub Zaehlen()
  Dim n%
  Dim Zahl%
  For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    Zahl = Zahl + Len(Cells(n, 1).Text)
  Next
  MsgBox Zahl
End Sub


Die Ausgabe erfolgt in der MessageBox.

Zur Eingabe des Makro:
mit Alt F11 in die Entwicklungsumgebung, dann Einfügen Modul und das Makro einkopieren.
Starten über Ausführen oder im Datenbaltt mit Extras Makro Makros.

Für die anderen Spalten Zeile


Cells(Rows.Count, 1).End(xlUp).Row


ändern in

Cells(Rows.Count, 2).End(xlUp).Row


usw.

Falls noch Fragen, bitte nochmals melden.

Gruß
Günter

Antwort 4 von Aliba

Hi,

oder eine Lösung über eine Hilfsspalte. Z.B. folgende Formel in G1:

=LÄNGE(A1&B1&C1&D1&E1&F1)

bis zum letzten Eintrag runterziehen und dann unter der letzten Berechnung die Summe der Spalte erzeugen.

CU Aliba

Antwort 5 von want2cu

@Günter & Aliba,

ich bin wieder mal beeindruckt, wie ihr beide das Problem so elegant gelöst habt.<klatschklatschklatsch>

@ Aliba: Ich pack die Formel - wenn du erlaubst - zu den Excel-Workshop-Arbeitsmappen ;-)

CU
want2cu

Antwort 6 von Aliba

Hi Klaus,

logo kannst Du alles was hier so geschrieben wird dazu packen.

CU Aliba

Antwort 7 von cmkatz

sorry, daß ich mich erst heute melde...

Vielen Dank für Eure Lösungsvorschläge... Es funktionieren beide hervorragend! :-))

Die Formellösung von Alibaba erscheint mir aber doch die am wenigsten Aufwendige zu sein.

Tausend Dank, ihr habt mir doch sehr geholfen!

Grüße
cmkatz

Antwort 8 von martinimdienst

Hallo,
da ein Anwender die gleiche Anforderung bezogen auf alle Arbeitsblätter hatte, habe ich das Makro etwas erweitert.
Allerdings darf kein leeres Blatt vorhanden sein.
Tschüß
martinimdienst

Sub Zaehlen()
Dim n%
Dim m%
Dim x%
Dim Zahl%
Dim Ausgabe$
For x = 1 To ThisWorkbook.Sheets.Count
ThisWorkbook.Sheets(x).Activate
With ActiveSheet
Set letzteZelle = .Cells.Find(What:="*", _
After:=.Range("A1"), SearchDirection:=xlPrevious)
End With
For m = 1 To letzteZelle.Column

For n = 1 To letzteZelle.Row

Zahl = Zahl + Len(Cells(n, m).Text)
Next
Next
Ausgabe = Ausgabe & ActiveSheet.Name & " " & Zahl & vbCrLf
Zahl = 0
Next
MsgBox Ausgabe
End Sub