Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1844to1848
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

Makro für verbundene Zellen

Makro für verbundene Zellen
16.09.2021 16:04:39
Fanny
Hallo da Draußen, wieder mal ein Problem, für mich riesig, für euch wahrscheinlich ein Klacks! Folgendes Makro habe ich mir stibitzt:
  • Option Explicit
    Dim AlteFarbe As Integer, MarkierteZelle As String
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    If Target.Count > 1 Then Exit Sub
    If MarkierteZelle = "" Then
    MarkierteZelle = Target.Address
    AlteFarbe = Target.Interior.ColorIndex
    Target.Interior.ColorIndex = 6
    Else
    If Range(MarkierteZelle).Interior.ColorIndex = 6 Then
    Range(MarkierteZelle).Interior.ColorIndex = AlteFarbe
    End If
    AlteFarbe = Target.Interior.ColorIndex
    MarkierteZelle = Target.Address
    Target.Interior.ColorIndex = 6
    End If
    End Sub
    

  • Jetzt ist es so, das es wunderbar funktioniert, außer die Zellen sind verbunden. Gibt es da eine Lösung? Danke Euch, LG Fanny

    13
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Makro für verbundene Zellen
    16.09.2021 16:15:30
    Pierre
    Hallo Fanny,
    ganz grundsätzlich kannst du mit einem IF-Block prüfen, ob du eine verbundene Zelle hast.
    Hierfür müsstest du diese aber alle kennen (soll auch nur als Gedankenanstoß dienen, weil wegen ich auch sonst nix weiß):
    
    If Range("A1").MergeCells = True Then
    ... 'hier der Code, der macht was du willst
    End If 
    
    Ansonsten, das kommt eh ;) : Verbundene Zeilen raus!
    Gruß Pierre
    AW: Makro für verbundene Zellen
    16.09.2021 16:18:26
    Fanny
    Servus Pierre, Dankeschön für deine Hilfe, doch da müsste ich rund 500 mal den Code kopieren soweit ich das verstanden habe? LG Fanny
    AW: Makro für verbundene Zellen
    16.09.2021 16:22:33
    Pierre
    In dem Fall schon.
    Wie gesagt, ich kann dir da leider auch nicht so richtig helfen ...
    Mit einer For Each-Schleife drum herum möglicherweise, dass du quasi in deinem verwendeten Bereich alle "Verbünde" nacheinander abklapperst.
    Tut mir leid, warte besser auf jemanden, der sich mit verbundenen Zellen auskennt ;-) (auch, wenn das ziemlich verhasst ist...)
    Gruß Pierre
    Anzeige
    AW: Makro für verbundene Zellen
    16.09.2021 16:37:51
    peterk
    Hallo
    So funktionierts:
    
    If Target.Count > 1 Then
    If VarType(Target.MergeCells) = 1 Then Exit Sub
    If Not Target.MergeCells Then
    Exit Sub
    End If
    End If
    
    Peter
    AW: Makro für verbundene Zellen
    16.09.2021 16:42:56
    Fanny
    Servus Peter. Danke für deine Hilfe, Mein LEVEL ist Makrorekorder! Wo muss ich deinen Code einfügen? LG Fanny
    AW: Makro für verbundene Zellen
    16.09.2021 17:03:19
    peterk
    Hallo
    Der komplette Code
    
    Option Explicit
    Dim AlteFarbe As Integer, MarkierteZelle As String
    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    If Target.Count > 1 Then
    If VarType(Target.MergeCells) = 1 Then Exit Sub
    If Not Target.MergeCells Then
    Exit Sub
    End If
    End If
    If MarkierteZelle = "" Then
    MarkierteZelle = Target.Address
    AlteFarbe = Target.Interior.ColorIndex
    Target.Interior.ColorIndex = 6
    Else
    If Range(MarkierteZelle).Interior.ColorIndex = 6 Then
    Range(MarkierteZelle).Interior.ColorIndex = AlteFarbe
    End If
    AlteFarbe = Target.Interior.ColorIndex
    MarkierteZelle = Target.Address
    Target.Interior.ColorIndex = 6
    End If
    End Sub
    

    Anzeige
    Was vergessen....
    16.09.2021 16:16:02
    Fanny
    Sorry, habe vergessen zu schreiben was der Code macht!!! Also die selektierte Zelle wird Gelb gefärbt, beim verlassen der Zelle wird die ursprüngliche Formatierung der Zelle wieder angenommen. LG Fanny
    AW: Was vergessen....
    16.09.2021 16:24:05
    Fanny
    Bin heute glaube ich etwas neben der Spur!! Das wird sein, weil mich mein Chef unter druck setzt bezüglich einer Lösung, daher habe ich vergessen das Kontrollkästchen für offene Fragen zu setzten. Also ich suche noch immer nach einer Lösung. Bitte Danke LG Fanny
    Anzeige
    AW: Was vergessen....
    16.09.2021 16:40:29
    peterk
    Hallo
    Lösung : Siehe weiter oben
    Peter
    AW: Makro für verbundene Zellen
    16.09.2021 17:22:00
    Daniel
    HI
    diese Methode ist generell suboptimal, um die geänderte Zelle besonders hervorzuheben.
    mach das lieber so:
    1. suche dir eine freie Zelle auf dem Blatt (keine Sorge, Excel hat immer genügend freie Zellen), z.B die Zelle A1
    2. verwende dieses Makro anstelle deines bisherigen: Das Makro schreibt einfach nur Zeilen- und Spaltennummer der aktiven Zelle die von dir ausgesuchte Zelle:
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Range("A1").Value = Target.Row & "_" & Target.Column
    End Sub
    
    3. lege dann für den Zellbereich eine bedingte Formatierung an mit folgender Formel als Regel:
    
    =$A$1=ZEILE()&"_"&SPALTE()
    
    und fertig.
    das ganze hat neben der Kürze folgende Vorteile:
    1. in der Tabelle vorhandene Färbungen gehen nicht verloren, sondern bleiben erhalten, die bedingte Formatierung überlagert und ersetzt nicht.
    dh du brauchst dir die alte Farbe und alte Markierung nicht merken, das Rückfärben geht automatisch.
    2. es funktioniert so auch mit verbunden Zellen
    3. wenn du Datei speicherst, wird die zuletzt gefärbte Zelle mit gespeichert. Bein nächsten Öfffnen der Datei hat Excel aber die Inhalte der Variablen alteFarbe und MarkierteZelle vergessen, so dass die zuletzt markierte Zelle nicht mehr zurück gefärbt kann.
    4. du kannst die Farbe oder sonstige Markierung für die hervorzuhebende Zelle selbst in der bedingten Formatierung einstellen, ohne in den Code eingreifen zu müssen.
    Gruß Daniel
    Anzeige
    Alles Super, Danke Euch allen
    16.09.2021 19:36:05
    Fanny
    Servus Daniel, sehr gut, das ist die Lösung gewesen!!! Ich habe auch den Code von Peter versucht, bei gewissen Farben habe ich eine Fehlermeldung bekommen. hmmm? Außerdem wurden komischerweise einige Farben durch den Code komplett entfernt. Egal, Daniel, Peter und auch Pierre haben ihren Beitrag zur Lösung gegeben. Danke euch, bin Glücklich!! LG Fanny
    AW: Alles Super, Danke Euch allen
    16.09.2021 20:04:40
    Daniel
    Hi
    noch ein Problem:
    du hast ColorIndex verwendet.
    ColorIndex ist jedoch ein altes Relikt aus Excel 2003 Zeiten, als pro Blatt nur maximal 56 verschiedene Farben möglich waren.
    Da konnte man also Farbe nicht direkt als RGB-Wert angeben, sondern nur über eine Zahl von 1-56 und damit eine Farbe aus dieser Tabelle auswählen.
    Heute kann man alle Farben direkt auswählen und mit .Color den RGB-Wert angeben und auslesen
    der Colorindex ist aus kompatibilitätsgründen immer noch drin, ebenso die Farbtabelle im Hintergrund.
    Wenn du jetzt den ColorIndex einer Zelle ausliest und diese hat eine Farbe, die dort nicht gelistet ist, dann wird der Colorindex der ähnlichsten Farbe aus dieser Tabelle verwendet, dh wenn du dann die Zelle über den ColorIndex färbst, dann bekommt sie nicht die Farbe, die sie ursprünglich hatte, sondern eben die Farbe aus der Tabelle.
    (ist im prinzip so ein bisschen wie wenn du in der Zelle eine Kommazahl stehen hast, die Merkvariable aber nur eine Ganzzahl-Variable ist)
    gewisse Farbeffekte können daran liegen, das könnte man aber damit beheben, dass man .Color statt .ColorIndex verwendet.
    Gruß Daniel
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige