Makroausführung in Userform!

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

Betrifft: Makroausführung in Userform!
von: Andre
Geschrieben am: 02.12.2003 08:29:32

Guten Morgen,

ich möchte durch Betätigung eines CommandButton in meiner UserForm ein Makro ablaufen lassen! Das Makro läuft selbstständig ohne Probleme, nur nicht in Verbindung mit dem CommandButton! Wahrscheinlich liegt´s daran, daß das Tabellenblatt nicht gewechselt werden kann, solange die UserForm aufgerufen ist!?

Hat jemand eine Idee wie ich´s trotzdem hinbekomme, daß VBA macht was ich möchte?

Gruß Andre

Hier die Codes:


Private Sub Buchen_Click()
Application.Run Buchen
End Sub


Sub Buchen()
Dim LetzteZeile As Integer, Tabellenname As String

Const Name_Kontrolle As String = "Kontrolle"

Select Case Sheets(Name_Kontrolle).Range("a5")
Case 1
In_1_Kopieren (Name_Kontrolle)
Case 2
In_2_Kopieren (Name_Kontrolle)
Case 3
In_1_Kopieren (Name_Kontrolle)
In_2_Kopieren (Name_Kontrolle)
Case Else
MsgBox "Ungültige Zahl in A5!"
End Select

End Sub



Private Sub In_1_Kopieren(Kontrolle As String)
Dim LetzteZeile As Integer
Const Name_1 As String = "1"
With Sheets(Name_1)
    LetzteZeile = .Cells(Cells.Rows.Count, 3).End(xlUp).Row
    Sheets(Kontrolle).Range("b1:k1").Copy .Cells(LetzteZeile + 1, 3)
End With
End Sub



Private Sub In_2_Kopieren(Kontrolle As String)
Dim LetzteZeile As Integer
Const Name_2 As String = "2"
With Sheets(Name_2)
    LetzteZeile = .Cells(Cells.Rows.Count, 3).End(xlUp).Row
    Sheets(Kontrolle).Range("b1:k1").Copy .Cells(LetzteZeile + 1, 3)
End With
End Sub

Bild


Betrifft: AW: Makroausführung in Userform!
von: Nike
Geschrieben am: 02.12.2003 09:37:36

Hi,
ein Punkt fehlt!
Tja, welcher nur ;-)

LetzteZeile = .Cells(.Cells.Rows.Count, 3).End(xlUp).Row

Cells.Rows.Count ohne Punkt am Anfang stellt keinen Bezug zur Tabelle her.
Gemeiner Schnitzer...

Bye

Nike


Bild


Betrifft: AW: Makroausführung in Userform!
von: Yal
Geschrieben am: 02.12.2003 09:43:43

Hallo Andre,

Du muss mit rechtem Maustaste auf dem CommandButton auf "Code anzeigen" gehen. Das hast Du wahrscheinlich schon. Es fügt sich eine "Private Sub CommandButton_Click" in Modul des UserForm. Wenn Du von dort aus eine externe Funktion oder Sub (externe in Sinne von "in einem anderen Modul"), muss diese als "Public" gekennzeichnet sein.

Den "Application.Run" kannst Du ruhig auslassen.
Ansonsten nehme ich an, dass die Funktionen In_1_Kopieren und In_2_Kopieren sich in gleichem Modul wie Buchen befinden. Daher ist "Private" dort ohne Problem.
Die Tabellenblatt kann beliebig geändert werden, wenn ein UserForm aktiv ist.

Gruß

Yal


Bild


Betrifft: Danke, aber...
von: Andre
Geschrieben am: 02.12.2003 10:04:10

leider konnten mir eure Vorschläge nicht weiterhelfen! Es bleibt einfach dabei, als Makro gestartet funktioniert der Code super, aus der UserForm passiert nichts!

Wahrscheinlicher ist da der Hinweis von Yal, aber wie genau hast du dir das vorgestellt?

Gruß Andre


Bild


Betrifft: AW: Der beliebteste Fehler...
von: Nike
Geschrieben am: 02.12.2003 10:22:12

Hi,
aber nicht das du
dem beliebtesten Fehler seit es Command Buttons gibt
aufgesessen bist ;-)

Bye

Nike


Bild


Betrifft: Sorry, aber daran lag´s auch nicht! o.T.
von: Andre
Geschrieben am: 02.12.2003 10:41:42




Bild


Betrifft: AW: Dann...
von: Nike
Geschrieben am: 02.12.2003 10:45:57

Hi,

dann poste mal die Datei,
damit man sich das mal anschaun kann...

Bye

Nike


Bild


Betrifft: Okay, einen Versuch noch:
von: Andre
Geschrieben am: 02.12.2003 11:16:43

Also ich hab jetzt erstmal das Makro in "Copy" umbenannt, damit der Titel "Buchen" nicht öfter auftaucht!

Jetzt bekomme ich bei der Zeile:

Application.Run Copy

immer die Fehlermeldung:

Fehler beim Kompilieren: Function oder Variable erwartet

Was ist jetzt los? Das kann nur an dem Aufruf liegen!!! Mit "call Copy" funktioniert´s auch nicht!

Gruß Andre


Bild


Betrifft: AW: Och nöö.
von: Nike
Geschrieben am: 02.12.2003 11:25:07

Hi,
du kannst do nicht ein von Excel reserviertes Wort nehmen
Cut, Copy oder Paste usw...
Poste doch das Teil einfach,
dann läßt sich eher was dazu sagen...

Bye

Nike


Bild


Betrifft: Ja, schon gut!
von: Andre
Geschrieben am: 02.12.2003 11:30:51

Hab´s schon gemerkt! Heißt jetzt buchen3! Problem ist aber auch gelöst!

Danke trotzdem.
Gruß Andre


Bild


Betrifft: Es funktioniert jetzt!!!!!!
von: Andre
Geschrieben am: 02.12.2003 11:29:20

Also, ich hab die 3 zusammenhängenden Codes von Modul 2 in Modul 1 geschrieben und schon hat´s geklappt mit Call copy!!!!!

Sehr misteriös!! Aber egal, offensichtlich kommt VBA nicht damit klar, wenn ein Modul übersprungen werden soll!

Dank an alle! Gruß Andre


Bild


Betrifft: AW: Public
von: Nike
Geschrieben am: 02.12.2003 11:39:23

Hi,

das Modulübergreifende funkt schon,
nur müssen die Prozeduren auch als Public definiert sein,
sonst sind sie nur Modulweit bekannt...

Bye

Nike


Bild


Betrifft: AW: Public
von: Yal
Geschrieben am: 02.12.2003 11:44:54

Andre,

lesen ist dabei von Vorteil:

"Ansonsten nehme ich an, dass die Funktionen In_1_Kopieren und In_2_Kopieren sich in gleichem Modul wie Buchen befinden. Daher ist "Private" dort ohne Problem." 09:43:43

Yal


Bild

Beiträge aus den Excel-Beispielen zum Thema " Excel Zertifikat erstellen (excel4 macro)"