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

Opmaak Herstellen

Status
Niet open voor verdere reacties.

Jack Nouws

Terugkerende gebruiker
Lid geworden
16 apr 2008
Berichten
1.396
Hallo

Ik heb nu een macro opgenomen om mijn voorwaardelijke opmaak te herstellen. Maar als ik hem wil uitvoeren dan komt er een foutmelding
Code:
Sub opmaak_herstellen()
With Sheets("dataplant").Range("A3:J150").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=REST(SUBTOTAAL(3;$A$3:$A3);2)=1"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Borders(xlLeft)
[COLOR="Red"]        .LineStyle = xlContinuous[/COLOR]
        .ThemeColor = 1
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlRight)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlTop)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlBottom)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.599963377788629
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=REST(SUBTOTAAL(3;$A$3:$A3);2)=0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Borders(xlLeft)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlRight)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlTop)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlBottom)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.799981688894314
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End With
End Sub
Wat kan ik hier aan doen?

Met vr gr
Jack
 
Begin eerst eens de code te fatsoeneren, met behulp van alle suggesties die je tot nog tot hebt gekregen en met gebruik van de hulpfunktie van de VBEditor. Je code kan tot ca. 10 regels gereduceerd worden.
 
Hallo

ik heb de code op mijn manier zo kort mogelijk gehouden.
graag kijk ik uit naar een nog kortere code

Met vr gr
Jack
Code:
Sub maken()

    With Sheets("blad1").Range("A3:J150").Select
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=REST(SUBTOTAAL(3;$A$3:$A3);2)=0"
        Selection.FormatConditions(1).Interior.ThemeColor = xlThemeColorAccent3
        Selection.FormatConditions(1).Interior.TintAndShade = 0.599963377788629

        Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=REST(SUBTOTAAL(3;$A$3:$A3);2)=1"
        Selection.FormatConditions(2).Interior.ThemeColor = xlThemeColorAccent3
        Selection.FormatConditions(2).Interior.TintAndShade = 0.799981688894314
    
        With Selection.Borders
            .LineStyle = xlContinuous
            .ColorIndex = 2
        End With
    End With
End Sub
 
Jack een vraagje werkt de formule ? of kan het dat het deze moet zijn
Code:
=MOD(SUBTOTAL(3;$A$3:$A3);2)=1
 
Jack een vraagje werkt de formule ? of kan het dat het deze moet zijn
Code:
=MOD(SUBTOTAL(3;$A$3:$A3);2)=1

Haa, trucker10

Bij mij werkt de Nederlandse versie.
Ik heb die formule pas nog van Roncancio gehad. (werkt perfect)
Maar wat vind je van de macro die ik effe flink heb ingekort.:)
Weet jij nog een kortere :rolleyes:

met vr gr
Jack
 
Haa, trucker10

Bij mij werkt de Nederlandse versie.
Ik heb die formule pas nog van Roncancio gehad. (werkt perfect)
Maar wat vind je van de macro die ik effe flink heb ingekort.:)
Weet jij nog een kortere :rolleyes:

met vr gr
Jack

De formules die ik in mijn macro's zet als back-up opmaak voor als het misgaat staan allemaal in het Engels . Ik had deze namiddag een posting gedaan tijdens ( pitstop ) rit met een " .BorderAround "maar zag naderhand dat dit niet goed was . Ik ben ooit in mijn cursus boek zo een oefening tegengekomen maar niet bij stil gestaan . Ik kan moeilijk de " Selection.FormatConditions 1 en 2 " plaatsen . Ik pas :)
heb nu ook nog eens beter gekeken en zie dat je fomule tussen " ............." staat
In mijn curssus boek staat het zo ( enkel voor de kleur )
Code:
Sub celkleur()
Dim intI As Integer, intj As Integer
    For intI = 3 To 150 Step 1 [COLOR="Red"]' maak je hier een stap 2 van dan is het om de rij [/COLOR]
        For intj = 1 To 10 Step 1
            ActiveSheet.Cells(intI, intj).Interior.Color = vbGreen
        Next
    Next
End Sub
 
Laatst bewerkt:
En nu nog zonder select en selection.
 
En nu nog zonder select en selection.

Beste snb,

Daar ben ik mee bezig geweest, maar dan krijg ik een foute formule in de voorwaardelijke opmaak. :confused:
Zoiets als dit: =REST(SUBTOTAAL(3;$A$3:$A1048567);2)=0 en dat wil ik juist niet hebben want dan klopt mijn opmaak niet meer.
Andere suggesties heb ik tot nog toe niet kunnen vinden.

Met vr gr
Jack
 
Laatst bewerkt:
Dit gaat bij jou dus niet goed.

Code:
Sub maken()

    With Sheets("blad1").Range("A3:J150")
        .FormatConditions.Add Type:=xlExpression, Formula1:="=REST(SUBTOTAAL(3;$A$3:$A3);2)=0"
        .FormatConditions(1).Interior.ThemeColor = xlThemeColorAccent3
        .FormatConditions(1).Interior.TintAndShade = 0.599963377788629

        .FormatConditions.Add Type:=xlExpression, Formula1:="=REST(SUBTOTAAL(3;$A$3:$A3);2)=1"
        .FormatConditions(2).Interior.ThemeColor = xlThemeColorAccent3
        .FormatConditions(2).Interior.TintAndShade = 0.799981688894314
    
        .Borders.LineStyle = xlContinuous
        .Borders.ColorIndex = 2
    End With
End Sub

Met vriendelijke groet,


Roncancio
 
PHP:
In mijn curssus boek staat het zo

Effe off-topic @ trucker10
Ik denk dat je een goed cursusboek hebt, wat voor boek is dat en kan ik die ook ergens kopen? Ik heb zelf ook wel een boek ("Leer jezelf professioneel VISUAL BASIC FOR APPLICATIONS") van Wim de Groot, en ik heb zelf het idee dat ik daar niet echt verder mee kom. Zodoende sta ik altijd open voor alternatieven.

Met vr gr
Jack
 
En nu nog zonder select en selection.

@Jack ik denk dat je in deze richting moet gaan , heb nu niet de juiste kleuren qua celopmaak of borderline
Code:
Sub tstkl()
    
     With [Blad1!A3:J150]
        .BorderAround , Weight:=xlMedium
        .Borders(xlInsideVertical).Color = RGB(255, 0, 0)
        .Borders(xlInsideHorizontal).Color = RGB(255, 0, 0)
        .Interior.ColorIndex = 12
        
    End With
  
End Sub
 
Dit gaat bij jou dus niet goed.

Met vriendelijke groet,


Roncancio

Hallo

Ik gebruik precies dezelfde code en de formule =REST(SUBTOTAAL(3;$A$3:$A3);2)=0 veranderd naar =REST(SUBTOTAAL(3;$A$3:$A1048567);2)=0 en hierdoor klopt mijn opmaak niet meer.

Met vr gr
Jack
 
PHP:
In mijn curssus boek staat het zo

Effe off-topic @ trucker10
Ik denk dat je een goed cursusboek hebt, wat voor boek is dat en kan ik die ook ergens kopen? Ik heb zelf ook wel een boek ("Leer jezelf professioneel VISUAL BASIC FOR APPLICATIONS") van Wim de Groot, en ik heb zelf het idee dat ik daar niet echt verder mee kom. Zodoende sta ik altijd open voor alternatieven.

Met vr gr
Jack

In het boek " Macro's en VBA in excel 2007 de basis van Gerrit Bruijnes ( in bijlage mijn verstand in boekvorm :) )
 

Bijlagen

  • excel boeken 001.jpg
    excel boeken 001.jpg
    96 KB · Weergaven: 46
Hallo

Ik heb effe een bijlage toegevoegd dan zitten we allemaal op 1 lijn.

Met vr gr
Jack
 

Bijlagen

Hallo

Ik heb effe een bijlage toegevoegd dan zitten we allemaal op 1 lijn.

Met vr gr
Jack

Er staat al een foutmelding in de voorwaardelijke opmaak zonder dat er op de knop wordt gedrukt.
Hoe moet de voorwaardelijke opmaak eruit zien?
Waarom dient de voorwaardelijke opmaak via een macro aangepast te worden?

Met vriendelijke groet,


Roncancio
 
Er staat al een foutmelding in de voorwaardelijke opmaak zonder dat er op de knop wordt gedrukt.
Hoe moet de voorwaardelijke opmaak eruit zien?
Waarom dient de voorwaardelijke opmaak via een macro aangepast te worden?

Met vriendelijke groet,


Roncancio

Hallo

Die foutmelding in de voorwaardelijke opmaak komt door de code. Ik heb het zo gemaakt dat eerst de voorwaardelijke opmaak wordt gewist en daarna opnieuw wordt geplaatst maar elke keer wordt de formule in de code verkeerd gezet.

Ik heb een bestand dat na een sortering heel mijn voorwaardelijke opmaak door elkaar husselt daarvoor wilde ik deze code er aan toevoegen.
(Ik doe dit eerst alijd uitproberen mbv een apart document en een knop alvorens ik hem in de code plaats)

Met vr gr
Jack
 
Laatst bewerkt:
Ik heb het zo gemaakt dat eerst de voorwaardelijke opmaak wordt gewist en daarna opnieuw wordt geplaatst

Vanwaar deze werkwijze?

De voorwaardelijke opmaak zou flexibel moeten zijn, zodat je deze niet via VBA steeds aan dient te passen.

Met vriendelijke groet,


Roncancio
 
Vanwaar deze werkwijze?

De voorwaardelijke opmaak zou flexibel moeten zijn, zodat je deze niet via VBA steeds aan dient te passen.

Met vriendelijke groet,


Roncancio

Hallo

Dat dacht ik ook altijd, maar voor mij gaat dat voorals nog niet op.

Met de sortering in deze code gaat het altijd mis.
Is die code voor de sortering misschien niet goed?
Code:
Private Sub wijzigen()
    With ListBox1
        .ListIndex = -1
        With Sheets("dataplant")
            .Unprotect
            .[C3:C100].Find(What:=CboCode.Value, LookIn:=xlValues).Offset(, -2).Resize(, 9) = Split(Format(TxtDatum.Text, "dd/mm/yyyy") & "|" & TxtNr.Text & "|||" & TxtVN.Text & "|" & TxtTV.Text & "|" & TxtAN.Text & "|" & TxtMaat.Text & "|" & TxtPot.Text, "|")
            .Range("B3:D" & Range("E" & Rows.Count).End(xlUp).Row).FillDown
           [COLOR="Red"] .Range("sorteerplanten").Sort key1:=[E3], order1:=xlAscending, key2:=[F3], order2:=xlAscending, key3:=[G3], order3:=xlAscending[/COLOR]            .Protect
            .Parent.Save    '   bewaar het gewijzigde bestand
        End With
    End With
    opmaak_herstellen
    Unload Me
End Sub

Met vr gr
Jack
 
Laatst bewerkt:
Hallo

Dat dacht ik ook altijd, maar voor mij gaat dat voorals nog niet op.

Met de sortering in deze code gaat het altijd mis.
Is die code voor de sortering misschien niet goed?
Code:
Private Sub wijzigen()
    With ListBox1
        .ListIndex = -1
        With Sheets("dataplant")
            .Unprotect
            .[C3:C100].Find(What:=CboCode.Value, LookIn:=xlValues).Offset(, -2).Resize(, 9) = Split(Format(TxtDatum.Text, "dd/mm/yyyy") & "|" & TxtNr.Text & "|||" & TxtVN.Text & "|" & TxtTV.Text & "|" & TxtAN.Text & "|" & TxtMaat.Text & "|" & TxtPot.Text, "|")
            .Range("B3:D" & Range("E" & Rows.Count).End(xlUp).Row).FillDown
           [COLOR="Red"] .Range("sorteerplanten").Sort key1:[COLOR="Black"]=[/COLOR][E3], order1:=xlAscending, key2:[COLOR="black"]=[/COLOR][F3], order2:=xlAscending, key3:[COLOR="black"]=[/COLOR][G3], order3:=xlAscending[/COLOR]            .Protect
            .Parent.Save    '   bewaar het gewijzigde bestand
        End With
    End With
    opmaak_herstellen
    Unload Me
End Sub

Met vr gr
Jack

Jack , het is maar een veronderstelling maar is dat = teken wel nodig ?
Code:
.Range("sorteerplanten").Sort key1:[E3], order1:=xlAscending, key2:[F3], order2:=xlAscending, key3:[G3], order3:=xlAscending
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan