Variablen übergabe in VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Variablen übergabe in VBA
von: Motrix
Geschrieben am: 07.11.2003 09:52:32

Hallo, ich hab da eine frage
wie kann ich in VBA (Excel Makro) eine Varaible aus einen anderen makro übergeben lassen und diese dann wie unten aufgeführt eintragen lassen?

Gruß Mo

Und danke für die hilfe im voraus ^^

Worksheets("123").Activate <== Variable für "123" einsetzen

Bild


Betrifft: AW: Variablen übergabe in VBA
von: Ron Andres
Geschrieben am: 07.11.2003 09:54:47

Moin,


Sub Test(Variablen)
     Worksheets(Variable).Activate 
End Sub


Aufrufen tust Du dann

test Variable


Bild


Betrifft: AW: Variablen übergabe in VBA
von: Motrix
Geschrieben am: 07.11.2003 09:58:19



also das ist mein derzeitiges makro:


Sub Makro1()
'
Worksheets("123").Activate
Range("Z15").Activate
 ActiveCell.FormulaR1C1 = "=COUNTIF(R[-5]C[-25]:R[9985]C[-25],""Fehler/Null"")"
 fehler = Range("Z15").Value
fehler = fehler - 1
While (i < fehler)
i = i + 1
Range("A10", "A10000").Find("Fehler/Null").Activate
    ActiveCell.Rows("1:1").EntireRow.Select
    Selection.Delete Shift:=xlUp
    ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select
    Selection.Delete Shift:=xlUp
Wend
Range("Z15").Clear
Range("A10", "A10000").Find("Gesamt").Activate
ActiveCell.Offset(-2, 0).Range("A1").Activate
lir = ActiveCell.Offset(0, 6).Range("A1").Address
Range("A10", "A10000").Find("Auftrags- nummer").Activate
ActiveCell.Offset(1, 0).Range("A1").Activate
lic = ActiveCell.Offset(0, 2).Range("A1").Address
Range(lic, lir).Copy
Worksheets("Tabelle3").Activate
Range("a1").Activate
ActiveSheet.Paste
Worksheets("Tabelle2").Activate
    
    ActiveWindow.ScrollColumn = 1
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF(Tabelle3!R1C3:R10001C3,RC[-1])"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF(Tabelle3!R1C4:R10001C4,RC[-2])"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF(Tabelle3!R1C5:R10001C5,RC[-3])"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF(Tabelle3!R1C1:R10001C1,RC[-4])"
    Range("B2").Select
    Selection.AutoFill Destination:=Range("B2:B42"), Type:=xlFillDefault
    Range("B2:B42").Select
    ActiveWindow.ScrollRow = 1
    Range("C2").Select
    Selection.AutoFill Destination:=Range("C2:C42"), Type:=xlFillDefault
    Range("C2:C42").Select
    ActiveWindow.ScrollRow = 1
    Range("D2").Select
    Selection.AutoFill Destination:=Range("D2:D42"), Type:=xlFillDefault
    Range("D2:D42").Select
    ActiveWindow.ScrollRow = 1
    Range("E2").Select
    Selection.AutoFill Destination:=Range("E2:E42"), Type:=xlFillDefault
    Range("E2:E42").Select
          
        Range("F7").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-5]C[-1]:RC[-1])"
        Range("F9").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-1]C[-1]:RC[-1])"
        Range("F11").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-1]C[-1]:RC[-1])"
        Range("F16").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-4]C[-1]:RC[-1])"
        Range("F23").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-6]C[-1]:RC[-1])"
        Range("F42").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-18]C[-1]:RC[-1])"
        
        
            
End Sub



dazu kommt hinzu das ich ein 2te smakro habe (was zu erst abläuft:


Sub Tabellenblätter_erstellen()
Dim DName As String, wsh As Worksheet
Dim BName As String, Dat As Long
DName = ThisWorkbook.Name
m = CInt(GetSetting(DName, "Datum", "Monat", 1))
j = CInt(GetSetting(DName, "Datum", "Jahr", 2003))
m = m + 1
If m = 13 Then
  m = 1
  j = j + 1
End If
Dat = DateSerial(j, m, 1)
BName = Format(Dat, "mmmm yyyy")
gesamt_name = BName & " Gesamt"
Set wsh = Worksheets.Add(after:=Sheets(Sheets.Count))
wsh.Name = BName & " Gesamt"
auswertung_name = BName & " Auswertung"
Set wsh = Worksheets.Add(after:=Sheets(Sheets.Count))
wsh.Name = BName & " Auswertung"
SaveSetting DName, "Datum", "Monat", m
SaveSetting DName, "Datum", "Jahr", j
End Sub



jetzt möchte ich eben das in makro2 wo der "auswertung_name" und "gesamt_name" ion makro1 ersetzt wird. ( so das wenn auswertung_name = 1 ist dann auch in makro1 "tabelle1" dann 1 entspricht.) leider bin ich nicht so wirklich gut und würd emich freuen wenn du das genauer erklähren könntest

Gruß Mo


Bild


Betrifft: AW: Variablen übergabe in VBA
von: Ron Andres
Geschrieben am: 07.11.2003 10:05:38

Also,

Du rufst eine andere Prozedur (Sub) einfach über den Namen auf. Wenn Du eine Prozedur erstellst, dann kannst Du Ihr auch gleich sagen, das Sie Variablen übergeben bekommt.

Ungefähr so:

Sub Makro1(Variable1, Variable2)
Wenn Du jetzt das Makro1 aus einem anderen Makro aufrufst, dann tust Du das mit dem Namen und tipperst dahinter die Variablen. Im Makro1 werden dann die Variablen mit dem entspechenden Inhalt verwendet
Bsp:

Sub summe(zahl1, zahl2)
     msgbox(zahl1+zahl2)
End Sub



Sub test()
    z1 = 5
    z2 = 10
    summe z1,z2 'Hier wird Summe aufgerufen und die beiden Zahlen übergeben.
End Sub



Bild


Betrifft: AW: Variablen übergabe in VBA
von: Motrix
Geschrieben am: 07.11.2003 10:14:06

Hallo,
es funktioniert sicherlich soweit, aber das problem ist das durch diese übergabe das andere makro gleich anläuft, dies soll aber manuel aufrufbar sein. wie mach ich das? O.o


Bild


Betrifft: AW: Variablen übergabe in VBA
von: Motrix
Geschrieben am: 07.11.2003 10:36:24

ActiveCell.FormulaR1C1 = "=COUNTIF(Tabelle3!R1C4:R10001C4,RC[-2])"

Frage wie kann ich hier für "Tabelle3" denn wert aus variable "tmp_name" übergeben?

Gruß Mo


Bild

Beiträge aus den Excel-Beispielen zum Thema " Variablen übergabe in VBA"