Makro anstelle der bedingten Formatierung für die folgenden Buchstaben U,T,S,G,K
#11
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
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Tommiks
Antworten Top
#12
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Tommiks
Antworten Top
#13
@chris-ka,

vielen Dank... 18
Antworten Top
#14
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
Antworten Top
#15
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
Antworten Top
#16
@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.
Antworten Top
#17
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
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Tommiks
Antworten Top
#18
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....
Antworten Top
#19
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.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#20
@HKindler,

hatte ich. Ich versuche alle bedingte Formatierungen abzuschaffen.
Vielen Dank.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste