Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
512to516
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
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

nächste rote Zelle gehen

nächste rote Zelle gehen
07.11.2004 19:55:12
Achim
Hallo Excel Freunde
Wer kann mir helfen!!!
Ich mochte in meinem Makro folgende Funktion einbauen und weiss nicht wie!!!
Sheet ("Verkauf").Select
Range J1 (so weit so gut)
und nun soll es zu nächsten roten Zelle gehen?
Schon mal danke Achim H.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nächste rote Zelle gehen
Paula
Hallo Achim
was ist rote Zelle?
Gruß Paula
AW: nächste rote Zelle gehen
07.11.2004 20:44:44
Achim
Ich meine das z.B. die Zellen ab J2 bis J8 mit Werte gefüllt sind die Zelle J9 hat die Füllung rot. (In einer anderen Situation ist es vielleicht J20)Diese Zelle soll dass Makro suchen.
Gruß Achim H.
AW: nächste rote Zelle gehen
SPD
danke dass Du zu uns gehen willst!
lol
PDS
.
AW: nächste rote Zelle gehen
nighty
hi achim :)
wie gewuenscht :))
gruss nighty
Option Explicit
Public zeileFest As Long
Public spalteFest As Integer

Sub makro01()
Dim zeilen As Long
Dim spalten As Integer
Dim zeilenLauf As Long
Dim spaltenLauf As Integer
Dim zaehler As Boolean
Dim ende As String
zeilen = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
spalten = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column + 1
For zeilenLauf = 1 To zeilen
For spaltenLauf = 1 To spalten
If Cells(zeilenLauf, spaltenLauf).Interior.ColorIndex = 3 And zeileFest < zeilenLauf Or _
Cells(zeilenLauf, spaltenLauf).Interior.ColorIndex = 3 And spalteFest < spaltenLauf Then
Cells(zeilenLauf, spaltenLauf).Select
zeileFest = zeilenLauf
spalteFest = spaltenLauf
zaehler = True
Exit For
End If
Next spaltenLauf
If zaehler = True Then Exit For
Next zeilenLauf
If zaehler = False And spaltenLauf = spalten + 1 And zeilenLauf = zeilen + 1 Then
zeileFest = 0
spalteFest = 0
ende = MsgBox("Das ende wurde erreicht,es wird zum Anfang gesprungen" & Chr(13) _
& "bei erneuten Start !", vbQuestion)
End If
End Sub

Anzeige
AW: nächste rote Zelle gehen
nighty
hi alle :)
ups,irgendwie schon wieder zu langsam,eben war noch leer :))
gruss nighty
AW: nächste rote Zelle gehen
Paula
Hallo nighty
und was machst Du, wenn die rote Zelle "bedingt formatiert" ist?
dann funzt dein Makro nicht!?
AW: nächste rote Zelle gehen
nighty
hi paula :))
kein prob :))
dann so
gruss nighty
Rem zellen suchen die durch bedingte formatierung rot gefaerbt sind
Public zeileFest As Long
Public spalteFest As Integer

Sub makro01()
Dim zeilen As Long
Dim spalten As Integer
Dim zeilenLauf As Long
Dim spaltenLauf As Integer
Dim zaehler As Boolean
zeilen = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
spalten = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column + 1
For zeilenLauf = 1 To zeilen
For spaltenLauf = 1 To spalten
farbindex = GetCellColor(Cells(zeilenLauf, spaltenLauf))
Rem springt zu einer durch bedingte formatierung rot gefarbte zelle(farbindex rot) ,weiterer start,naechster fund usw.
If farbindex = 3 And zeileFest < zeilenLauf Or farbindex = 3 And spalteFest < spaltenLauf Then
Rem bzw jede durch eine bedingten formatierung hervorgerufene farbe
Rem If test > -1 And zeile < zaehler2 Or test > -1 And spalte < zaehler3 Then
Cells(zeilenLauf, spaltenLauf).Select
zeileFest = zeilenLauf
spalteFest = spaltenLauf
zaehler = True
Exit For
End If
Next spaltenLauf
If zaehler = True Then Exit For
Next zeilenLauf
If zaehler = False And spaltenLauf = spalten + 1 And zeilenLauf = zeilen + 1 Then
zeileFest = 0
spalteFest = 0
ende = MsgBox("Das ende wurde erreicht,es wird zum Anfang gesprungen" & Chr(13) _
& "bei erneuten Start !", vbQuestion)
End If
End Sub


Function GetCellColor(cell As Range) As Integer
Dim i
Dim myVal
Dim myColor As Integer
Dim done As Boolean
On Error Resume Next
Names("testname").Delete
On Error GoTo 0
Application.ReferenceStyle = xlR1C1
myVal = cell.Value
myColor = cell.Interior.ColorIndex
done = False
For i = 1 To cell.FormatConditions.Count
With cell.FormatConditions.Item(i)
If .Type = 1 Then
Select Case .Operator
Case xlBetween
If (myVal >= Evaluate(.Formula1) And myVal <= Evaluate(.Formula2)) _
Or (myVal <= Evaluate(.Formula1) And myVal >= Evaluate(.Formula2)) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlEqual
If myVal = Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlGreater
If myVal > Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlGreaterEqual
If myVal >= Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlLess
If myVal < Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlLessEqual
If myVal <= Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlNotBetween
If myVal < Evaluate(.Formula1) Or myVal > Evaluate(.Formula2) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlNotEqual
If myVal <> Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
End Select
ElseIf .Type = 2 Then
Names.Add Name:="testname", RefersToR1C1Local:=.Formula1
If Evaluate("testname") Then
myColor = .Interior.ColorIndex
done = True
End If
Names("testname").Delete
Else
MsgBox "Unbekannter Typ: " & .Type, , "PANIC: In 

Function GetCellColor"
Exit Function
End If
End With
If done Then Exit For
Next
Application.ReferenceStyle = xlA1
GetCellColor = myColor
End Function

Anzeige
AW: nächste rote Zelle gehen
Ulf
Gib mal als Bedingung für eine Zelle ein: der Zellwert ist: =Heute()
da hast du den ersten Aussteiger der Funktion, mehr hab ich jetzt nicht probiert.
Ulf
AW: nächste rote Zelle gehen
07.11.2004 21:18:38
Achim
Hallo nighty
Da ich von VBA wenig kenne, hätte ich noch eine Bitte.
Wäre es möglich das Makro so auszustatten so das ich es ohne nacharbeiten
in Excel einfügen kann?
Mein Tabellenblatt heisst Verkauf und die rote Färbung (bedingte Formatierung)der Zelle in der Zeile J
soll auch nur dort die nächste gesucht werden und anschließend möchte ich einen
Inhalt aus dem Tabellenbatt Kasse (Funktion kopieren ,A2:B13 ) in der rot gefärbten Zelle einfügen lassen.
Danke Gruß Achim
Anzeige
AW: nächste rote Zelle gehen
nighty
hi ulf :)
wie gehabt :)
ein versuch ist immer noch besser als gar keiner :))
gruss nighty
AW: nächste rote Zelle gehen
Ulf
Was willst du damit ausdrücken?
"ein versuch ist immer noch besser als gar keiner"
Weißt du, dass die Funktion fehlerhaft ist und stellst das dennoch als Lösung ins Forum oder wusstest du es noch nicht?
Ulf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige