kostenloser Webspace werbefrei: lima-city


Problem in Excel

lima-cityForumHeim-PCSoftware

  1. Autor dieses Themas

    myartanddesign

    myartanddesign hat kostenlosen Webspace.

    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...?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    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" :thumb:

  4. s***********t

    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...?
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    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".
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!