Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Leerzeichen zählen

Leerzeichen zählen
14.09.2013 08:46:04
Jürgen
Guten Morgen,
ich hab da mal wieder eine Herausforderung die sich nicht wirklich mit dem Makro-Recoder lösen lässt, ich hab das mal ausprobiert. Da kommt nach dem 2. Makro durchlauf ein lustiges Ergebnis heraus, nämlich immer das Gleiche.
Also würde ich euch gerne um Hilfe bitten.
Es soll in einer bestimmten Zelle per VBA nach Leerzeichen gesucht und dann entsprechend formatiert werden.
Zum besseren Verständnis habe ich mal eine Muster-Datei vorbereitet in der auch mehr Informationen stehen.
Hier die Datei: https://www.herber.de/bbs/user/87290.xls
Ich hoffe ich konnte es in der Muster-Datei deutlich verständlich rüberbringen.
Mit besten Grüßen
Jürgen

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeichen zählen
14.09.2013 09:24:09
Hajo_Zi
Hallo Jürgen,
das Makrio kann nicht gestartet werden, da nicht vorhanden. Warum Makro. Ermittle die Länge derv Zeichenkette, dann ersetzen Leerzeichen durch "" und Länge von dem neuen Ausdruck und Du hast die Anzahl der Leerstellen.

AW: Leerzeichen zählen
14.09.2013 10:25:45
Wilfried
Hallo!
Meinst du es so? Zählt alle Leerzeichen am Anfang, Mitte und am Ende.
Tabelle1

 AB
1Leerzeichen zählen 
2  
3wer   3
4c ccc cv2
5        fgd   11
61 2 3 43

Formeln der Tabelle
ZelleFormel
B3=LÄNGE(A3)-LÄNGE(WECHSELN(A3;" ";""))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß
Wilfried

Anzeige
AW: Leerzeichen zählen
14.09.2013 11:31:50
Jürgen
Hallo Wilfried,
danke für Deine Bemühungen
Beste Grüße
Jürgen

Meinst Du Lösung per Formel?
14.09.2013 10:31:14
Jürgen
Hi,
Lieber Hajo
welches Makro? Tja, das in der Muster-Datei keines vorhanden ist, das wusste ich auch, ich hab ja auch in der Original-Datei das mit dem Makro ausprobiert. Soviel zum Thema Marko nicht vorhanden
Wenn ich Dich richtig verstanden habe, löst Du die Aufgabe mit einer Formel - Sollte ich dich richtig interpretiert haben, dann sag ich dir ganz ehrlich "hab ich nicht verstanden"
Warum hab ich das nicht verstanden, weil das Ziel die Formatierung ist und nicht die Leerzeichen zählen. Und Formatierung können nicht kopiert werden.
Die Lösung nach der ich hier suche wird das Binde-Glied zwischen zwei schon vorhanden Makros, die ich dann zusammen setzen werde. Also letzendlich werden 3 Makros von mir zu Einem Makro zusammen gefügt.
Mit freundlichen Grüßen
Jürgen

Anzeige
AW: Meinst Du Lösung per Formel?
14.09.2013 10:34:53
Hajo_Zi
Hallo Jürgen,
ich halte mich an das was ion der Datei steht und da Stand was drücke 2 Tasten um das Makro auszuführen und das geht nicht. Meine Lösung wurde ja schon gepostet.
Gruß Hajo

AW: Leerzeichen zählen
14.09.2013 10:05:14
fcs
Hallo Jürgen,
hier ein Beispiel, wie man das umsetzen kann.
Da einfacher umzusetzen solltest du das Makro einer Tastenkombination Strg+Buchstabe zuordnen, z.B. Strg+q.
Eine Funktionstaste in der Funktion zu ändern erfordert zusätzlichen Aktivierungs- und Deaktivierungscode.
Gruß
Franz
Sub Format_Name_Titel() 'Ausführung mit Strg+q 'Formatierung für jede Zelle im selektierten Zellbereich Dim Zelle As Range For Each Zelle In Selection.Cells Call prcFormat_Spezial01(Zelle) Next End Sub Sub prcFormat_Spezial01(ByVal Zelle As Range) Dim arrSpace() As Integer Dim intCount As Integer, intPos As Integer Dim PosComma1 As Integer, PosKlammer1 As Integer PosComma1 = InStr(1, Zelle.Text, ",") PosKlammer1 = InStr(1, Zelle.Text, "(") intCount = 0 For intPos = PosComma1 To Len(Zelle.Text) If Mid(Zelle.Text, intPos, 1) = " " Then intCount = intCount + 1 ReDim Preserve arrSpace(1 To intCount) arrSpace(intCount) = intPos End If Next intPos Select Case intCount Case 0 'keine Leerzeichen im Text Case Is >= 3 If PosKlammer1 > arrSpace(3) Then With Zelle.Characters(arrSpace(2)).Font .Size = 1 .Color = 10921638 'Grau End With End If End Select End Sub

Anzeige
Danke
14.09.2013 10:33:21
Jürgen
Hallo Franz,
ganz große Danke schön
ich probier das mal aus, wird aber dauern bis ich mich wieder melde
Beste Grüße
Jürgen

Funktioniert wunderbar
14.09.2013 11:26:55
Jürgen
Hallo Franz,
das Script ist einfach Klasse, super !!!!!
nur eine kleine Randbemerkung warum mit STRG + q Starten
ich kann das auch wie von mir gewünscht mit ALT + F8 starten, funktioniert bestens
Also nochmal ein ganz große D A N K E S C H Ö N
wünsche ein schönes WE
Gruß Jürgen

AW: Funktioniert wunderbar
14.09.2013 15:06:41
fcs
Hallo Jürgen,
ALT+F8 ist ja das Tastenkürzel um den Makro-Auswahldialog zu starten.
Ich hatte dich so verstanden, dass du das Makro direkt mit einer Tastenkombination starten wolltest.
Dafür ist Strg+Buchstabe der einfachste Weg, weil du das im Makro-Auswahldialog via Optionen einstellen kannst. Dabei muss man dann nur darauf achten, dass man die Belegung von häufig benutzen Standardbelegungen wie z.B. Strg+C nicht ändert.
Gruß
Franz

Anzeige
Alternative
16.09.2013 03:17:01
CitizenX
Hi,
hier noch eine kürzere Alternative:
Option Explicit
Sub findString()
Dim pos, oCell As Object
Dim Regex As Object: Set Regex = CreateObject("vbscript.regexp")
With Regex
.Pattern = "^\w+,\s\w+\s\w+\s*(?=\()"
For Each oCell In Selection
If .test(oCell) Then
pos = .Execute(oCell)(0).Length
With oCell.Characters(pos).Font
.Size = 1
.Color = 10921638
End With
End If
Next
End With
End Sub
Grüße
Steffen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige