Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: in farblich markierte Zelle springen

in farblich markierte Zelle springen
13.11.2008 15:11:05
Maja
Hallo,
ich möchte in einem Excelblatt innerhalb eines bestimmten Zellbereichs diejenigen Zellen farblich anders markieren, die den Wert 0 aufweisen, die Namen dieser Zellen in einer MsgBox ausweisen und bei Klicken auf "OK" der MsgBox zur ersten der ausgegebenen markierten Zeile springen.
Bisher klappt alles bis zu MsgBox. Leider bekomme ich das Springen zur ersten der farblich anders markierten Zellen nicht programmiert.
Wer kann mir helfen.
Hier der Code, den ich nutze (Ich weiß, er ist nicht besonders schön - ich bin auch hier für Verbesserungsvorschläge mehr als dankbar.):
Dim c As Range
Dim s As String

Function calculate_1()
flagg = False
s = ""
For Each c In [W8:Z8]
c.Interior.Color = RGB(192, 192, 192)
If IsEmpty(c.Value) Then
Else
If IsNumeric(c.Value) Then
If c.Value = 0 Then
flagg = True
c.Interior.Color = RGB(255, 0, 0)
s = s + c.Address & ", "
End If
Else
End If
End If
Next
If flagg = True Then
If MsgBox("Folgende Felder (rot markiert) beinhalten 0 Werte: " & s) = 1 Then
Else
End If
End If
End Function


Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: in farblich markierte Zelle springen
13.11.2008 15:49:00
David
Hallo Maja,
du musst die erste gefundene Adresse in eine Variable speichern, z. Bsp.

dim sprungadresse as string

(am Anfang)
und dann


if Sprungadresse = "" then Sprungadresse = c.address


hinter deiner Zeile mit


s = s + c.Address & ", "


nach deiner Msg kannst du dann mit


Range(Sprungadresse).Select 

dorthin springen.
Ich bin mir allerdings nicht sicher, ob das in einer Function überhaupt geht. In einem normalen Makro sollte es aber so funzen.
Gruß
David

Anzeige
AW: in farblich markierte Zelle springen
13.11.2008 15:50:09
Tino
Hallo,
hier mal eine Version, getestet unter xl2007
Sub Test()
Dim strZelle As String, strErste As String
Dim Bereich As Range, tempZelle As Range
Dim A As Long

Set Bereich = Range("W8:Z8") 'Zellbereich 
    'Hintergrundfarbe zurücksetzen 
    Bereich.Interior.ColorIndex = xlNone
    'neue Hintergrundfarbe 
    Application.ReplaceFormat.Interior.ColorIndex = 3
    'Suchen und ersetzen 
    Bereich.Replace What:="0", Replacement:="0", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True

    'Schleife über Zellen mit 0 
    For A = 1 To Application.WorksheetFunction.CountIf(Bereich, 0)
     If A = 1 Then
      Set tempZelle = Bereich.Find("0", Bereich(Bereich.Cells.Count), xlValues, xlWhole, , xlNext)
      strZelle = tempZelle.Address(False, False) & Chr(13)
      strErste = tempZelle.Address
     Else
      Set tempZelle = Bereich.FindNext(tempZelle)
      strZelle = strZelle & tempZelle.Address(False, False) & Chr(13)
     End If
    Next A

If strErste <> "" Then
 MsgBox strZelle, vbInformation
 Range(strErste).Select
End If


End Sub


Gruß Tino

Anzeige
AW: in farblich markierte Zelle springen
13.11.2008 17:10:53
Maja
Vielen Dank! Das funktionier super (und ist so einfach).
AW: in farblich markierte Zelle springen
13.11.2008 17:13:00
Maja
Vielen Dank. Auch diese Ansätze funktionieren klasse.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

In farblich markierte Zelle springen


Schritt-für-Schritt-Anleitung

  1. Öffne deinen Excel-Arbeitsblatt: Stelle sicher, dass du die Zellen, die du markieren möchtest, im Bereich W8:Z8 hast.

  2. Füge den VBA-Code ein: Gehe zu Entwicklertools > Visual Basic, füge ein neues Modul hinzu und kopiere den folgenden Code:

    Sub Test()
       Dim strZelle As String, strErste As String
       Dim Bereich As Range, tempZelle As Range
       Dim A As Long
    
       Set Bereich = Range("W8:Z8")
       Bereich.Interior.ColorIndex = xlNone
       Application.ReplaceFormat.Interior.ColorIndex = 3
       Bereich.Replace What:="0", Replacement:="0", LookAt:=xlPart, _
           SearchOrder:=xlByRows, MatchCase:=False, _
           ReplaceFormat:=True
    
       For A = 1 To Application.WorksheetFunction.CountIf(Bereich, 0)
           If A = 1 Then
               Set tempZelle = Bereich.Find("0", Bereich(Bereich.Cells.Count), xlValues, xlWhole, , xlNext)
               strZelle = tempZelle.Address(False, False) & Chr(13)
               strErste = tempZelle.Address
           Else
               Set tempZelle = Bereich.FindNext(tempZelle)
               strZelle = strZelle & tempZelle.Address(False, False) & Chr(13)
           End If
       Next A
    
       If strErste <> "" Then
           MsgBox strZelle, vbInformation
           Range(strErste).Select
       End If
    End Sub
  3. Führe das Makro aus: Drücke F5, um das Makro zu starten. Es wird die Zellen mit dem Wert 0 rot markieren und eine MsgBox anzeigen, die die Adressen der markierten Zellen zeigt.

  4. Klicke auf "OK" in der MsgBox: Das Makro wird dann automatisch zur ersten der gefärbten Zellen springen.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable nicht festgelegt"
    Lösung: Stelle sicher, dass der Zellbereich korrekt definiert ist und dass die Zellen tatsächlich Werte enthalten.

  • Fehler: Das Makro springt nicht zur Zelle
    Lösung: Überprüfe, ob die MsgBox korrekt aufgerufen wird und dass die Range(strErste).Select-Zeile nach der MsgBox steht.


Alternative Methoden

  • Verwendung von bedingter Formatierung: Markiere die Zellen automatisch basierend auf ihrem Wert mithilfe der bedingten Formatierung und verwende dann eine Funktion, um zu der entsprechenden Zelle zu springen.

  • Excel-Formel: Eine Möglichkeit, eine Meldung anzuzeigen, ist die Verwendung von WENN-Formeln, jedoch wird das Springen zu einer Zelle durch eine Formel nicht unterstützt.


Praktische Beispiele

  1. Einfaches Beispiel: Angenommen, du hast den Bereich von W8 bis Z8 und nur W8 hat den Wert 0. Das Makro wird W8 rot markieren und die MsgBox wird "W8" anzeigen. Nach dem Klicken auf "OK" springt Excel zu W8.

  2. Erweiterte Nutzung: Du kannst den Zellbereich anpassen, um mehrere Zeilen zu überprüfen, indem du die Schleife entsprechend erweiterst.


Tipps für Profis

  • Anpassung der Farben: Du kannst die RGB-Werte in RGB(255, 0, 0) anpassen, um verschiedene Farben für die Markierung zu verwenden.

  • Erweiterung des Codes: Füge weitere Bedingungen hinzu, um auch andere Werte oder Formate zu berücksichtigen.

  • Regelmäßige Nutzung des Makros: Speichere dein Makro in der persönlichen Makroarbeitsmappe, damit du es in jedem Excel-Dokument verwenden kannst.


FAQ: Häufige Fragen

1. Kann ich das Makro in Excel 365 verwenden?
Ja, der VBA-Code funktioniert in Excel 365 sowie in früheren Versionen wie Excel 2007.

2. Gibt es eine Möglichkeit, die MsgBox zu deaktivieren?
Ja, du kannst die Zeile MsgBox strZelle, vbInformation auskommentieren oder löschen, wenn du keine Meldung anzeigen möchtest, aber trotzdem zu der Zelle springen willst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige