Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1068to1072
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

Position von Markierungen ermitteln

Position von Markierungen ermitteln
24.04.2009 11:08:33
Markierungen
Hi,
ist es möglich, die Positionen von Markierten Zellen (ColorIndex = 6) in einer Spalte zu ermitteln ? Sprich, ich habe in den Spalten B, C und M bestimmte Zellen markiert mit ColorIndex = 6
Mein Ziel wäre, die Zeilenzahlen , wo sich diese Markierungen befinden, in ein Label zu schreiben, zB so:
Label1 = "Gefundene Zeilen: 3, 6, 20, 54, 66, 77, 122"
Falls es mit 3 Spalten nicht geht, vielleicht nur mit einer zB "B"
Geht sowas ?
Danke mal
Mandy

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Position von Markierungen ermitteln
24.04.2009 11:51:31
Markierungen
Hallo,
wie sind die Zellen gefärbt?
Normal über Format oder über die Bedingte Formatierung?
Gruß Tino
mit einem Makro...
24.04.2009 11:56:47
Mandy
..so
Interior.ColorIndex = X
Ist das entscheidend ?
Gruss
Mandy
AW: mit einem Makro...
24.04.2009 12:12:50
Tino
Hallo,
entscheidend ist nur ob die Farbe durch eine Bedingte Formatierung erreicht wird, weil diese nicht mit Interior… gelesen werden kann, aber dem ist ja nicht so.
Teste mal diesen Code, Tabellenname noch anpassen.
Ich gehe mal davon aus, dass sich dieses Label auf der Tabelle befindet und
aus ActiveX Steuerelemente stammt.
Sub Beispiel()
Dim Bereich As Range
Dim LRow As Long
Dim strString As String

With Sheets("Tabelle3") 'Tabellennamen anpassen 
 Set Bereich = .Range("B1", .UsedRange.Cells(.UsedRange.Cells.Count))
    
    For LRow = 1 To Bereich.Rows.Count
     
     If Bereich(LRow, 1).Interior.ColorIndex = 6 Then
      strString = strString & Bereich(LRow, 1).Row & ", "
     
     ElseIf Bereich(LRow, 2).Interior.ColorIndex = 6 Then
      strString = strString & Bereich(LRow, 1).Row & ", "
     
     ElseIf Bereich(LRow, 12).Interior.ColorIndex = 6 Then
      strString = strString & Bereich(LRow, 1).Row & ", "
     
     End If
    
    Next LRow
  
  If Len(strString) > 0 Then
     strString = Left$(strString, Len(strString) - 2)
    .Label1.Caption = "Gefundene Zeilen: " & strString
  Else
    .Label1.Caption = "nichts gefunden"
  End If

End With

End Sub


Gruß Tino

Anzeige
AW: mit einem Makro...
24.04.2009 14:56:35
Mandy
Hallo Tino,
Danke, im Prinzip funktioniert es, evt. habe ich mich aber nicht richtig ausgedrückt. Ich wollte nicht alle Markierungen generell zählen, sondern solchen, die ColorIndex = 6 haben , die in ein Label(1) und dann noch für ein 2. Label , die die ColorIndex = 45 haben.
Im Prinzip habe ich nur 2 verschiedene Farben zu zählen,
Sorry, Gruss
Mandy
AW: mit einem Makro...
24.04.2009 15:23:04
Tino
Hallo,
da wird nichts gezählt, es wird nachgesehen in welcher Zeile einer dieser Zellen diese Farbe hat,
ist die Bedingung erfüllt, wird diese Zeile in einem String gespeichert bzw. angehängt.
Für eine zweite Farbe, baue einfach einen zweiten String auf, der in dieser Schleife auf die zweite Farbe prüft.
Gruß Tino
Anzeige
AW: mit einem Makro...
24.04.2009 16:03:55
Mandy
Hi Tino,
das hatte ich versucht, hatte aber nachher in beiden Labels das gleiche Ergebnis drin, und zwar das für ColorIndex = 6. Hatte gedacht, es liegt am Code.
Mandy
AW: mit einem Makro...
24.04.2009 16:52:45
Tino
Hallo,
so mit zwei Farben und zwei Labels (Label1 und Label2), Tabellenname wieder anpassen.
Sub Beispiel()
Dim Bereich As Range
Dim LRow As Long
Dim strString6 As String
Dim strString45 As String

With Sheets("Tabelle3") 'Tabellennamen anpassen 
 Set Bereich = .Range("B1", .UsedRange.Cells(.UsedRange.Cells.Count))
    
  For LRow = 1 To Bereich.Rows.Count
     
     'prüfe auf Colorindex 6 ******************************* 
     If Bereich(LRow, 1).Interior.ColorIndex = 6 Then
         strString6 = strString6 & Bereich(LRow, 1).Row & ", "
        ElseIf Bereich(LRow, 2).Interior.ColorIndex = 6 Then
         strString6 = strString6 & Bereich(LRow, 1).Row & ", "
        ElseIf Bereich(LRow, 12).Interior.ColorIndex = 6 Then
         strString6 = strString6 & Bereich(LRow, 1).Row & ", "
     End If
     '******************************************************* 
    
     'prüfe auf Colorindex 45 ******************************* 
     If Bereich(LRow, 1).Interior.ColorIndex = 45 Then
         strString45 = strString45 & Bereich(LRow, 1).Row & ", "
        ElseIf Bereich(LRow, 2).Interior.ColorIndex = 45 Then
         strString45 = strString45 & Bereich(LRow, 1).Row & ", "
        ElseIf Bereich(LRow, 12).Interior.ColorIndex = 45 Then
         strString45 = strString45 & Bereich(LRow, 1).Row & ", "
     End If
     '******************************************************* 
     
  Next LRow
  
  'Label1 *************************************************** 
  If Len(strString6) > 0 Then
       strString6 = Left$(strString6, Len(strString6) - 2)
      .Label1.Caption = "Gefundene Zeilen: " & strString6
    Else
      .Label1.Caption = "nichts gefunden"
  End If
  
  'Label2 *************************************************** 
  If Len(strString45) > 0 Then
       strString45 = Left$(strString45, Len(strString45) - 2)
      .Label2.Caption = "Gefundene Zeilen: " & strString45
    Else
      .Label2.Caption = "nichts gefunden"
  End If


End With

End Sub


Gruß Tino

Anzeige
Danke Tino, passt ( wie immer :-) ) owT
24.04.2009 20:29:51
Mandy
AW: Position von Markierungen ermitteln
24.04.2009 12:14:05
Markierungen
Hallo Mandy,
mit VBA könnte deine Lösung so ausschauen

Sub finden()
Dim wks As Worksheet, bereich As Range, rng As Range, nummernliste As String
Set wks = Worksheets("Tabelle1")  'Tabelle1 ist dein Arbeitsblatt
Set bereich = wks.Range("C1:G30") 'Der Bereich, den du untersuchen willst
nummernliste = ""
For Each rng In bereich
rng.Select
If Selection.Interior.ColorIndex = 6 Then
nummernliste = nummernliste & rng.Row & ", "
End If
End Sub


Die nummernliste kannst du dann in ein Label einfügen, allerdings weiss ich nicht, wie man ein Label macht.
Gruß markus

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige