281 Aufrufe
Gefragt in Tabellenkalkulation von

Hallo, 

nachdem mein Makro mittlerweile läuft, würde ich gerne alle zusammen laufen lassen, also quasi 1x RUN drücken & dann werden alle ausgeführt. 

Ich kann mir vorstellen dass das über eine Art "Head Sub" laufen könnte, allerdings habe ich da keine Ahnung von. Hier mal mein Geschriebenes:

Sub Colour_Headline1()

ActiveSheet.Range("A1:B1").Interior.Color = RGB(130, 55, 119)

End Sub

_______

Sub ColourHeadlines_2()

Dim rngZelle As Range

For Each rngZelle In ActiveSheet.UsedRange

If rngZelle.Interior.Color = RGB(51, 51, 51) Then rngZelle.Interior.Color = RGB(130, 55, 119)

Next rngZelle

End Sub

_____________

Sub ColourHeadline3()

Dim rngZelle As Range

For Each rngZelle In ActiveSheet.UsedRange

If rngZelle.Interior.Color = RGB(128, 128, 128) Then rngZelle.Interior.Color = RGB(207, 143, 198)

Next rngZelle

End Sub

__________

Sub ColourHeadline4()

Dim rngZelle As Range

For Each rngZelle In ActiveSheet.UsedRange

If rngZelle.Interior.Color = RGB(192, 192, 192) Then rngZelle.Interior.Color = RGB(247, 236, 244)

Next rngZelle

End Sub

Könnte ich hier theoretisch einfach eine Art "Head Sub" an den Anfang und eine Art "End Head Sub" ans Ende stellen? 

Vielen Dank schon Mal für eure Hilfe!

2 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo,

am einfachsten wäre es natürlich, wenn du alle Makros einfach zusammenfügst:

 Sub colour()
   
   Dim rngZelle As Range
   
   With ActiveSheet
       .Range("A1:B1").Interior.Color = RGB(130, 55, 119)
   
       For Each rngZelle In .UsedRange
              If rngZelle.Interior.Color = RGB(51, 51, 51) Then rngZelle.Interior.Color = RGB(130, 55, 119)
              If rngZelle.Interior.Color = RGB(128, 128, 128) Then rngZelle.Interior.Color = RGB(207, 143, 198)
              If rngZelle.Interior.Color = RGB(192, 192, 192) Then rngZelle.Interior.Color = RGB(247, 236, 244)
        Next rngZelle
   
   End With
     
   End Sub

Gruß

M.O.

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

in deinem Fall ist es auf jeden Fall sinnvoller, alles in einem gemeinsamen Makro ablaufen zu lassen, da ja jedes Makro prinzipiell dasselbe macht und die Schleife nicht mehrmals durchlaufen werden muss.

Generell jedoch ist es so, dass man einfach ein anderes Makro direkt starten kann - also so:

Sub Colour_Headline1()
    ActiveSheet.Range("A1:B1").Interior.Color = RGB(130, 55, 119)
    ColourHeadlines_2
    ColourHeadline3
    ColourHeadline4
End Sub

Bis später, Karin

...