Microsoft Excel

Herbers Excel/VBA-Archiv

Code in Sub's nur einmal schreiben

Betrifft: Code in Sub's nur einmal schreiben von: Richi
Geschrieben am: 22.09.2020 13:07:49

Hallo Zusammen

Benötige einen Tip. Wie kann ich einen VBA Code nur einmal schreieben und diesen in mehreren Sub's aufrufen?


With wsZ.Cells(zeileZ, spalteZ)

Select Case wsQ.Cells(zeileQ, "G")


....zwischen diesen Codes soll der unten aufgeführte Code eingefügt werden (aber in mehreren andern Sub's....



End Select

End With


Code:

Select Case wsQ.Cells(zeileQ, "G")

Case "9000" ' Feiertag

.Value = "Y"

.Interior.ColorIndex = 29

.Font.ColorIndex = 29

Case "9001" ' Brückentag

.Value = "Z"

.Interior.ColorIndex = 30

.Font.ColorIndex = 30

Case Else

.Value = "'o" ' Restliche andere Absenzen

.Interior.ColorIndex = 46

.Font.ColorIndex = 46

Betrifft: AW: Code in Sub's nur einmal schreiben
von: Rudi Maintaire
Geschrieben am: 22.09.2020 13:17:28

Hallo,
lagere ihn aus.
Sub einfaerben(wksQ As Worksheet, ZeileQ As Long)
  Select Case wsQ.Cells(ZeileQ, "G")
    Case "9000" ' Feiertag
      .Value = "Y"
      .Interior.ColorIndex = 29
      .Font.ColorIndex = 29
    Case "9001" ' Brückentag
      .Value = "Z"
      .Interior.ColorIndex = 30
      .Font.ColorIndex = 30
    Case Else
      .Value = "'o" ' Restliche andere Absenzen
      .Interior.ColorIndex = 46
      .Font.ColorIndex = 46
  End Select
End Sub

An entsprechender Stelle mit
Call einfaerben(wksQ,ZeileQ)

aufrufen.

Gruß
Rudi

Betrifft: AW: Code in Sub's nur einmal schreiben
von: Claus Ohlendorf
Geschrieben am: 22.09.2020 14:08:31

Genau: Mach aus Deinem Code, den Du merhfach aufrufen willst, ein eigenes Makro, dass Du dann mit Application.run("Mein_Makro") aufrufst...
Aber aufpassen: Wenn Du variablen nicht nochmal defineiren willst, müssen die als PUBLIC definiert sein, nicht nur als DIM...

Gruss
Claus

Betrifft: AW: Code in Sub's nur einmal schreiben
von: Herbert_Grom
Geschrieben am: 22.09.2020 15:12:26

Hallo Claus,

du schreibst "Aber aufpassen: Wenn Du variablen nicht nochmal definieren willst, müssen die als PUBLIC definiert sein, nicht nur als DIM..." ... außer wenn du alle Makros in einem Modul hast, dann kannst du auch mit "Dim" arbeiten. Dieses muss aber dann außerhalb der Makros stehen!

Servus

Betrifft: Quatsch!!!
von: Rudi Maintaire
Geschrieben am: 22.09.2020 15:32:31

1. Application.Run ist nur erforderlich, wenn das Makro in einer anderen Mappe steht als das aufrufende.
2. In meinem Beispiel werden die Variablen als Parameter an das aufgerufene Makro weitergegeben. Da muss nichts neu deklariert werden.

Gruß
Rudi

Betrifft: AW: Code in Sub's nur einmal schreiben
von: Richi
Geschrieben am: 22.09.2020 17:10:03

Herzlichen Dank
Funktioniert einwandfrei.
Gruss
Richi

Beiträge aus dem Excel-Forum zum Thema "Code in Sub's nur einmal schreiben"