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

Pattern opmaak in VBA

Status
Niet open voor verdere reacties.

trucker10

Terugkerende gebruiker
Lid geworden
3 dec 2008
Berichten
2.881
Ik wil een bepaalde opmaak via VBA overzetten omdat ik teveel voorwaardelijke opmaken zou hebben , nu kom ik vast te zitten met de diverse benamingen :(. Zo weet ik niet hoe ik een kader ( ook in kleur ) rond de cel kan zetten , hoe ik het font kleur wijzig enz .
Ik heb via google op pattern opmaak gezocht , maar helaas overgekeken :eek:. Is er iemand die mij op de goeie site kan helpen of een hint waar ik het kan vinden de diverse benamingen voor de opmaak . heb een bestandje bijgesloten met nr.platen als voorbeeld .
 

Bijlagen

  • Font_color_VBA.xls
    75,5 KB · Weergaven: 44
Laatst bewerkt:
mijn oplossing

IK heb via een ander tabblad een macrocode opgenomen > hoe je een cel opmaakt enz.
mijn code is hierdoor lang , waarschijnlijk kan dit korter . Wie kan me opweg helpen naar de juiste info ( website ) hoe je dit aanpakt . Of is er iemand die 1 nummerplaat uitwerkt zodat ik een hint krijg hoe het anders kan ?
 

Bijlagen

  • Font_color_VBA.xls
    83,5 KB · Weergaven: 48
Daniël

Kan je niet met een paar (verborgen) cellen werken waar de opmaak goed staat, en dan via een PasteSpecial de opmaak kopiëren vanaf de juiste cel?
 
Daniël

Kan je niet met een paar (verborgen) cellen werken waar de opmaak goed staat, en dan via een PasteSpecial de opmaak kopiëren vanaf de juiste cel?

Hallo Wim , de upload is maar een voorbeeldje van iets wat ik wil bereiken , ik wil een planning opmaken met celkleur , letterkleur , lijnkleur enz. voor 1 bepaalde klant heb ik al 8 ritten en 5 chauffeurs > d.w.z. dat ik al 4 cellen met een kleur moet hebben en nog eens 4 met een arcering ( xlGrid ) . Met hetgeen ik deze morgen gedaan heb via een andere sheet en de macrorecorder kan ik wel weg > maar met lange code's , overzichtelijk ??? .
Alvast bedankt voor het meedenken ;)

Hier al een vb van een eerste opmaak die ik wil verbeteren
Code:
Sub Ritcode(sWoord As String)
    
Selection.Value = sWoord

End Sub
Sub Rit_A1()
     Ritcode"A 1"
    Selection.Interior.ColorIndex = 3
End Sub
Sub Rit_A2()
    Ritcode "A 2"
    With Selection.Interior
        .ColorIndex = 2
        .Pattern = xlGrid
        .PatternColorIndex = 3
    End With
End Sub
Sub Rit_B1()
     Ritcode"B 1"
    Selection.Interior.ColorIndex = 5
End Sub
Sub Rit_B2()
     Ritcode"B 2"
    With Selection.Interior
        .ColorIndex = 2
        .Pattern = xlGrid
        .PatternColorIndex = 5
    End With
End Sub
Sub Rit_D1()
    Ritcode "D 1"
    Selection.Interior.ColorIndex = 10
End Sub
Sub Rit_D2()
     Ritcode"D 2"
    With Selection.Interior
        .ColorIndex = 2
        .Pattern = xlGrid
        .PatternColorIndex = 10
    End With
End Sub
Sub Rit_E1()
     Ritcode"E 1"
    Selection.Interior.ColorIndex = 6
End Sub
Sub Rit_E2()
     Ritcode"E 2"
    With Selection.Interior
        .ColorIndex = 2
        .Pattern = xlGrid
        .PatternColorIndex = 6
    End With
End Sub
Sub Rit_Extra()
     Ritcode"Ext"
    Selection.Interior.ColorIndex = 7
End Sub
Sub Rit_Oxfam()
    Ritcode "Oxf"
    Selection.Interior.ColorIndex = 8
End Sub
Sub Rit_Stempelen()
     Ritcode"Dop"
    Selection.Interior.ColorIndex = 20
End Sub
Sub Rit_Ziek()
     Ritcode"Zk"
    Selection.Interior.ColorIndex = 40
End Sub
Sub Rit_ADV()
     Ritcode"ADV"
    
    Selection.Interior.ColorIndex = 15
    
End Sub
Sub Rit_Feestdag()
    Ritcode "B V"
    Selection.Interior.ColorIndex = 43
End Sub
Sub Rit_Verlof()
     Ritcode"B V"
    Selection.Interior.ColorIndex = 50
End Sub
Sub Wissen()
    Ritcode ""
    With Selection.Interior
        .ColorIndex = 0
        .PatternColorIndex = 0
    End With
End Sub
 
Laatst bewerkt:
Is het geen optie om Select Case te gebruiken?
Simpel voorbeeld:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Select Case Target.Value
Case "A 1"
Target.Interior.ColorIndex = 3
Case  "A 2"
    With Target.Interior
        .ColorIndex = 2
        .Pattern = xlGrid
        .PatternColorIndex = 3
    End With
'... etc ...

Met vriendelijke groet,


Roncancio
 
Daniël, voor wat betreft je nummerplaten kom je hier mee toe

Code:
Sub Rood()
With ActiveCell
    .Value = "EQY 658" 'of je kan hier je Zetnummerplaat gebruiken
    .BorderAround ColorIndex:=3, Weight:=xlMedium
    With .Font
            .Name = "Arial"
            .FontStyle = "Standaard"
            .Size = 10
            .ColorIndex = 3
     End With
End With
End Sub

Mvg

Rudi
 
@ Roncancio , die optie is er en leunt dicht aan bij de code's die ik nu al gebruik ( ColorIndex = 2 / .Pattern = xlGrid / .PatternColorIndex = 3 )

@ Rudi , Ik heb het meer voor jouw code , kan je ook nog vertellen hoe ik in een cel bv een rooster of diagonale lijnen kan zetten (? Interior ???) m.a.v. patroonstijl .

Alvast iedereen al bedankt voor de gegeven oplossing .Indien jullie site zouden weten over celopmaak via VBA , graag de link :)
 
@ Rudi , verder bouwend op jouw antwoord ga ik onderstaande code toepassen voor de patroon opmaak .
Code:
Sub Rood()
With ActiveCell
        .Value = "EQY 658" 'of je kan hier je Zetnummerplaat gebruiken
        .BorderAround ColorIndex:=3, Weight:=xlMedium
    With .Font
            .Name = "Arial"
            .FontStyle = "Standaard"
            .Size = 10
            .ColorIndex = 1
    End With

    With .Interior
            .ColorIndex = 3
            .Pattern = xlLightHorizontal
            .PatternColorIndex = 4
    End With
  End With
End Sub
Nogmaals dank voor de kortere begin code :thumb:

Bij deze is mijn vraag opgelost .:D
 
Hallo, aan de helpers die korte VBA code's kunnen in elkaar boxen :thumb:
Ik krijg mijn code om de opmaak te wissen niet kleiner :eek:
Code:
Sub wissen()

    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Selection.Interior.ColorIndex = xlNone
    Selection.ClearContents
End Sub
Mijn kennis reikt nog niet zo ver en na een paar uur trainen ( prutsen ) kom ik er niet aan uit , vandaar mijn oproep :)
voor verduidelijking zie ook test bestandje .
 

Bijlagen

  • Font_color_VBA.xls
    81,5 KB · Weergaven: 41
Gebruik de opmaakstijlen in Excel, dan is deze VBA-exercitie overbodig.
Definieer de eigen opmaakstijlen die je wil gebruiken.

Vereenvoudiging van VBA kan met (maar is gezien het bovenstaande overbodig)
Code:
Sub wissen()
  With Selection
    For j = 5 To 12
        .Borders(j).LineStyle = xlNone
    Next
    .Interior.ColorIndex = xlNone
    .ClearContents
  End With
End Sub
 
Laatst bewerkt:
Gebruik de opmaakstijlen in Excel, dan is deze VBA-exercitie overbodig.
Definieer de eigen opmaakstijlen die je wil gebruiken.

Vereenvoudigigng van VBA kan met (maar is gezien het bovenstaande overbodig)

@ snb , bedankt voor de oplossing :thumb:
Ik wil dit gaan gebruiken in een jaar-overzicht/planning , ben nu bezig met 1 klant ( 5 chauffeurs en 9 ritcode's ) de volgende klant dat ik wil doen is 7 chauffeurs en 14 ritcode's , voor de werkcode's v/d chauffeurs heb ik er ook al +/- 7 nodig ( Ziek , Verlof , Stempelen , ADV , Feestdag , Wet_Afwezig , Omwet_Afwezig ) ik zal vlug een 30tal combinaties nodig hebben . Ik weet nu niet hoeveel tijd ik erin ga steken via definiëren , zoals ik het nu doe ( deed ) kopieerde ik gewoon de vba code veranderde de macronaam en paste de colorindex aan , nadien kopieerde ik het gemaakte resultaat als vb kleur in de cel onder de macroknop , leek voor mij een snelle oplossing .
Ik ga je voorstel "Definieer de eigen opmaakstijlen die je wil gebruiken" zeker uitproberen.
 

Bijlagen

  • kleur.jpg
    kleur.jpg
    41,3 KB · Weergaven: 96
Als je snel 56 opmaakprofielen (stijlen) wil maken:

Code:
Sub tst()
  For j = 1 To 56
    With ActiveWorkbook.Styles.Add("binnen" & j)
      .Interior.ColorIndex = j
    End With
  Next
End Sub
 
Als je snel 56 opmaakprofielen (stijlen) wil maken:

Code:
Sub tst()
  For j = 1 To 56
    With ActiveWorkbook.Styles.Add("binnen" & j)
      .Interior.ColorIndex = j
    End With
  Next
End Sub

Thx , voor de tip , echter doe ik iets verkeerd want ik kan hem niet werkende krijgen :eek:
Of ik zet de code verkeerd , of moet ik nog iets aanpassen ?
 

Bijlagen

  • Font_color_VBA(1).xls
    88,5 KB · Weergaven: 42
Als ik een opmaakprofiel in jouw bestand selekteer staan ze (binnen1 t/m binnen56) keurig in het rijtje van beschikbare opmaakprofielen. En ze werken ook nog
 
Als ik een opmaakprofiel in jouw bestand selekteer staan ze (binnen1 t/m binnen56) keurig in het rijtje van beschikbare opmaakprofielen. En ze werken ook nog

Nu voel ik me heel dom , want ik zie het niet , werkt het bestandje dat ik in post #13 heb gezet ?
 
Zie de bijlage
 

Bijlagen

  • 0_bewijs opmaakprofiel.xls
    85 KB · Weergaven: 54
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan