Clever-Excel-Forum

Normale Version: Makro anstelle der bedingten Formatierung für die folgenden Buchstaben U,T,S,G,K
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi,

Code:
Sub all()
    Dim rngTarget As Range, myColorindex As Integer, target
    Set rngTarget = Range("W7:NW400")
    For Each target In rngTarget
        Select Case UCase(target.Value)
            Case "T"
                myColorindex = 24
             Case "G"
                myColorindex = 40
             Case "S"
                myColorindex = 33
             Case "K"
                myColorindex = 3
            Case "U"
                myColorindex = 4
            Case ""
                myColorindex = xlNone
        End Select
        target.Interior.ColorIndex = myColorindex
        cancel = True
    Next
End Sub


Eine kleine Anleitung gibt es hier:
https://youtu.be/CuhmQZt8Md0
Dieser Code reicht schon

Code:
Sub M_snb()
    For Each it in Range("W7:NW400")
      it.Interior.ColorIndex= instr(it.value,"  KU                   T        S      G")
    Next
End Sub
@chris-ka,

vielen Dank... 18
Der untere Code (habe im Internet gefunden) dient zum Hervorheben der Zeile und Spalte, die die aktive Zelle enthalten, innerhalb der aktuellen Region

Im folgenden Codebeispiel wird die Farbe in allen Zellen des Arbeitsblatts gelöscht, in dem die ColorIndex-Eigenschaft auf 0 festgelegt wird. Dann werden die Zeile und Spalte mit der aktiven Zelle innerhalb der aktuellen Region mithilfe der CurrentRegion-Eigenschaft des Range-Objekts hervorgehoben.


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    If IsEmpty(Target) Or Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    With ActiveCell
        ' Highlight the row and column that contain the active cell, within the current region
        Range(Cells(.Row, .CurrentRegion.Column), Cells(.Row, .CurrentRegion.Columns.Count + .CurrentRegion.Column - 1)).Interior.ColorIndex = 8
        Range(Cells(.CurrentRegion.Row, .Column), Cells(.CurrentRegion.Rows.Count + .CurrentRegion.Row - 1, .Column)).Interior.ColorIndex = 8
    End With
    Application.ScreenUpdating = True
End Sub

@chirs-ka,

die Zeile 
Code:
Cells.Interior.ColorIndex = 0

löscht die Farben deines Codes. Ich habe anstelle von "0" "xlNone" hinzugefügt, aber der Code löscht immer noch die Farben. Wenn ich die Zeile (Code) ganz entferne,  wo ich rauf klicke ,wird die ganze Spalte und die ganze Zeile mit den Farbcode 8 markiert, und diese Farbe bleibt auch. 

Wie kann man diesen Code anpassen? Danke...

Viele Grüße
Hallo,

welches Ergebnis soll denn am Ende erzielt werden? - Soll die Farbe mit dem Index 8 bestehen bleiben, wenn eine andere Zelle aktiv wird?
Bei diesem Code wird jedes mal, wenn sich im Tabellenblatt etwas ändert die Farbe zurückgesetzt und die jeweils neue aktive Zeile und Spalte mit der Index Farbe 8 markiert.

Grüße

NobX
@Guten Morgen NObX,

der Farbcode kann weiterhin 8 bleiben.
Aber der Code soll nicht die restlichen Farben eliminieren(löschen). 

Es geht nur darum die X- und Y- Achsen der angeklickten Zelle anzuzeigen.

Vielen Dank für die Unterstützung.
Hallo, 

Farbenkreuz mit Farben + Zellen mit Farben = Probleme ;)
Ich kann mich noch an so einen Monstercode erinnern. der fast alles abgedeckt hat.

ggf. reicht dir das ja auch so...
Nur jetzt kann nicht "kopiert" werden da ja eine Mehrfachauswahl ist.
Muss es eigentlich ein Kreuz sein? oder würde Zeile oder Spalte schon ausreichen?


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim rng As Range, rng1, rng2, myTar
    If TypeName(Selection) = "Range" Then
            Application.EnableEvents = False
            Set myTar = Target(1, 1)
            Set rng1 = Columns(Target.Column)
            Set rng2 = Rows(myTar.Row)
            Set rng = Union(rng1, rng2)
            rng.Select
            myTar.Activate
            Application.EnableEvents = True
    End If
End Sub
Tatsächlich kann nicht kopiert werden, das ist nicht vom Vorteil.

Ich würde gerne eine Alternative probieren. Es geht darum, wenn man in einer Zelle anklickt, dann will der Schichtführer den Mitarbeiter und das Datum erkennen können. Er möchte nicht an der falschen Stelle eine Abwesenheit eintragen.

Danke....
Hi,

ein kleiner VBA-Code und eine bed.Form sollten dein Problem lösen:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A1") = Target.Row
Range("A2") = Target.Column
End Sub

Und dann die bed.Form. mit der Formel =ODER(ZEILE()=$A$1;SPALTE()=$A$2) und dem gewünschten Format auf die gewünschten Zellen (ganze Tabelle oder nur Zeilen-/Spaltenköpfe) anwenden.

Statt den Hilfszellen A1 und A2 kann man auch jede andere Zelle nehmen.
@HKindler,

hatte ich. Ich versuche alle bedingte Formatierungen abzuschaffen.
Vielen Dank.
Seiten: 1 2