online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon seebaer_1 vom 19.12.2019, 08:49 Options

Minimum u Maximum einfärben

hallo,

vllt kann mir hier jemand helfen?

Aus dem Bereich B151:B170 möchte ich gerne das Minimum bzw Maximum suchen, das Minimum möchte ich dann rot einfärben(fett) das Maximum blau(fett).

danke
MfG
seebaer

  • *Threadedit* 11:39:06
    Admininfo: Führ bitte einen Thread nicht fort indem du Weitere eröffnest, und vermeide Mehrfachanfragen. Die Datenbank und User werden es dir danken. Siehe FAQ 2.


  • Antwort schreiben

    Antwort 1 von coros vom 19.12.2019, 09:19 Options

    Hallo seebaer,

    das geht über die bedingte Formatierung. Eine Anleitung dazu findest Du auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 5 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

    Die Formel für die bedingte Fortmatierung für Minimum lautet

    =B151=MIN($B$151:$B$170)

    und für Maximum

    =B151=MAX($B$151:$B$170)

    Bei Fragen melde Dich.

    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 2 von seebaer_1 vom 19.12.2019, 09:25 Options

    hallo oliver,

    vielen dank für deine Antwort

    ich möchte das Problem allerdings mit einem VBA code lösen, kannst du da auch helfen?

    deine Homepage ist übrigens echt super, war ich schon mal drauf.

    danke

    MfG
    seebaer

    Antwort 3 von coros vom 19.12.2019, 09:34 Options

    Hallo seebaer,

    solltest Du besser das nächste mal dazu schreiben, wenn Du explizit eine VBA-Lösung wünscht.

    Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
    Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

    [b]Option Explicit
    
    Sub Min_Max()
    Dim rngBereich As Range
    For Each rngBereich In Range("B151:B170")
    If rngBereich = Application.WorksheetFunction.Min(Range("B151:B170")) Then
    With Range(rngBereich.Address)
    .Font.ColorIndex = 3
    .Font.Bold = True
    End With
    End If
    If rngBereich = Application.WorksheetFunction.Max(Range("B151:B170")) Then
    With Range(rngBereich.Address)
    .Font.ColorIndex = 5
    .Font.Bold = True
    End With
    End If
    Next
    End Sub[/b]


    Ich hoffe, Du hast das so gemeint. Bei Fragen melde Dich.

    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 4 von seebaer_1 vom 19.12.2019, 09:42 Options

    hallo oliver,

    hey super genau so hab ich das gemeint, eine frage hätte ich da noch, muss ich da nicht irgendwo noch rein schreiben auf welches tabellenblatt es sich bezieht also auf "Übersicht-Sektionen"? oder steht das wo und ich sehe es nicht?

    und zu den bed. Formatierungen noch:

    wo müssten in deiner anleitung dann die obig genannten formeln stehen (rein interesse halber, falls ich sowas mal brauche)

    danke,

    MfG
    seebaer

    Antwort 5 von coros vom 19.12.2019, 09:49 Options

    Hallo Seebaer,

    solltest Du das nächste mal auch gleich zu Anfang angeben, wenn es sich um ein bestimmtes Tabellenblatt handelt. Schreibe in dem Makro überall wo eine Range-Anweisung steht den Text

    Sheets("Übersicht-Sektionen").

    davor. Dann wirkt das Makro nur im Tabellenblatt "Übersicht-Sektionen".

    Die Formeln gehören in die Bedingungen der bedingten Formatierung und dort in die Leerzeile neben "Formel ist". Steht aber alles in der ANleitung auf meiner HP.

    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 6 von seebaer_1 vom 19.12.2019, 10:12 Options

    hallo oliver,

    okay werd ich machen, sorry.

    ich hätte noch zwei ergänzungsfragen.

    kann man das makro so modifizieren, dass keine zahl eingefärbt bzw fett gemacht wird wenn alle werte gleich groß sind, das makro färbt da dann alles blau(fett)? also dann sollen alle werte schwarz(nicht fett) sein.

    kann man das makro so modifizieren, dass wenn alle werte gleich groß sind, außer einer, dieser dann eben rot bzw blau(fett) gemacht wird und die anderen werte bleiben also Schwarz(nicht fett)?

    kann man meine beiden fragen irgendwie zusammen packen, dh B151:B170 entsprechen ja im diagramm datenreihe 1:20, dass wenn zB 152 das Min ist, soll die zweite datenreihe rot als Flächenfarbe bekommen, und wenn B155 das Max ist soll die 5te datenreihe blau werden?

    danke
    MfG
    seebaer

    Antwort 7 von seebaer_1 vom 19.12.2019, 10:23 Options

    hallo oliver,

    so ganz funktionierts doch noch nicht, denn wenn ich in dem bereich B151:B170 werte ändere werden zwar wieder "neu" die minima u maxima bestimmt aber die "alten" bleiben so eingefärbt(falls sie nicht mehr das max bzw min sind bleiben sie trotzdem blau bzw rot) sie sollten dann jedoch wieder schwarz werden.

    sorry.

    Danke
    MfG
    seebaer

    Antwort 8 von coros vom 19.12.2019, 10:26 Options

    Hallo seebaer,

    nachfolgendes Makro sollte Dir immer nur einen Min- bzw. Maxwert einfärben.

    Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
    Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

    [b]Option Explicit
    
    Sub Min_Max()
    Dim rngBereich As Range
    Dim iZählerMin As Integer
    Dim iZählerMax As Integer
    With Sheets("Übersicht-Sektionen").Range("B151:B170")
    .Font.ColorIndex = 0
    .Font.Bold = False
    End With
    For Each rngBereich In Sheets("Übersicht-Sektionen").Range("B151:B170")
    If rngBereich = Application.WorksheetFunction.Min(Sheets("Übersicht-Sektionen").Range("B151:B170")) Then
    iZählerMin = iZählerMin + 1
    If iZählerMin > 1 Then GoTo weiter_max
    With Range(rngBereich.Address)
    .Font.ColorIndex = 3
    .Font.Bold = True
    End With
    End If
    weiter_max:
    If rngBereich = Application.WorksheetFunction.Max(Sheets("Übersicht-Sektionen").Range("B151:B170")) Then
    iZählerMax = iZählerMax + 1
    If iZählerMax > 1 Then GoTo weiter_min
    With Sheets("Übersicht-Sektionen").Range(rngBereich.Address)
    .Font.ColorIndex = 5
    .Font.Bold = True
    End With
    End If
    weiter_min:
    Next
    End Sub[/b]


    Den 2. Teil Deiner Frage habe ich leider noch nicht ganz verstanden.

    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 9 von seebaer_1 vom 19.12.2019, 10:34 Options

    hallo oliver,

    das funktioniert nun fast, dh es wird wirklich nur ein min bzw max markiert so wie gewünscht, aber wenn zB in jeder Zelle 0 steht und in zelle B154 steht 5 dann soll die 5 blau werden und alle anderen schwarz bleiben da es kein eindeutiges min gibt, das gleiche gilt für max, dh wenn überall 100 steht, aber in B155 steht 5 dann soll die 5 rot markiert werden und alles andere schwarz bleiben.

    die zweite frage? das mit den diagramm? ja das hängt alles zusammen, diese frage die du hier so aufwändig beantwortest soll die werte aus einer Tabelle(B151:B170) markieren, dazu gibt es ein eingebettetes diagr das auf diese werte zugreift. die maximale bzw minimale datenreihe sollen dann rot bzw blau markiert werden, damit man sieht woher diese werte der datenreihe stammen(also aus der tabelle).

    danke
    MfG
    seebaer

    Antwort 10 von coros vom 19.12.2019, 10:58 Options

    HAllo seebaer,

    wie bitte soll das gehen. Wenn überall eine 100 steht und nur in einer Zelle eine 5, ist mit Sicherheit nicht die 5 der höchste Wert, sondern die 100. Wo ist da der Sinn. Bitte erst mal um Erklärung, bevor ich mir dahingehend weitere Gedanken mache.

    Nachfolgend ein Makro, dass DIr die Datenreihen eines Diagramms färbt.

    Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
    Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

    [b]Option Explicit
    
    Sub Min_Max()
    Dim rngBereich As Range
    Dim iZählerMin As Integer
    Dim iZählerMax As Integer
    Dim iZählerDiagramm As Integer
    Dim Diagramm As Series
    ActiveSheet.ChartObjects("Diagramm 2").Activate
    Set Diagramm = ActiveChart.SeriesCollection(1)
    ActiveChart.SeriesCollection(1).Interior.ColorIndex = 1
    With Sheets("Übersicht-Sektionen").Range("B151:B170")
    .Font.ColorIndex = 0
    .Font.Bold = False
    End With
    For Each rngBereich In Sheets("Übersicht-Sektionen").Range("B151:B170")
    iZählerDiagramm = iZählerDiagramm + 1
    If rngBereich = Application.WorksheetFunction.Min(Sheets("Übersicht-Sektionen").Range("B151:B170")) Then
    iZählerMin = iZählerMin + 1
    If iZählerMin < 1 Then
    With Range(rngBereich.Address)
    .Font.ColorIndex = 5
    .Font.Bold = True
    End With
    End If
    Diagramm.Points(iZählerDiagramm).Interior.ColorIndex = 5
    End If
    
    If rngBereich = Application.WorksheetFunction.Max(Sheets("Übersicht-Sektionen").Range("B151:B170")) Then
    iZählerMax = iZählerMax + 1
    If iZählerMax < 1 Then
    With Sheets("Übersicht-Sektionen").Range(rngBereich.Address)
    .Font.ColorIndex = 3
    .Font.Bold = True
    End With
    End If
    Diagramm.Points(iZählerDiagramm).Interior.ColorIndex = 3
    End If
    Next
    End Sub[/b]


    In der Zeile

    [b]ActiveSheet.ChartObjects("Diagramm 2").Activate[/b]


    musst Du den Namen Deines Diagramms eintragen.


    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 11 von seebaer_1 vom 19.12.2019, 11:06 Options

    hallo oliver,

    ließ dir bitte AW9 nochmal genau durch da steht nämlich 5 rot einfärben (rot entspricht minimum)

    hoffe dass ist klar, und drüber steht 5 blau einfärben, das sind alle anderen werte aber 0 und nicht 100, ok?

    danke
    MfG
    seebaer

    Antwort 12 von seebaer_1 vom 19.12.2019, 11:15 Options

    hallo oliver,

    dein makro aus AW10 ist super, markiert das so wie ich wollte, aber die datenquelle meines diagramms(B151:B170) ändert sich.

    ich habe eine select Case verzweigung, und je nachdem ob case 1 ... bis Case 10 zutrifft ändert sich der datenbereich in den diagrammen, muss ich da dann dein makro in jedes "Case" schreiben und den datenbereich (B151:B170) dementsprechend ändern oder?

    danke
    MfG
    seebaer

    ps: wenn du mir jetzt noch das "kleine" obige Problem beheben kannst bist du echt wahnsinn wenn man das mal sagen darf. also danke dir

    Antwort 13 von coros vom 19.12.2019, 11:30 Options

    Hallo seebaer,

    also langsam komm ich mir hier etwas doof vor. Warum schreibst Du nicht von Anfang an die Infos zu Deiner Datei. Am Besten wäre, wenn Du die Datei z.B. bei

    www.netupload.de

    hochladen und den Link, den Du dann erhälst, hier posten könntest.

    Denn in AW12 kommst Du nun mit der Info rüber, dass der Bereich nicht fest ist, sondern durch einen anderen VBA-Code geändert wird. Was soll das? Lade bitte Deine Datei unter dem oben angegebenen Link hoch, damit ich das an Deiner Datei sehen kann, da ich ehrlich gesagt keine Lust habe, mir eine Datei zu erstellen, die Deiner annähernd änlich ist, und die ich dann ständig nach Deinen Infos ändern muss. Du hast die Datei bereits, stelle uns diese bitte zur Verfügung.

    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 14 von seebaer_1 vom 19.12.2019, 11:33 Options

    hallo oliver,

    ABER:
    hier tritt das selbe problem auf wie beim Färben der werte.
    dh habe ich lauter gleich große säulen (entspricht lauter gleich großen werten) und eine größere säule (entspricht einem größeren wert) soll nur der große wert blau gemacht werden der rest schwarz
    analog: nur ein kleiner wert und lauter gleich große größere werte bzw säulen dann soll nur der kleine rot gemacht werden und der rest schwarz?

    danke
    MfG
    seebaer

    Antwort 15 von seebaer_1 vom 19.12.2019, 11:39 Options

    hallo oliver,

    AW 12 hat sich bereits erledigt, hab ich selber ausprobiert und es hat soweit funktioniert außer das was in AW14 steht und dazu brauchst du dei datei nicht, die würde dir hier nichts helfen, da es nur darum geht, dass wenn es kein eindeutiges max oder min gibt dieses auch nicht ersichtlich sein soll also schwarz sein soll, ist das verständlich?

    danke
    MfG
    seebaer

    Antwort 16 von coros vom 19.12.2019, 12:01 Options

    Hallo seebaer,

    das mit Säulen ist kein Problem, da muss nur der Befehl "End If", der vor der Zeile zum Färben der Diagrammbalken steht unter diese Zeile verschoben werden.

    Allerdings fällt mir im Moment nichts richtiges ein, wenn es mehrere Wert gibt, die den Wert 0 haben, ein. Denn wenn es mehrer Zellen mit dem Wert 0 gibt, ist das nun mal der Minimumwert. Besteht die Möglichkeit, dass man anstelle dem Wert 0 die Zelle leer läst?

    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 17 von seebaer_1 vom 19.12.2019, 12:09 Options

    hallo oliver,

    nein das geht auf keinen fall, "0" war ja nur ein beispiel, die warscheinlichkeit dass genau o wo stehen wird existiert nicht.

    das ist eben das problem es ist dann zwar ein minimum aber kein eindeutiges? vllt kann das VBA auch gar nicht?

    kannst du mir deinen tipp aus den ersten zeilen posten?

    danke
    MfG
    seebaer

    Antwort 18 von coros vom 19.12.2019, 12:20 Options

    Hallo seebaer,

    das hat nichts mit VBA zu tun. In dem obigen Makro kommt die Tabellenblattfunktion "=MIN()" und "=MAX()" zum Einsatz, nur halt als WorksheetFunction-Eigenschaft. Dort wird das Gleiche erreicht, als wenn ich in eine Zelle besagte Formeln eintrage. Wenn also in einer oder mehreren Zellen der Wert 0 steht, ist das dass Minimum, bzw. bei 100 das Maximum. Wie man das umgehen könnte fällt mir im Moment nichts gescheites ein. Mal sehen, eventuell kommt mir ja noch eine Erleuchtung.

    Mit Deinem Zusatz

    Zitat:
    kannst du mir deinen tipp aus den ersten zeilen posten

    kann ich leider nichts anfangen.

    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 19 von coros vom 19.12.2019, 12:31 Options

    Hallo seebaer,

    nachfolgendes Makro sollte das machen, was Du Dir vorstellst. Wert 0 und 100 werden ignoriert.

    Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
    Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

    [b]Option Explicit
    
    Sub Min_Max()
    Dim rngBereich As Range
    Dim iZählerMin As Integer
    Dim iZählerMax As Integer
    Dim iZählerDiagramm As Integer
    Dim Diagramm As Series
    Dim arrayMin As String
    Dim arrayMax As String
    ActiveSheet.ChartObjects("Diagramm 2").Activate
    Set Diagramm = ActiveChart.SeriesCollection(1)
    ActiveChart.SeriesCollection(1).Interior.ColorIndex = 1
    With Sheets("Übersicht-Sektionen").Range("B151:B170")
    .Font.ColorIndex = 0
    .Font.Bold = False
    End With
    For Each rngBereich In Sheets("Übersicht-Sektionen").Range("B151:B170")
    If rngBereich > 0 Then
    If arrayMin = "" Then
    arrayMin = rngBereich.Address
    Else
    arrayMin = arrayMin & "," & rngBereich.Address
    End If
    End If
    If rngBereich < 100 Then
    If arrayMax = "" Then
    arrayMax = rngBereich.Address
    Else
    arrayMax = arrayMax & "," & rngBereich.Address
    End If
    End If
    Next
    For Each rngBereich In Sheets("Übersicht-Sektionen").Range("B151:B170")
    iZählerDiagramm = iZählerDiagramm + 1
    If rngBereich > 0 Then
    If rngBereich = Application.WorksheetFunction.Min(Sheets("Übersicht-Sektionen").Range(arrayMin)) Then
    iZählerMin = iZählerMin + 1
    If iZählerMin > 1 Then GoTo weiter_max
    With Range(rngBereich.Address)
    .Font.ColorIndex = 3
    .Font.Bold = True
    End With
    weiter_max:
    Diagramm.Points(iZählerDiagramm).Interior.ColorIndex = 3
    End If
    End If
    If rngBereich = Application.WorksheetFunction.Max(Sheets("Übersicht-Sektionen").Range(arrayMax)) _
    And rngBereich < 100 Then
    iZählerMax = iZählerMax + 1
    If iZählerMax > 1 Then GoTo weiter_min
    With Sheets("Übersicht-Sektionen").Range(rngBereich.Address)
    .Font.ColorIndex = 5
    .Font.Bold = True
    End With
    weiter_min:
    Diagramm.Points(iZählerDiagramm).Interior.ColorIndex = 5
    End If
    Next
    End Sub
    [/b]


    Ich hoffe, so hast Du das gemeint? Bei Fragen melde Dich.

    MfG,
    Oliver
    Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
    ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

    Antwort 20 von seebaer_1 vom 19.12.2019, 12:58 Options

    hallo oliver,

    danke dafür, aber ich galube da hast du mich falsch verstanden.

    es kommt ein laufzeitfehler, ich glaube das ist der fall da du dich ebi deinem makro auf die werte <100 und >0 beschränkst, oder das machst du doch?

    ABER: bei mir kann ein beliebiger wert in den zellen stehen das mit der "0" und der "100" war nur ein beispiel, ich weiß nicht wie groß oder klein die werte in meinen zellen sind?

    zu deiner frage aus AW18:
    ich meine deinen vorschlag wie ich das mit dem "end if" machen soll, aber ich glaube das führt auch nicht zum ziel.

    hab ich deine idee jetzt komplett über den haufen geworfen indem ich dir nun sage dass das alles nur beispielwerte sind?

    hast du noch eine idee?

    danke
    MfG
    seebaer

    Ähnliche Themen

    was sagen diese smart-Daten über meine festplatte
    wneu  17.03.2007 - 89 Hits - 2 Antworten

    (Balken-) Diagramm: dynamische Achsenskalierung
    sickboy1  23.08.2007 - 46 Hits - 9 Antworten

    Zellen nach min und max vergleichen
    JURU  05.01.2008 - 53 Hits - 1 Antwort

    Max u Min färben // *CLOSED* //
    seebaer_1  07.01.2008 - 21 Hits -

    Achsenskalierung von OLE Chart in VB6
    Paulo87  18.04.2008 - 30 Hits -

    Hinweis

    Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

    Neue Einträge

    Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026