Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1828to1832
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
Inhaltsverzeichnis

routine definieren

routine definieren
29.04.2021 11:52:33
Thomas
Hallo,
Ich versuche gerade aus Spaß an der Freude in VBA eine Reihe an Userformen zu schalten.
Einer der Schritte taucht dabei immer wieder auf (in Teilweise abgewandelter Form) und deswegen habe ich mich gefragt, ob man das als Variable definieren kann. Habe dazu leider nichts gefunden, außer dass es eigentlich nicht geht. Wollte hier noch einmal nachfragen, ob das stimmt.
Bisher sieht das etwa so aus

Private Sub Click()
If Range("A1") = 1 Then
Range("B2") = 2
If Range("C3") > 3 Then
Userform1.show
MsgBox "Test klappt"
Userform2.hide
Else
MsgBox "Test klappt nicht"
End If
End If
End Sub
Meine Frage ist, ob ich

Userform1.show
MsgBox "Test klappt"
Userform2.hide
als Variable definieren kann, oder ob VBA das nicht hergibt. Das würde mir viel Zeit sparen und die Prozeduren wesentlich übersichtlicher machen. Meine bisherigen Versuche sind leider kläglich gescheitert. Diese Routine wiederhole ich bisher für jeden Wert den Range("A1") annehmen kann ( 1 bis 5 ).
Falls es wirklich nicht geht, wollte ich fragen, ob es vielleicht eine andere Möglichkeit gibt. Das Ganze mache ich wirklich nur zum Spaß um VBA zu lernen. Von daher ist es nicht schlimm, wenn es nicht geht.
MfG
Thomas
PS: falls ich einen Fehler in der "Form" des Beitrags gemacht habe, bitte sagen, damit ich das berichtigen kann; ist mein erster Beitrag mit VBA Code.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: routine definieren
29.04.2021 12:01:54
Daniel
Hi
Code als Variable erstellen und dann die Variable ausführen lassen, funktioniert so direkt nicht.
für das was du erreichen willst, bietet sich an, diesen Teilcode in ein weiters Makro auszulagern und dann dieses Makro vom anderen Makro aus aufzurufen:

Private Sub Click()
Call Userform1_Zeigen()
End Sub

Private Sub Userform1_Zeigen()
Userform1.show
MsgBox "Test klappt"
Userform2.hide
End Sub
sollte die ausgelagere Unterprozedur in einem anderen Modul liegen (z.B. in einem allgemeinen Modul), dann müsstest du "Public" statt "Private" verwenden.
Gruß Daniel
Anzeige
AW: routine definieren
29.04.2021 12:05:34
MCO
Hallo Thomas!
Ich könnte es mir so vorstellen:

Private Sub Click()
Dim Bedingung As Boolean
If Range("A1") = 1 Then
Range("B2") = 2
Bedingung = Range("C3") > 3
auslagerung_uf (Bedingung)
End If
End Sub

Sub auslagerung_uf(klappt As Boolean)
If klappt Then
Userform1.Show
MsgBox "Test klappt"
Userform2.Hide
Else
MsgBox "Test klappt nicht"
End If
End Sub
Gruß, MCO

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige