• 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.

macro voor opmaak selectie

Status
Niet open voor verdere reacties.

eric2001

Terugkerende gebruiker
Lid geworden
23 mrt 2001
Berichten
1.600
Anderhalf jaar geleden had ik een vergelijkbaar probleem. Dat was toen opgelost, maar dezelfde macro werkt nu niet meer.

Ik wil om een selectie een kader maken en tussen de kolommen vertikale lijnen.
Dit werkt goed met de macro "kader en lijnen" hieronder.
Verder wil ik de rijen om en om een kleur geven. Dit werkt goed met de macro "balken" hieronder.
Maar als ik balken uitvoer en daarna kader en lijnen, verdwijnen de balken weer en andersom ook.

Ik zat eerst in de richting van Selection.FormatConditions.Delete te denken, maar als ik dat weghaalde werd het resultaat nog onvoorspelbaarder. (Wat doet dit precies trouwens?)

Wie weet een oplossing?



Sub kader()
'
'Macro: kader en lijnen
'
' Sneltoets: CTRL+k
'
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=REST(KOLOM(A1);2)=0"
With Selection.FormatConditions(1).Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.FormatConditions(1).Borders(xlRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

Sub balken()
'
' Macro: balken
'
' Sneltoets: CTRL+c
'
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=REST(RIJ(A1);2)=1"
Selection.FormatConditions(1).Interior.ColorIndex = 37

End Sub
 
Je verwijderd je voorwaardelijke opmaak met
Selection.FormatConditions.Delete

Door ze na elkaar te draaien voeg je de voorwaardelijke opmaak toe, verwijderd deze en voegt een nieuwe toe.
Waarom heb je de opmaak in voorwaardelijke opmaak staan en voeg je de opmaak niet "gewoon" met de macro toe?
 
j, bedankt voor je antwoord.
Ik denk dat ik je vraag niet helemaal begrijp.
De voorwaardelijke opmaak in de kader-macro heeft inderdaad geen zin, dus die heb ik weggehaald. In de balken-macro moet het volgens mij wel, omdat de opmaak afhankelijk is van de even of oneven rij.

Overigens heb ik de code in de kader macro (zoals ik zei) weggehaald maar dan is het resultaat ook niet goed. Nu krijg ik als ik de macro aanroep met ctrl+k een scherm met hyperlink aanroepen, dus ik kan het even niet testen. Ik moet nu weg, maar ik laat het vanavond even weten wat het resultaat dan is.

Grtz
Eric
 
Hi j,
Alles werkt weer redelijk. Ik heb het getest zonder die voorwaardelijke opmaak deleten, maar nu krijg ik:

Eerst "balken" daarna "kader"
Resultaat: alleen in de oneven rijen, dus die met een kleur, wordt de verticale lijn getoond.

Eerst "kader" en daarna "balken"
Resultaat: de lijnen zijn weer verdwenen, behalve het kader.

Als ik de voorwaardelijke opmaak deleten ook in "balken" weghaal krijg ik:

Eerst "balken" daarna "kader"
Resultaat: hetzelfde als boven

Eerst "kader" daarna "balken"
Resultaat: de kolommen worden gekleurd (om en om).

Dit laatste is denk ik wel te verklaren, alleen is mijn kennis van macro's niet zo dat ik dat gelijk doorzie.

Grtz,
Eric
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan