Problem in Excel
lima-city → Forum → Heim-PC → Software
ansatz
basic
beschrieb
count
editor
einfacher gehen
extra
falsch rufe
format
fragen
funktioniert hast
mache
mappe
men
ntzlich cells
schliee
sicherheit
software
stufen
target
-
Würde gerne ein kleines "Programm" in Excel erstellen... Dabei sollen sich Zellen nach bestimmten Werten färben, der Code dazu sieht so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 And Target.Row < 5 Then
If Target.Value <= 25 Then Target.Interior.ColorIndex = 0
If Target.Value > 25 Then Target.Interior.ColorIndex = 6
If Target.Value > 50 Then Target.Interior.ColorIndex = 3
If Target.Value > 100 Then Target.Interior.ColorIndex = 5
If Target.Value > 200 Then Target.Interior.ColorIndex = 4
End If
End Sub
Code ist aus einem anderen Forum...
Wie kriege ich das jetzt hin... Mache ich was beim VB-Editor falsch...? Rufe ihn auf und gebe diesen Code ein... Leider färbt sich die Zelle nicht, egal was ich eingebe... Was muss ich noch beachten oder was mache ich falsch...?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also Teile in deiem Code sind ganz gut vom Ansatz her, allerdings sind in der Umsetzung einige Fehler vorhanden.
Hier ist ein funktionsfähiger Code (mit einem anderen Ereignis):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Code wird immer dann ausgeführt,
' wenn eine Zelle oder ein Zellbereich markiert wird
' oder wenn eine Zelle bearbeitet wird.
Dim c, i, j As Long
' Schleife untersucht jede einzelne markierte Zelle:
For i = 1 To Target.Columns.Count
For j = 1 To Target.Rows.Count
c = c + 1
' In der Zelle muss eine Zahl stehen:
If IsNumeric(Target(j, i)) Then
Select Case Target(j, i)
Case Is < 0
Target(j, i).Interior.ColorIndex = 2
Case 1 To 100
Target(j, i).Interior.ColorIndex = 6
Case 101 To 200
Target(j, i).Interior.ColorIndex = 3
Case Is > 200
Target(j, i).Interior.ColorIndex = 5
End Select
End If
' (Falls ein sehr großer Bereich markiert wird, ist eine Fortschrittsanzeige nützlich :-)
Cells(1, 1) = CStr(Format(c / (Target.Columns.Count * Target.Rows.Count) * 100, "000.00")) & " % abgeschlossen."
Next j
Next i
End Sub
Übrigens gehört diese Frage nicht in die Rubrik "Software", sondern in "Visual Basic"
-
Sorry, aber damit komme ich nicht wirklich klar... Muss doch auch einfacher gehen oder nicht...? Irgendwie tut sich auch nichts, nachdem ich den Code eingegeben habe... Was ist denn an meinem Beispiel falsch...? Und warum kann es nicht funktionieren...?
-
Nein es geht wirklich nicht einfacher als ich beschrieben habe.
Und warum es trotzdem nicht funktioniert:
Hast du in deinem Microsoft Excel vielleicht "Makros blockieren" eingestellt? Dann ist klar, dass kein Code ausgeführt wird...
Menü Extras/Makro/Sicherheit
Stelle die Stufe auf "Mittel" ein.
Schließe Excel.
Öffnen deine Mappe neu und diesmal wählst du bei dem erscheinenden Dialogfenster "Makros aktivieren". -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage