Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

nocheinmal Überprüfen

nocheinmal Überprüfen
30.07.2005 17:39:30
Thomas
Hallo Excelfreunde,
heute Mittag habe ich schon einmal eine Frage ins Forum gestellt und auch eine brauchbare Lösung bekommen.
Vom Mittag mit Antwort.
Hallo Excelfreunde,
ich habe in den Zeilen (For j = 3 To 41 Step 2) (For I = 3 To 12 Step 1)
drei Buchstaben und zwei Zahlen z.b. abc12.
Leider kann es auch vorkommen das in den Zellen auch vier Buchstaben und eine Zahl oder auch fünf Buchstaben und keine Zahl habe.
Gibt es eine Möglichkeit, mit einem Makro alle Zellen farblich zu markieren, die mehr als drei Buchstaben haben?
Hallo
Vielleicht hilft dir folgender Code weiter.


Sub Anzahl_Buchstaben()
Dim i%, j%, k%, x%
Dim TMP
For j = 3 To 41 Step 2
For i = 3 To 12 Step 1
TMP = Cells(j, i).Value
If Len(TMP) <> 0 Then
x = 0
For k = 1 To Len(TMP)
Select Case Asc(Mid(TMP, k, 1))
Case 65 To 90, 97 To 122, 196, 214, 220, 228, 252, 246
x = x + 1
End Select
Next k
If x > 3 Then Cells(j, i).Interior.ColorIndex = 3
End If
Next i
Next j
End Sub

Jetzt habe ich eine Tabelle wo vorne die Zahlen und hinten die Buchstaben stehen z.b. 12 abc
Was muss am Makro geändert werden, wenn ich nur eine statt zwei Zahlen stehen habe?
Mit freundlichen Grüßen
Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: nocheinmal Überprüfen
30.07.2005 17:54:17
m
Hallo Thomas,
warum nicht mit bedingter Formatierung?
in ein Modul diese Benutzerdefiinierte Funktion:

Function AnzBuchstaben(TMP As String)
Dim k As Integer, x As Integer
x = 0
For k = 1 To Len(TMP)
Select Case Asc(Mid(TMP, k, 1))
Case 65 To 90, 97 To 122, 196, 214, 220, 228, 252, 246
x = x + 1
End Select
Next k
AnzBuchstaben = x
End Function

Dann den gewünschten Bereich markieren, Menü Format - Bedingte Formatierung, "Zellwert ist" ändern in "Formel ist" und dahinter:

=AnzBuchstaben(D7)>3

(statt D7 die erste Zelle des markierten Bereiches eintragen!)
Noch Format festlegen, fertig.
Vorteil: das Format wird geändert, sobald sich die Anzahl der Buchstaben ensprechend der Formel ändert.
Gruß Matthias
Anzeige
AW: nocheinmal Überprüfen
30.07.2005 18:05:07
Thomas
Hallo Matthias,
vielen Dank für Deine Antwort, aber dieses mal geht es mir nicht um die Buchstaben sondern um die beiden Zahlen die jetzt vorne stehen.
Was muss ich unter Bedingte Formatierung eingeben wenn ich nur eine statt zwei Zahlen stehen habe?
Thomas
AW: nocheinmal Überprüfen
30.07.2005 18:12:22
Matthias
Hallo Thomas,
dann verwende eine dieser Funktionen:

Function AnzZiffern(TMP As String)
Dim k As Integer, x As Integer
x = 0
For k = 1 To Len(TMP)
Select Case Asc(Mid(TMP, k, 1))
Case 48 To 57
x = x + 1
End Select
Next k
AnzZiffern = x
End Function
'ODER
Function AnzZiffernAnfang(TMP As String)
Dim k As Integer, x As Integer
x = 0
For k = 1 To Len(TMP)
Select Case Asc(Mid(TMP, k, 1))
Case 48 To 57
x = x + 1
Case Else
Exit For
End Select
Next k
AnzZiffernAnfang = x
End Function

und passe die bedingte Formatierung entsprechend an.
Gruß Matthias
Anzeige
AW: nocheinmal Überprüfen
30.07.2005 18:27:31
Thomas
Hallo Matthias
was bedeutet eigentlich im Makro, Case 48 To 57?
Thomas
AW: nocheinmal Überprüfen
30.07.2005 18:48:51
Matthias
Hallo Thomas,
was bedeutet eigentlich im Makro, Case 48 To 57?
Das sind die ASCII-Codes von 0(=48) bis 9(=57).
Gruß Matthias
AW: nocheinmal Überprüfen
30.07.2005 18:56:06
Thomas
Hallo Matthias,
ok, aber leider kenne ich mich damit nicht aus.
Thomas.
AW: nocheinmal Überprüfen
30.07.2005 18:59:38
Matthias
Hallo Thomas,
heißt das jetzt, dein Problem ist noch nicht gelöst? Oder willst du etwas über die ASCII-Tabelle erfahren:
http://de.wikipedia.org/wiki/Ascii
Gruß Matthias
AW: nocheinmal Überprüfen
30.07.2005 19:09:52
Thomas
Hallo Matthias,
ich möchte schon etwas über ASCII-Tabelle erfahren.
Mein Makro habe ich jetzt so geändert. Nur leider färbt das Makro mir alle Zellen Rot die zwei Zahlen haben und lässt die Zellen Weiß die nur eine Zahl hat.
Aber das geht auch.

Sub Anzahl_Zahlen()
Dim i%, j%, k%, x%
Dim TMP
For j = 3 To 41 Step 2
For i = 3 To 12 Step 1
TMP = Cells(j, i).Value
If Len(TMP) <> 0 Then
x = 0
For k = 1 To Len(TMP)
Select Case Asc(Mid(TMP, k, 1))
Case 48 To 57
x = x + 1
Case Else
Exit For
End Select
Next k
If x > 1 Then Cells(j, i).Interior.ColorIndex = 3
End If
Next i
Next j
End Sub

Anzeige
AW: nocheinmal Überprüfen
30.07.2005 19:15:16
Matthias
Hallo Thomas,
hier ist die entscheidende Codezeile:

If x > 1 Then Cells(j, i).Interior.ColorIndex = 3
'schreibe ">0" oder ">=1", dann hast du den gewünschten Effekt.

Gruß Matthias
AW: nocheinmal Überprüfen
30.07.2005 19:22:12
Thomas
Hallo Matthias,
vielen Dank noch einmal für Deine Hilfe.
Habe es "&gt=1" geändert.
Thomas

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige