• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

conditional format

Status
Niet open voor verdere reacties.

nobody11

Gebruiker
Lid geworden
20 dec 2007
Berichten
552
Ik tracht een macro op te nemen die van een selectie via conditional format de max aanduidt en highlight..ik sukkel momenteel met het deel waarin ik zeg dat hij elke cel moet vergelijken met de max van de selcetie

Code:
Sub maximum()
'
'highlights the maximum in the selection
'
    RowCount = Selection.Rows.Count
    colcount = Selection.Columns.Count
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        [B]"=AND(RC=MAX(RC:RC[rowcount])"[/B]
    Selection.FormatConditions(1).Interior.ColorIndex = 3
End Sub
Heb ook al geprobeerd met onderstaande code, maar werkt ook niet.. iemand een idée?

Code:
Sub maximum()
'
'highlights the maximum in the selection
'
    RowCount = Selection.Rows.Count
    colcount = Selection.Columns.Count
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        [B]"=AND(RC=MAX(selection)"[/B]
    Selection.FormatConditions(1).Interior.ColorIndex = 3
End Sub

alvast hartelijk bedankt!!
 
Ik ben niet de meest ervaren persoon met VBA, maar volgens mij gaat het mis omdat je in je formule gebruikmaakt van een variabele uit VBA:

Code:
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=AND(RC=MAX(RC:RC[rowcount])" 'Deze formule kopieer je letterlijk naar Excel, maar Excel kent 'rowcount' niet

Je kunt dit ondervangen door een naam te definiëren die de selectie voorstelt (ik ben er even van uitgegaan dat de naam al is aangemaakt in Excel):

Code:
    Dim selectie As Range
    Set selectie = Selection.Cells
    ActiveWorkbook.Names("gebied").RefersTo = selectie 'in plaats van gebied kun je natuurlijk zelf een naam kiezen

'gebied' kun je dan gebruiken in je formule, gewoon zonder aanhalingstekens.

Succes! :thumb:
 
Ik ben niet de meest ervaren persoon met VBA, maar volgens mij gaat het mis omdat je in je formule gebruikmaakt van een variabele uit VBA:

Code:
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=AND(RC=MAX(RC:RC[rowcount])" 'Deze formule kopieer je letterlijk naar Excel, maar Excel kent 'rowcount' niet

Je kunt dit ondervangen door een naam te definiëren die de selectie voorstelt (ik ben er even van uitgegaan dat de naam al is aangemaakt in Excel):

Code:
    Dim selectie As Range
    Set selectie = Selection.Cells
    ActiveWorkbook.Names("gebied").RefersTo = selectie 'in plaats van gebied kun je natuurlijk zelf een naam kiezen

'gebied' kun je dan gebruiken in je formule, gewoon zonder aanhalingstekens.

Succes! :thumb:

ja,ik weet inderdaad dat daar het probleem zit, het probleem is nu dat in excel de naam niet is aangemaakt omdat het altijd variabel is u selectie.. daarom datik een andere oplossing zoek :-) toch bedankt voor je input!
 
Deze formule doet volgens mij wel wat je wilt, maar ik heb cel A1 even als hulpcel gebruikt, dus tja... niet helemaal ideaal.

Code:
Sub maximum()    
Selection.FormatConditions.Delete
    ActiveWorkbook.Names.Add Name:="gebied", RefersTo:=Selection.Cells
    [A1] = WorksheetFunction.Max([gebied])
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=$A$1"
    Selection.FormatConditions(1).Interior.ColorIndex = 3
End sub
 
Deze formule doet volgens mij wel wat je wilt, maar ik heb cel A1 even als hulpcel gebruikt, dus tja... niet helemaal ideaal.

Code:
Sub maximum()    
Selection.FormatConditions.Delete
    ActiveWorkbook.Names.Add Name:="gebied", RefersTo:=Selection.Cells
    [A1] = WorksheetFunction.Max([gebied])
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=$A$1"
    Selection.FormatConditions(1).Interior.ColorIndex = 3
End sub


bedankt, maar ik zou graag zonder een hulpcel werken.. anders is het te omslachtig!
toch bedankt!
 
bedankt, maar ik zou graag zonder een hulpcel werken.. anders is het te omslachtig!
toch bedankt!

Ik heb de code een klein beetje aangepast zodat er geen gebruik wordt gemaakt van een hulpcel.

Code:
Sub maximum()
Selection.FormatConditions.Delete
ActiveWorkbook.Names.Add Name:="gebied", RefersTo:=Selection.Cells
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=" & WorksheetFunction.Max([gebied])
Selection.FormatConditions(1).Interior.ColorIndex = 3
End Sub

Met vriendelijke groet,


Roncancio
 
Ik heb de code een klein beetje aangepast zodat er geen gebruik wordt gemaakt van een hulpcel.

Code:
Sub maximum()
Selection.FormatConditions.Delete
ActiveWorkbook.Names.Add Name:="gebied", RefersTo:=Selection.Cells
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=" & WorksheetFunction.Max([gebied])
Selection.FormatConditions(1).Interior.ColorIndex = 3
End Sub

Met vriendelijke groet,


Roncancio

hey, bedankt! het enige probleem nu is dat dit niet dynamisch is.. als ik dat doe op een selectie, dan duidt hij het maximum aan inderdaad, maar als dan de maximum verandert, dan duidt hij het nieuwe maximum niet automatisch aan.. dit gaat wss enkel met een hulpcel?
 
Nobody,

Ik zou toch maar eerst de ingebouwde mogelijkheden van Excel bekijken, alvorens allerhande moeilijke VBA-codes te gebruiken.

Code:
Sub Macro1()
    With Selection
        .FormatConditions.Delete
        .FormatConditions.AddTop10
        With .FormatConditions(1)
            .TopBottom = xlTop10Top
            .Rank = 1
            .Interior.ColorIndex = 3
        End With
    End With
End Sub

Wigi
 
Nobody,

Ik zou toch maar eerst de ingebouwde mogelijkheden van Excel bekijken, alvorens allerhande moeilijke VBA-codes te gebruiken.

Code:
Sub Macro1()
    With Selection
        .FormatConditions.Delete
        .FormatConditions.AddTop10
        With .FormatConditions(1)
            .TopBottom = xlTop10Top
            .Rank = 1
            .Interior.ColorIndex = 3
        End With
    End With
End Sub

Wigi


tx! wat ik zocht
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan