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

code simpeler maken

Status
Niet open voor verdere reacties.

vrouw

Terugkerende gebruiker
Lid geworden
27 mrt 2010
Berichten
1.434
Hoi,

Is onderstaande code te "versimpelen"?
Ik heb begrepen dat 'select' zo min mogelijk moet gebruiken:shocked:

Code:
Sub Macro1()
Range("A2:C2,A11:J11").Select
    With Selection.Interior
          .Color = 15773696
         End With
    With Selection.Font
        .Color = -16711681
    Selection.Font.Bold = True
     End With
End Sub
 
Zoiets:
Code:
Sub Macro1()
    With Range("A2:C2,A11:J11")
        .Interior.Color = 15773696
        .Font.Color = -16711681
        .Font.Bold = True
    End With
End Sub
 
Laatst bewerkt:
Super, dat is idd sneller.

Ik probeer dat ook met onderstaande maar die geeft foutmelding vanaf regel 4


Code:
With Range("A12:J500")
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=$H12<0,50*$G12"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 49407
        .TintAndShade = 0
    End With
 
Beetje droogzwemmen dit maar goed probeer maar
Code:
With Range("A12:J500")
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$H12<0,50*$G12"
    With .FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 49407
        .TintAndShade = 0
    End With
End With
 
Laatst bewerkt:
Dit werkt beter, omdat de FC die je toevoegt niet de eerste hoeft te zijn:
Code:
    With Range("A12:J500").FormatConditions.Add(Type:=xlExpression, Formula1:="=$H12<0.50*$G12").Interior
        .PatternColorIndex = xlAutomatic
        .Color = 49407
        .TintAndShade = 0
    End With
NB: Of de formule werkt hangt helaas af van de instellingen van je PC en Excel, je moet de formule invoeren zoals die in jouw Excel wordt weergegeven, dus NIET in het Engels en NIET met de US scheidingstekens. Dit is een bug in VBA.
 
Toppertjes zijn jullie:thumb:

misschien mag ik er nog eentje vragen? :eek:

onderstaande wil ook niet lukken:cool:
Code:
Sub Paste_special()

With Range("A2")
.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
        False, NoHTMLFormatting:=True
End With

End Sub
 
het was dit
Code:
  Range("A2").Select
    ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
        False, NoHTMLFormatting:=True

het plakt een deel data wat gekopieerd en alleen de keuze is van
HTML
Unicode Text
Text

Ik gebruik dus HTML omdat ik er daarna prettiger mee kan werken
 
Laatst bewerkt:
Als de oorspronkelijke routine met .select wel werkt zou ik het maar zo laten. Zo erg is het nou ook weer niet.
 
oke, het duurt namelijk wel een seconde of 15 voordat ie dat geplakt heeft, vandaar.
 
Dat ligt niet aan de .Select.
Als je een macro opneemt registreert de recorder het als je een cel of een bereik selecteert. In vba is het bijna nooit nodig om te selecteren alvorens te bewerken en je kunt opgenomen code vaak een stuk sneller maken door de .select eruit te zeven. Er zijn echter uitzonderingen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan