Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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
VBA Bedingte Formatierung
Stef
und Noch ne Frage
Ich hätte gerne per VBA
Doppelte einträge der spalten F5 bis AH5 blau angezeigt
LG Stef
AW: VBA Bedingte Formatierung
01.11.2011 14:48:06
Reinhard
Hallo Stef,
bed. Formatierung willst du nicht, warum?
Gruß
Reinhard
AW: VBA Bedingte Formatierung
01.11.2011 15:01:30
Stef
Weil Zellen durch Copy Paste ständig verändert werden
AW: VBA Bedingte Formatierung
01.11.2011 17:04:25
Reinhard
Hallo Stef,
vielleicht so:

Sub Blau()
Dim Spa As Long
Range("F5:AH5").Font.ColorIndex = 0
For Spa = 6 To 34
If Application.CountIf(Range("F5:AH5"), Cells(5, Spa).Value) > 1 Then
Cells(5, Spa).Font.ColorIndex = 5
End If
Next Spa
End Sub

Gruß
Reinhard
AW: VBA Bedingte Formatierung
01.11.2011 17:11:07
Stef
Tausend Dank
AW: VBA Bedingte Formatierung
01.11.2011 18:04:19
Stef
Hallo nochmal
Wollte die Formatierung auf weitere Reihe ergänzen, blos Funktioniert es in der zweiten Reihe nicht !?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Spa As Long
If UCase(Range("H1")) = "X" Then Exit Sub
Range("F5:AH5").Font.ColorIndex = 0
For Spa = 6 To 34
If Application.CountIf(Range("F5:AH5"), Cells(5, Spa).Value) > 1 Then
Cells(5, Spa).Font.ColorIndex = 5
End If
Next Spa
Range("F6:AH6").Font.ColorIndex = 0
For Spa = 6 To 34
If Application.CountIf(Range("F6:AH6"), Cells(5, Spa).Value) > 1 Then
Cells(5, Spa).Font.ColorIndex = 5
End If
Next Spa
End Sub

Anzeige
AW: VBA Bedingte Formatierung
01.11.2011 18:44:20
Reinhard
Hallo Stef,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zelle As Range
If UCase(Range("H1")) = "X" Then Exit Sub
Range("F5:AH6").Font.ColorIndex = 0
For Each Zelle In Range("F5:AH6")
If Application.CountIf(Range("F5:AH6"), Zelle.Value) > 1 Then
Zelle.Font.ColorIndex = 5
End If
Next Zelle
End Sub

Gruß
Reinhard
AW: VBA Bedingte Formatierung
01.11.2011 19:09:24
Stef
Hey Reinhard
Danke erstmal für die mühe jedoch sollte es die doppelten werte nur innerhalb der Zeilen Suchen also
F5:AH5 wenn dort Doppelt dann blau
F6:AH6 wenn dort doppelt dann blau
Der gleiche wert kann allerdings schon in unterschiedlichen Zeilen vorkommen ohne das er sich dann einfärbt
d.h. zb. wenn F6 gleicher wert wie G6 blau soweit ok
wenn F6 gleicher wert wie F7 nicht blau
LG
Stef
Anzeige
AW: VBA Bedingte Formatierung
01.11.2011 19:43:17
Reinhard
Hallo Stef,
wieviele zeilen kommen noch dazu?
Warum eigentlich im Change-Ereignis?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Spa As Long
If UCase(Range("H1")) = "X" Then Exit Sub
Range("F5:AH6").Font.ColorIndex = 0
For Spa = 6 To 34
If Application.CountIf(Range("F5:AH5"), Cells(5, Spa).Value) > 1 Then
Cells(5, Spa).Font.ColorIndex = 5
End If
Next Spa
For Spa = 6 To 34
If Application.CountIf(Range("F6:AH6"), Cells(6, Spa).Value) > 1 Then
Cells(6, Spa).Font.ColorIndex = 5
End If
Next Spa
End Sub

Gruß
Reinhard
Anzeige
AW: VBA Bedingte Formatierung
01.11.2011 19:49:40
Stef
- Warum im Change kann ich Dir leider nicht beantworten zu grosser Laie
- Es geht runter bis zeile 40
Will es dann in 6 Tabellenblätter einfügen
LG
Stef
AW: VBA Bedingte Formatierung
01.11.2011 20:07:13
Reinhard
Hallo Stef,
das Change-Ereignis wird bei jedweder zellwertänderung aufgerufen.
Und bei 40 Zeilen geht man anders vor als bei zweien, siehe Code von Sepp.
Lade mal eine kleine aber aussagekräftige Mappe hoch.
Und beschreib mal genauer wann der code loslaufen soll.
Gruß
Reinhard
AW: VBA Bedingte Formatierung
01.11.2011 20:15:39
Stef
Hier mal ein auszug

Die Datei https://www.herber.de/bbs/user/77308.xls wurde aus Datenschutzgründen gelöscht


Anzeige
AW: VBA Bedingte Formatierung
01.11.2011 20:32:15
Josef

Hallo Stef,
würde es nicht genügen, die erste Spalte (A) mit bedingter Formatierung zu kennzeichnen, wenn doppelte in der Zeile sind?
Anbei mal ein Beispiel mit meinem Code, wenn er nur bei bestimmten Tabellen laufen soll, dann muss man noch eine Prüfung einbauen.
https://www.herber.de/bbs/user/77309.xls

« Gruß Sepp »

Anzeige
AW: VBA Bedingte Formatierung
01.11.2011 21:08:51
Stef
So nun Nochmals Tausend Dank an Josef und Reinhard
jedoch Denke ich das die "Umstänliche" Formel für mich besser ist.
Ich benutze weitere ButtonMakros , um die Zeile mit dem gewünschten zu bearbeitenden Tag mit Weiss herzuvorheben.
Ebenso soll der Code nur auf bestimmten Tabellenblättern ausgeführt werden.
Ist schon Sau Gut dein Code Josef aber ich Denke das hätte jetzt nen Rattenschwanz ohne Ende.
In diesem Sinne LG an Euch beide
Stef
AW: VBA Bedingte Formatierung
01.11.2011 20:46:32
Reinhard
Hallo Stef,

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zei As Long, Spa As Long
If UCase(Range("H1")) = "X" Then Exit Sub
If Intersect(Target, Range("F5:AH40")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Zei = Target.Row
Range("F" & Zei & ":AH" & Zei).Font.ColorIndex = 0
For Spa = 6 To 34
If Application.CountIf(Range("F" & Zei & ":AH" & Zei), Cells(Zei, Spa).Value) > 1 Then
Cells(Zei, Spa).Font.ColorIndex = 5
End If
Next Spa
End Sub

Gruß
Reinhard
Anzeige
AW: VBA Bedingte Formatierung
01.11.2011 21:18:15
Stef
Ahhh
mehr wollte ich nich ;-)
AW: VBA Bedingte Formatierung
01.11.2011 18:57:32
Josef

Hallo Stef,
bei größeren Bereichen würde ich das so lösen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub faerben()
  Dim objsh As Worksheet
  Dim rng As Range
  
  On Error GoTo ErrExit
  tranquilize
  
  Set objsh = Worksheets.Add
  
  With Sheets("Tabelle2").Range("F5:AH40") 'Anpassen!
    .Interior.ColorIndex = xlNone
    objsh.Range(.Address).Formula = "=IF(COUNTIF('" & .Parent.Name & "'!" & _
      .Rows(1).Address(0, 1) & ",'" & .Parent.Name & "'!" & _
      .Cells(1, 1).Address(0, 0) & ")>1,1,""X"")"
    On Error Resume Next
    Set rng = objsh.Range(.Address).SpecialCells(xlCellTypeFormulas, xlNumbers)
    On Error GoTo ErrExit
    If Not rng Is Nothing Then
      rng.Interior.ColorIndex = 33
      objsh.Range(.Address).Copy
      .Cells(1, 1).PasteSpecial xlPasteFormats
      Application.CutCopyMode = False
    End If
    Application.Goto .Cells(1, 1)
  End With
  
  objsh.Delete
  
  ErrExit:
  tranquilize True
  Set rng = Nothing
  Set objsh = Nothing
End Sub


Public Sub tranquilize(Optional ByVal Modus As Boolean = False)
  Static lngCalc As Long
  
  With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Not Modus Then lngCalc = .Calculation
    If Modus And lngCalc = 0 Then lngCalc = -4105
    .Calculation = IIf(Modus, lngCalc, -4135)
    .Cursor = IIf(Modus, -4143, 2)
  End With
  
  If Modus Then
    With Err
      If .Number <> 0 Then
        MsgBox IIf(Erl, vbLf & "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
          "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbLf & _
          .Description, vbExclamation, "Fehler"
      End If
      .Clear
    End With
  End If
End Sub



« Gruß Sepp »

Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige