Avatar billede boro23 Forsker
25. januar 2019 - 12:29 Der er 2 kommentarer og
4 løsninger

Hjælp til ændring af VBA kode

Hej Eksperter, har brug for noget hjælp til ændring af nedenstående kode. I stedet for at farve celler i hele arket med formler, har jeg kun brug for at farve celler med formler i kolonne G og kolonne P, er der en venlig sjæl der kan hjælpe?

Sub FarvCellFormler()
    For Each c In ActiveSheet.UsedRange.Cells
        If c.HasFormula Then
          With c.Interior
                If .ColorIndex = 22 Then
                      .ColorIndex = xlNone
                Else
                      .ColorIndex = 22
              End If
          End With
        End If
    Next c
End Sub
Avatar billede jens48 Ekspert
25. januar 2019 - 12:41 #1
Du kan gøre det med denne ændring, men det vil nok være en god ide at begrænse området til kun at være en del af kolonne G og P, hvis du skal bruge den ofte, da den ellers er lidt langsom.

Sub FarvCellFormler()
Dim C As Range
Range("G:G,P:P").Select
    For Each C In Selection
        If C.HasFormula Then
          With C.Interior
                If .ColorIndex = 22 Then
                      .ColorIndex = xlNone
                Else
                      .ColorIndex = 22
              End If
          End With
        End If
    Next C
End Sub
Avatar billede Dan Elgaard Ekspert
25. januar 2019 - 12:41 #2
Udskift...

ActiveSheet.UsedRange.Cells

Med...

ActiveSheet.Range("G:G,P:P").Cells
Avatar billede jens48 Ekspert
25. januar 2019 - 12:49 #3
Der er da vist en fejl I den oprindelige makro. Jeg hat også ændret området, så den er hurtigere (kun ned til linie 1000)

Sub FarvCellFormler()
Dim C As Range
Range("G1:G1000,P1:P1000").Select
    For Each C In Selection
        If C.HasFormula Then
          With C.Interior
          .ColorIndex = 22
          End With
        Else
          With C.Interior
          .ColorIndex = xlNone
          End With
        End If
    Next C
End Sub
Avatar billede Jan Hansen Ekspert
25. januar 2019 - 13:36 #4
Denne er hurtig
[div]
Option Explicit

Sub FarvCellFormler()
    Application.ScreenUpdating = False
        Dim Area As Range
        Set Area = Range("G1:G1000,P1:P1000")
        Dim C As Range
        For Each C In Area
            With C
                If .HasFormula Then
                  With .Interior
                  .ColorIndex = 22
                  End With
                Else
                  With .Interior
                  .ColorIndex = xlNone
                  End With
                End If
            End With
        Next
    Application.ScreenUpdating = True
End Sub
[div]

Jan
Avatar billede boro23 Forsker
25. januar 2019 - 13:50 #5
1000 tak for hjælpen og god weekend til Jer alle. :-)
Avatar billede Dan Elgaard Ekspert
25. januar 2019 - 16:04 #6
Jens har naturligvis ret i, at man kan afgrænse kolonne området - det var bare ikke det, som spørgeren spurgte efter :-)

Men, godt der blev fundet en løsning :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester