Hallo liebe Excel-Freunde!
Mir schwebt eine unübliche Lösung vor für eine Excel-Tabelle,
die eine Sammlung von Makro-Befehlen und deren Codezeilen enthalten soll.
Nun stellt sich mir die folgende Frage:
Ist es grundsätzlich möglich ein Makro auszuführen, deren Code-Zeilen in einer Zelle im Excel-Tabellenblatt steht?
z.B.:
In der Zelle B3 steht der Name, wie die Makro-Subroutine heißen soll
In der Zelle C3 steht die Codezeile für das Makro.
somit, wenn folgendes in der Tabelle steht...
B3 = ZelleAuswaehlenZ1S1
C3 = Worksheets("Tabelle1").Cells(3, 2).Select
...sollte das Makro folgendermaßen ausgeführt werden, sobald auf die Zelle 'C3' doppelgeklickt wurde:
Sub ZelleAuswaehlenZ1S1()
Worksheets("Tabelle1").Cells(3, 2).Select
End Sub
Hat jemand eine Idee dazu?
Vielen Dank schon Mal im Voraus und liebe aus Südtirol!
Gustav
Huhu,
ungestestet sollte das so an sich gehen.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C3")) Is Nothing Then
call Worksheets("Tabelle1").Range("B3").value
End Sub
Hallo Sebi,
vielen Dank für die prompte Antwort.
Ich denke, meine Erläuterung war nicht gut verständlich, sorry dafür.
Es sollte wie folgt sein:
Zeile Spalte "B" Spalte "C"
1 Name Makro-Subroutine Code-Zeile/n
2 ZelleAuswaehlenA1 Worksheets("Tabelle1").Range("B3").Select
3 ZelleAuswaehlenZ1S1 Worksheets("Tabelle1").Cells(3, 2).Select
4 ZelleAuswaehlenName Worksheets("Tabelle1").Range("Name").Select
... usw.
Ein Doppelklick auf Zelle "C2" erstellt quasi folgendes Makro:
Sub ZelleAuswaehlenA1()
Worksheets("Tabelle1").Range("B3").Select
End Sub
Ein Doppelklick auf Zelle "C3" erstellt quasi folgendes Makro:
Sub ZelleAuswaehlenZ1S1()
Worksheets("Tabelle1").Cells(3, 2).Select
End Sub
Ein Doppelklick hingegen auf Zelle "C4" erstellt quasi folgendes Makro:
Sub ZelleAuswaehlenName()
Worksheets("Tabelle1").Range("Name").Select
End Sub
Eine Makro-Sub_Routine würde sich anhand der Angaben in den Zellen "B" und "C" sozusagen selbst erstellen.
Geht das?
Lg
Gustav
Hallo,
also du willste Makros also direkt zur Laufzeit anpassen können.
Ich habe dir mal etwas angehängt. Ich denke das sollte dein Problem machbar lösen.
Lieben gruß
Zitat von: Pergus am April 10, 2020, 14:56:48
Eine Makro-Sub_Routine würde sich anhand der Angaben in den Zellen "B" und "C" sozusagen selbst erstellen.
Geht das?
Ja, das geht grundsätzlich schon.
Siehe: Visual Basic Add-in Model (https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/visual-basic-add-in-model-reference).
Aber ich bin nicht überzeugt, dass das wirklich der richtige Ansatz für dein Problem ist (was immer das sein mag).
Vielleicht magst uns mal die Notwendigkeit erklären.
Ich denke dein Ansatz kann schicker gelöt werden.
Lieben Gruß
Danke Sebi und PhilS,
oje, ich glaube dass meine Idee wohl nicht gerade die Beste war :o
Da ich mich nicht so oft mit VBA befasse und schnell Mal was vergesse, wollte ich mir ein "Merkzettel" basteln,
wo ich Befehle und Codezeilen in eine Tabelle eingeben und filtern kann um schneller die Codeschnipsel zu finden.
So muß ich nicht viel Zeit im Internet mit Suchen verschwenden.
Bin gerne Offen für Vorschläge, wie man so etwas realisieren kann :)
Danke für Eure Hilfe!
Gustav
Dann nimm dir doch eine Exceltabelle und trag die dort ein.
Oder aber leg dir die in Module und kommentiere die sinnvoll.
Dann könntest darin suchen.
...wird wohl das Beste sein.
Jedenfalls nochmals vielen Dank Sebi