Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1684to1688
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

Private Sub Modul läuft nicht

Private Sub Modul läuft nicht
05.04.2019 10:17:37
Memo
Hallo zusammen,
für die VBA Experten sicherlich ein Kinderspiel jedoch bin ich bei der Suche im www nicht auf eine Lösung gekommen.
Ich bekomme ein Private Sub code nicht zum laufen.
Das Problem tritt nur bei Prozeduren die mit "Privat Sub" anfangen auf.
Den folgenden Code füge ich in der jeweiligen Arbeitsblatt ein (via rechtsklick und einfügen).
Jedoch erscheint jedesmal das nervige Fenster mit "Makroname" einfügen/erstellen auf.
Kann ich denn ein Private Sub Code nicht überall einfügen?
Was mache ich denn verkehrt?
Danke für eure Tipps.
VG
Memo
Private Sub Worksheet_Change(ByVal Target As Range)
Dim z
On Error GoTo Fehler
If Not Intersect(Range("B:B"), Target) Is Nothing Then
If Target.Row = 1 Then Exit Sub
For Each z In Target
If z.Offset(0, -1)  "" Then
Application.EnableEvents = False
z.Offset(0, 1) = Format(Date, "DD.MM.YYYY")
z.Offset(0, 2) = Environ("Username")
End If
Next
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Private Sub Modul läuft nicht
05.04.2019 10:52:57
kathrin
Hallo Memo,
das Fenster erscheint wenn du das Makro versuchst im Editor zu starten?
Das ist deshalb, weil dieses Makro die Übergabe eines Parameters erwartet. Es kann daher nicht einfach so gestartet werden. In diesem Fall ist es ein Makro das auf jegliche Änderungen in dem Arbeitsblatt reagiert. D.h. sobald du z.B. einen Wert in dem Arbeitsblatt einträgst, startet dieses Makro und bekommt dabei die Adresse der entsprechenden Zelle übergeben. Mit dem Private sollte das nichts zu tun haben. Bei mir hat es funktioniert.
VG Kathrin
AW: Private Sub Modul läuft nicht
05.04.2019 11:01:32
Memo
Hi Kathrin,
Editor? sorry verstehe immer noch nicht was ich falsch mache.
Was hast du denn anderst gemacht ausser - rechtsklick auf das Tabellenblatt dann Code einfügen dann F5 Code starten?
VG
Memo
Anzeige
AW: Private Sub Modul läuft nicht
05.04.2019 11:13:50
kathrin
Hallo Memo,
ich habe das F5 weggelassen und stattdessen eine Änderung im Arbeitsblatt vorgenommen. Mit F5 kannst du nur ein Makro starten dass keinen Übergabeparameter erwartet z.B.
Private Sub test()
MsgBox "hello world"
End Sub
Das Makro das du eingefügt hast, startest du in dem du eine Änderung an dem zugehörigen Tabellenblatt vornimmst. Weißt du wie du einen Haltepunkt in den Code setzt? Dafür klickst du im Editor in einer Zeile z.B. in der Zeile "on Error GoTo Fehler" links auf den Rand. Dann erscheint ein roter Punkt und die Zeile wird rot eingefärbt. Jetzt geh mal in das Arbeitsblatt und geb in irgendeine Zelle irgendetwas ein - dann sollte sich (sobald du Enter drückst oder eine andere Zelle markierst) der Editor öffnen und an genau der Markierten Stelle im Code angehalten sein. Daran siehst du dass das Makro ausgeführt wird. Und kannst nun wenn du möchtest auch mit F8 Schritt für Schritt durch das Makro gehen.
VG Kathrin
Anzeige
AW: Private Sub Modul läuft nicht
05.04.2019 12:00:55
Memo
Hi Kathrin,
also sorry aber ich verstehe aus deiner komplexen Beschreibung wirklich nichts.
Also der Code dient dafür die lezte Speicherung der Datei als Datum zu speichern.
Kannst du nicht mit einfachen Worten rüberbringen, Was du bei dir getan hast dass es läuft?
Sprich wenn du dei Datei speicherst dann siehst du auch dann, beim nächsten öffnen, wann (Datum) es gespeichert worden ist, richtig?
Ich stelle ja eine einfache Frage und mit meinem mangelhaften VBA Wissen bitte ich um eine einfache Antwort.
Warum musst du eine Änderung im Arbeitsblatt vornehmen um das Makro welches fehlerfrei erstellt worden ist zum laufen zu bringen?
Den Tipp von Luc bin ich auch nachgegangen, jedoch in der Hilfe bekommt man alles andere als Hilfestellung.
Kann mir bitte jmd anderst eine nützlichere, einfach beschriebene Hilfestellung anbieten?
Danke für jeden Hinweis.
VG
Memo
Anzeige
Ein Ereignis wird durch einen bestimmten Vorgang …
05.04.2019 12:16:36
Luc:-?
…ausgelöst, Memo,
hier eine Änderung, also Eintrag in eine oder Korrektur des Inhalts einer Zelle des Blattes, in dessen KlassenModul-MakroBlatt (VBEditor) die Prozedur angelegt wurde. Deren Kopf muss dabei genauso aussehen, wie es vom VBE vorgesehen wird, weshalb man sie besser durch Auswahl in den beiden Köpfen des VBE-CodeBlattes anlegt und das jeweilige Pgm statt der Leerzeile einfügt.
Sie muss und kann nicht auf normale Weise aufgerufen wdn! Das ist nicht ihr Zweck, denn sie soll eben auf Ereignisse reagieren, ein wichtiges Glied bei der Automatisierung von ArbeitsProzessen.
Kathrin hat nichts geändert, sondern genau das gemacht, was sie schreibt, etwas in das zugehörige TabBlatt eingetragen statt [F5] zu benutzen.
Luc :-?
Anzeige
Ein Ereignis wird durch einen bestimmten Vorgang …
05.04.2019 12:21:34
Memo
Hi Luc,
die selbe Fragestellung an dich:
Weshalb soll ein User in ein Tabellenblatt etwas eintragen, um das Makro in seiner Funktionsweise zu vervollständigen?
Ich möchte doch nur ein Datum sehen, wann das Dokumen, Arbeitsblatt zuletzt gespeichert worden ist?
Memo
Also der Code dient dafür ...
05.04.2019 12:36:44
Rudi
Hallo,
&lt&ltAlso der Code dient dafür die lezte Speicherung der Datei als Datum zu speichern.&gt&gt
Das ist falsch!!!
Der Code trägt, wenn in B was geändert wird, in C das Datum und und in D den Benutzernamen ein, falls in A was steht.
Das hat mit der Speicherung der Datei nichts zu tun.
Gruß
Anzeige
AW: Private Sub Modul läuft nicht
05.04.2019 13:11:26
kathrin
Hallo Memo,
also du möchtest ein Makro, dass wenn du die Datei speicherst, in eine bestimmte Zelle das aktuelle Datum schreibt?
Dann benutzt du besser ein anderes Ereignis.
Wenn du die Excel Datei geöffnet hast, drücke Alt+F11 - Es öffnet sich der VBA Editor.
Auf der Linken Seite müsstest du eine Auflistung der Tabellenblätter etc. sehen.
Dort wählst du "Diese Arbeitsmappe" aus und fügst z.B. folgenden Code ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets("Tabelle1").Cells(1, 1).Value = Date
End Sub
Dabei ersetzt du ggf. Tabelle1 mit dem Namen des Tabellenblattes auf dem das Datum stehen soll.
Cells(1,1) entspricht hier der ersten Zelle in der ersten Spalte - also A1. Das Änderst du ggf auch ncoh ab, soll das Datum in C2 stehen z.B. in Cells(2,3) (Zeile,Spalte)
Dann schließe den Editor. Speichere deine Datei - nun solltest du das Datum sehen.
Ich hoffe das hilft weiter.
VG Kathrin
Anzeige
AW: Private Sub Modul läuft nicht
05.04.2019 16:19:17
Memo
Hi Kathrin,
also jetzt will ich es wirklich wissen.
Die Lösung von Alexandra hat mich bereits zufriedengestellt. Aber ich lerne gerne dazu.
Den folgenden Code habe ich bei "Diese Arbeitsmappe" auf dem Arbeitsblatt "Tracking_List" eingefügt, Editor geschlossen, Änderungen im Arbeitsblatt vorgenommen und Datei gespeichert. Danach wieder geöffnet.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets("Tracking_List").Cells(3, 8).Value = Date
End Sub
Jetzt sag mir bitte wo das Datum deiner Meinung nach stehen müsste, nachdem ich es nach Speicherung erneut geöffnet habe? In Zelle H3 steht es zumindest nicht.
Du hilfst hier wirklich keinen weiter, wenn du Codes die du selbst nicht ausprobiert hast, hier postest.
Anzeige
AW: Private Sub Modul läuft nicht
05.04.2019 16:37:06
Werner
Hallo,
das Makro gehört in "DieseArbeitsmappe" und nicht ins Codemodul von einem Tabellenblatt.
Gruß Werner
Naja, war doch schon zu bemerken, ...
05.04.2019 19:10:13
Luc:-?
…Werner,
Basiskenntnisse in VBA bedeutet hier eher RudimentärKenntnisse. Wenn man etwas wirklich wissen will, muss man sich schon auch selbst zu informieren suchen und nicht im persönlichen Neuland auf Verdacht rumstochern, weil man weder die VBE-Hilfe noch die vielen Hinweise der Helfer zu verstehen, geschweige denn richtig anzuwenden weiß.
Ich empfehle Memo deshalb, einfach mal überschlafen! Vielleicht klappt's morgen dann ja besser mit dem Verständnis. Im Übrigen ist es doch wohl ziemlich unverschämt, eigenes Unverständnis anderen anzulasten, zumal ich schon erwähnt hatte, dass man eine Ereignis­Pro­zedur besser dort anlegt (wird vom VBE unterstützt!), wo sie hingehört, nicht einfach nur fertig irgendwohin kopiert, wo das entsprd Ereignis gar nicht auftritt…
Gruß, Luc :-?
Anzeige
AW: Private Sub Modul läuft nicht
05.04.2019 17:04:10
kathrin
Hallo Memo,
hier eine Datei mit dem Makro an der korrekten Stelle:
https://www.herber.de/bbs/user/128958.xlsm
Ich habe den Code selbstverständlich getestet bevor ich etwas geschrieben habe. Es tut mir leid dass wir scheinbar unterschiedliche Sprachen sprechen. Aber wenn dir der Beitrag von Alexandra bereits geholfen hat und du nun dein Ziel damit erreicht hast ist es doch super.
Vielleicht hilft dir die obige Datei weiter, dann freut es mich. Ansonsten wünsche ich dir trotzdem bei deinem Vorhaben weiterhin viel Erfolg. Ich werde heute nicht mehr an den Rechner kommen, vondemher falls du weitere Fragen hast, gerne morgen oder ein anderer freundlicher Forumsteilnehmer hilft dir weiter.
Einen schönen Abend noch
VG Kathrin
Anzeige
AW: Private Sub Modul läuft nicht
07.04.2019 00:00:03
Memo
Hi Kathrin,
auf meinem privaten Rechner hat dein Code auf Anhieb problemlos funktioniert.
Ich weiß nicht was ich falsch gemacht habe und warum der Code nicht gefunkt hat.
An dieser Stelle entschuldige ich mich für meine unfaire Kommunikationsart und Danke für deine Geduld.
Gute Nacht
Memo
‘.
AW: Private Sub Modul läuft nicht
07.04.2019 11:36:34
Werner
Hallo,
weil du den Code deiner Beschreibung nach ins Codemodul eines Tabellenblattes kopiert hast und nicht ins Codemodul von "DieseArbeitsmappe".
Gruß Werner
Was Kathrin dir sagen will, ...
05.04.2019 11:39:31
Luc:-?
…Memo,
das ist ein sog EreignisMakro, das auf Ereignisse des TabBlattes reagiert und deshalb auch im Dokument­Klassen­Modul des TabBlattes eingetragen wird. Da es parametriert ist, den Parameter Target sogar zwingend erwartet, kann es nicht direkt gestartet wdn. Das gilt generell für derartige SubProzeduren, auch gewöhnliche parametrierte. Die kann man (hier alternativ) nur mit einer (unparametrierten) RufProzedur starten, die nur das eigentl Pgmm aufruft und ihm dabei den gewünschten Parameter übergibt.
Tipp: Mal in der VBE-Hilfe unter Ereignisse des TabBlattes nachlesen.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

AW: Was Kathrin dir sagen will, ...
05.04.2019 12:16:26
Memo
Hallo Luc,
ich habe es im Dokument Klassen Modul eingefügt - das Fenster erscheint auch hier.
Warum erscheint das Fenster bei dir nicht?
Meine Vorgehensweise:
-Klick auf "Diese Arbeitsmapp" oder "Tabellenblatt"
-rechte Maustaste
-Einfügen wählen
-Klassenmodul wählen
-Code hier einfügen
-speichern
-F5 oder Su/Userform ausführen klicken
Ergebnis: Fenster ploppt auf.
Warum passiert das, wenn ich so vorgehe wie du oben beschrieben hast?
VG
Memo
Weil F5-Benutzung falsch ist! (Vgl auch oben!) owT
05.04.2019 12:18:44
Luc:-?
:-?
AW: Was Kathrin dir sagen will, ...
05.04.2019 12:58:06
Daniel
Hi
Achtung, du verwechselst hier die Klassenmodule für selbst erstellte Klassen mit den Klassenmodulen der Mappe und der Tabellenblätter. Die Klassenmodule der Mappe ("DieseArbeitsmappe") und der Tabellenblätter ("Tabelle1") sind automatisch vorhanden und müssen nicht neu erstellt werden.
Es reicht ein Doppelklick auf den Eintrag im Projektexplorer und die Codeseite des Jeweiligen Klassenmoduls öffnet sich und du kannst den Code einfügen.
Wie gesagt, der Begriff Klasse ist hier etwas verwirrend, weil man unterscheiden muss zwischen eigener Klasse und den Klassen der Excelmappe.
Gruß Daniel
AW: Was Kathrin dir sagen will, ...
05.04.2019 13:08:22
cysu11
Hi Memo,
das Makro was du gepostet hast, das gehört hinter dem Blatt wo du die Änderungen dokumentiert haben möchtest. Guck einfach mal in diese Beispieldatei, dann verstehst du das vielleicht besser!
https://www.herber.de/bbs/user/128941.xlsm
Der Code wird ja von dir nicht per Button ausgelöst, sonder er soll ja starten, wenn sich in Spalte B was ändert, wenn gleichzeitig was in A steht!
LG
Alexandra
AW: Was Kathrin dir sagen will, ...
05.04.2019 13:52:39
Memo
:) Hi Alexandra,
Danke ∞ für die verständlichen Hinweise.
VG
Memo
AW: Was Kathrin dir sagen will, ...
05.04.2019 14:06:03
Werner
Hallo,
schön, dass du das jetzt verstanden hast. Das Makro ist aber wohl nicht das, was du möchtest. Du willst ja wohl das Datum des Speicherns der Datei in eine Zelle schreiben.
Dazu sieh dir mal den Beitrag von kathrin um 13:11 h an.
Du solltest alle Beiträge lesen.
Gruß Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige