PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAFörsöker loopa så en kod med format körs på alla blad iFörsöker loopa så en kod med format körs på alla blad i
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2023-12-19 08:55
 

 Hej,

 

Försökt få denna kod att köras på alla blad men den funkar inte, kan ni se problemet?
 

Sub MakroGulTill()

' GUL

    Dim ws As Worksheet

    

    ' Loop through all sheets in the workbook

    For Each ws In ThisWorkbook.Sheets

        

    ws.Range("I6:I106").FormatConditions.Add Type:=xlExpression, Formula1:="=$H6=3"

    ws.Range("I6:I106").FormatConditions(ws.Range("I6:I106").FormatConditions.Count).SetFirstPriority

    With ws.Range("I6:I106").FormatConditions(1).Font

        .Color = -16711681

        .TintAndShade = 0

    End With

    Next ws

End Sub

Nytt inlägg
 2023-12-19 10:46
 
 Ändrad av Gondi  på 2023-12-19 12:07:29

Hej och välkommen till forumet Sven!

Problemet är att du försöker skapa en regel för villkorsstyrd formatering med en relativ cellreferens.

ws.Range("I6:I106").FormatConditions.Add Type:=xlExpression, Formula1:="=$H6=3" <-- rad 6 föregås inte av $-tecknet.

Vad som händer då är att regeln för villkorsstyrd formatering skapas relativt till vilken cell du har markerat på respektive arbetsblad. För att din kod ska fungera måste du därför ha valfri cell på rad 6 markerad på respektive arbetsblad innan du kör makrot.

Lägg till nedan gulmarkerad rad så kommer koden att fungera. 

Sub MakroGulTill() 

     

    ' GUL 

    Dim ws As Worksheet 

     

    ' Loop through all sheets in the workbook 

    For Each ws In ThisWorkbook.Sheets 

        ws.Range("A6").Select

        ws.Range("I6:I106").FormatConditions.Add Type:=xlExpression, Formula1:="=$H6=3" 

        ws.Range("I6:I106").FormatConditions(ws.Range("I6:I106").FormatConditions.Count).SetFirstPriority 

             

            With ws.Range("I6:I106").FormatConditions(1).Font 

            .Color = -16711681 

            .TintAndShade = 0 

            End With 

    Next ws 

End Sub

Nytt inlägg
 2023-12-19 17:47
 

 Tackar!

Testade lägga till raden som du föreslagit, men får det här felmeddelandet då.

Nytt inlägg
 2023-12-19 23:28
 
 Ändrad av Gondi  på 2023-12-20 00:35:16

Hej igen Sven,

Jag var lite för "snabb på hanen". Glömde bort att aktivera arbetsbladet innan cell A6... :-)

Uppdaterad kod nedan.

Sub MakroGulTill() 

     

    ' GUL 

    Dim ws As Worksheet 

     

    ' Loop through all sheets in the workbook 

    For Each ws In ThisWorkbook.Sheets 

        ws.Select 

        ws.Range("A6").Select 

        ws.Range("I6:I106").FormatConditions.Add Type:=xlExpression, Formula1:="=$H6=3" 

        ws.Range("I6:I106").FormatConditions(ws.Range("I6:I106").FormatConditions.Count).SetFirstPriority 

             

            With ws.Range("I6:I106").FormatConditions(1).Font 

            .Color = -16711681 

            .TintAndShade = 0 

            End With 

    Next ws 

End Sub

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAFörsöker loopa så en kod med format körs på alla blad iFörsöker loopa så en kod med format körs på alla blad i

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter