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

Voorwaardelijke opmaak in VBA

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

ik heb getracht een formule te maken ( gedeeltelijk van internet ) om een voorwaardelijke opmaak te maken.
Ik wil graag als Kolom B gevuld wordt dat cel B t/m S een opmaak krijgt en dit dan toepasbaar op de gehele werkblad.
Ik heb dit al met de normale voorwaardelijke opmaak gedaan maar dan print hij alle bladzijde`s, vandaar dat ik dit graag toepasbaar wil maken met VBA.
Reden.
Ik gebruik het voor een bestelformulier en nog vele andere en ivm met printen van het formulier wil ik er een voorwaardelijke opmaak op hebben om dat je anders te veel print waar je niks aan heb. En het oog wil ook wat.
In de bijlage vind je een voorbeeld van hoe ik het zou willen hebben.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
With Rows("C:F")
For i = 1 To Range("b65000").End(xlUp).Row
 If Cells(i, 2) = "" Then Rows.Select ("C:F")
.Borders(xlEdgeLeft).LineStyle = xlExpression
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlExpression
.Borders(xlEdgeRight).LineStyle = xlExpression
Else
.Borders(xlEdgeLeft).LineStyle = x2lNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
End If
Next i
End With
On Error GoTo 0
End Sub

Groet HWV
 

Bijlagen

HWV,

Zoals je al aangeeft is jouw VBA kennis niet wat het wezen moet maar waarom duik je er dan zo diep in.

Ik heb namelijk jouw code bekeken en die klopt echt niet.
Rows("C:F")
Hier geef je aan dat de regels C t/m F ...
Regels lopen van 1 t/m 65536 (excel 2003)
Kolommen lopen van A t/m IV (excel 2003)
Hoe kun je die twee dan combineren?
Verderop gaat het weer fout.
Rows("3:6").Select werkt beter dan Rows.Select ("C:F")

Als je dan toch wat wilt spelen met de code hier is een voorzet die jij zou moeten kunnen volgen:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Application.ScreenUpdating = False
Range(Cells(Target.Row, "B"), Cells(Target.Row, "R")).Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Target.Select
Application.ScreenUpdating = True
End Sub

Vervang jouw code voor deze code en wanneer je nu in kolom B een wijziging doet wordt de gehele actieve regel opgemaakt zoals jij dat wilt.

Suc6 ermee

Grtz.
 
Heb je al eens gekeken wat je met opmaakprofielen kunt ?
 
Beste Superzeeuw, best SNB

Beiden bedankt voor uw reactie.
Superzeeuw bedankt voor de code ga ik uit proberen, en waarom ik er zo diep in ga.
In voorwaarlijke opmaak kwam ik er niet mee in uit, dus moest ik verder zoeken.
Kom je uit in VBA wat ik waanzinnig leuk vind en van het een rol je in het ander.
En dan wil je vaak te veel en als het dan niet lukt .....

SNB,
Ik heb de functie wel voor bij zien komen, maar weet dus nietwat die functie inhoud.
Zal daar eens induiken

Bedankt voor de input nogmaals.

Groet HWV
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan