Anzeige
Archiv - Navigation
344to348
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
344to348
344to348
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makroausführung in Userform!

Makroausführung in Userform!
02.12.2003 08:29:32
Andre
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

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroausführung in Userform!
02.12.2003 09:37:36
Nike
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
AW: Makroausführung in Userform!
02.12.2003 09:43:43
Yal
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
Anzeige
Danke, aber...
02.12.2003 10:04:10
Andre
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
Sorry, aber daran lag´s auch nicht! o.T.
02.12.2003 10:41:42
Andre
AW: Dann...
02.12.2003 10:45:57
Nike
Hi,

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

Bye

Nike
Anzeige
Okay, einen Versuch noch:
02.12.2003 11:16:43
Andre
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
AW: Och nöö.
02.12.2003 11:25:07
Nike
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
Anzeige
Ja, schon gut!
02.12.2003 11:30:51
Andre
Hab´s schon gemerkt! Heißt jetzt buchen3! Problem ist aber auch gelöst!

Danke trotzdem.
Gruß Andre
Es funktioniert jetzt!!!!!!
02.12.2003 11:29:20
Andre
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
AW: Public
02.12.2003 11:39:23
Nike
Hi,

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

Bye

Nike
AW: Public
02.12.2003 11:44:54
Yal
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige