Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1460to1464
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
Code beim öffnen der Arbeitsmappe ausführen
03.12.2015 15:02:55
Katja
Hallo,
wie kann ich diesen Code so anpassen, dass der beim öffnen der Arbeitsmappe ausgeführt wird?
Der Code steht normalerweise im Blatt Berechnungen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bSuccess As Boolean
Dim zeile As Long
Worksheets("Berechnung").Unprotect Password:="sperl"
If Not Intersect(Target, Range("ANFANG", "ENDE")) Is Nothing Then
zeile = Target.Row
On Error Resume Next
bSuccess = Range("Q" & zeile).GoalSeek(0, Range("R" & zeile))
On Error GoTo 0
End If
Worksheets("Berechnung").Protect Password:="sperl"
End Sub

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code beim öffnen der Arbeitsmappe ausführen
03.12.2015 15:12:15
UweD
Hallo
Solche Makros stehen dann in "DieseArbeitsmappe"
Private Sub Workbook_Open()
'Dein Code
End Sub
Gruß UweD

AW: Code beim öffnen der Arbeitsmappe ausführen
03.12.2015 15:29:43
Katja
Hallo,
dann kommt aber der Fehler. Objekt erforderlich beim Öffnen der Datei.
es wird die Zeile
If Not Intersect(Target, Range("ANFANG", "ENDE")) Is Nothing Then
Geld markiert.
Was ist das Problem?

AW: Code beim öffnen der Arbeitsmappe ausführen
03.12.2015 16:03:00
Rudi
Hallo,
du musst eine Zelle übergeben.
z.B
Private Sub Workbook_Open()
Application.Run "tabelle1.worksheet_change", Tabelle1.Range("A1")
End Sub
Gruß
Rudi

Anzeige
AW: Code beim öffnen der Arbeitsmappe ausführen
03.12.2015 16:14:32
Katja
Hallo,
danke für die Info.
Mittlerweile habe ich aber festgestellt, dass dies ein Fehlerrisiko birgt. Daher wäre es besser den Code nicht auszuführen wenn sich eine Zelle ändert sondern wenn auf einem Button geklickt wird.
Wie muss man den Code dann anpassen?

Der 3. Thread, bitte antworten!!!
04.12.2015 00:09:05
Michael
Hi Katja,
Du hast mich jetzt in zwei Threads hängen lassen, ohne zu antworten bzw. auf meine mit
Z E I T und A R B E I T
für Dich erstellten Lösungen zu kommentieren.
Findest Du das ok?
Gruß,
Michael

AW: Der 3. Thread, bitte antworten!!!
04.12.2015 07:48:46
Katja
Hallo,
sry ich wusste nicht wie die Gepflogenheiten hier sind. Bin neu hier.
Tut mir leid.
Dein Code funktioniert super.
Habe keine Probleme damit.
Jedoch wäre ein Button der das Skript ausführt noch besser.
Grund: In der Bestandsdatei ist ein code drin, der irgendwie einen Datensatz einfügt, aber das ergibt Probleme mit deinem code, weil deiner dann nicht mehr funktioniert.
Erst wenn ich die Datei speichere und dann wieder öffne und eine Zelle der betreffenden eingefügten Zeile ändern aktualisiert wer wieder alles ganz normal wie vorher.
Vor dem Speichern geht halt die neu eingefügte Zeile nicht.
Dazu anbei mal Datei zum besseren Verständnis.
https://www.herber.de/bbs/user/101998.xlsm
Button: Zeile einfügen betätigen. Danach Werte in die betreffende Zeile eingeben. Berechnung funktioniert nicht. Wenn nun die Datei gespeichert und wieder geöffnet wird, geht die Berechnung wenn man einen Wert der Zeile aktualisiert.
Hast du hierzu eine Lösung?
Das Auslösen des Skriptes mit dem Button war nur von mir eine Idee.
Es könnte auch über die Änderung der Zelle ausgeführt werden, dazu müsste man aber irgendwas anpassen.
Ich weis leider aber nicht was und wie

Anzeige
Etz kommt der Oberlehrer
04.12.2015 09:01:01
Michael
Schönen guten Morgen, Katja,
sry ich wusste nicht wie die Gepflogenheiten hier sind.
Ein bißchen Höflichkeit ist nicht nur hier angebracht.
Zur Sache:
Bitte setz Dich hin, trink nen Kaffee und überleg Dir mal, wie Du die Benutzerführung genau möchtest.
[im Moment vermute ich, daß das ein wildes und wahrscheinlich unnötiges Herumgespringe zwischen Eingabe, Berechnung und Anzeige des Ergebnisses ist]
[Deine Tabelle sieht mir danach aus, daß (ausnahmsweise) eine "Tabelle" im Tabellenblatt einiges vereinfachen würde, nämlich u.a. die ANFANG- und ENDE-Kennzeichnung.]
Dann lädst Du uns bitte eine Datei mit ein paar Spieldaten hoch ...
[Warum? Weil eine Tabelle voller #BEZUG! und #WERT! einfach nicht nachvollziehbar ist]
...und markierst bitte genau (z.B. farblich), was wer wo eingeben kann und was damit passieren soll.
Und bitte in welchen Schritten damit gearbeitet werden soll, also etwa:
1. Eingabe von Daten im Tabelle/Bereich von.. bis
2. Drücken des Buttons "Bla" usw.
Ich bin kein Hellseher ...
Nicht vergessen: ich hatte Dich darauf hingewiesen, daß die Formel aus sellis Link einen Tippfehler hat: in Datensatz!Q5 muß es heißen 3,71, nicht 3,7 - ist noch nicht ausgebessert.
Happy Exceling,
Michael

Anzeige
AW: Etz kommt der Oberlehrer
04.12.2015 10:16:29
Katja
Hallo,
ok danke für die Info. dann anders bzw. einfacher.
Ich brauche den Code der jetzt ausgelöst wird wenn eine Zelle innerhalb der Grenzen (Anfang/Ende) geändert wird anders.
Am besten Wäre wenn der Code für alle Formel die zwischen den Grenzen stehen, beim Klick auf einem Button ausgeführt wird.
Alles andere bekomme ich schon irgendwie hin.
Verstehst du was ich meine?

...und jetzt der Ober- Oberlehrer....
04.12.2015 10:27:47
EtoPHG
Hallo,
Alles andere bekomme ich schon irgendwie hin.
Das hast du mit deinen Reaktionen auf verschiedene Hilfestellungen in den vergangenen Posts gründlich widerlegt!
Bist du Katja eigentlich Matthias Sperl, oder versteckst du Matthias, dich hinter Katja? Und wenn ja, warum?
Gruess Hansueli

Anzeige
komm in die Gänge, Katja
04.12.2015 11:59:59
Michael
Hi zusammen,
@Hansueli: Schön, von Dir zu hören - Deine Lösung im ersten Post hatte Katja ja auch ignoriert...
@Katja: Du gehst so gar nicht auf das ein, was wir schreiben:
Nochmal, wie soll ich bitte testen, ob was funktioniert, solange a) keine Beispielwerte vorhanden und b) Deine Formeln alle #FEHLERWERTE! anzeigen? Und unklar ist, wann wo händisch Werte eingegeben werden sollen...
Wenn Du keinen Bock hast, eine entsprechende Tabelle bzw. Infos zur Verfügung zu stellen, dann gibt's halt auch keine Hilfe.
Schöne Grüße,
Michael
P.S.: innerhalb der Grenzen (Anfang/Ende) funktioniert so lange nicht, wie ENDE *in der untersten Datenzeile* steht - das muß eine Zeile weiter runter.

Anzeige
Zur Info
04.12.2015 12:14:13
Michael
Ich bin weit entfernt davon, Katja quälen zu wollen, mein Bestreben ist ein anderes:
Prinzip 1: EVA steht für Eingabe-Verarbeitung-Ausgabe: ich muß wissen, was wo ein- und ausgegeben wird, weil sich daraus die Verarbeitung ergibt.
Prinzip 2: Zitat aus: http://en.wikiquote.org/wiki/Linus_Torvalds
(das war der Linux-Programmierer)
In fact, I'm a huge proponent of designing your code around the data, rather than the other way around […] I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
Ciao,
M.

Anzeige
Datei+Angaben
07.12.2015 14:41:01
Katja
Hallo,
anbei die Datei mit den Eintragungen.
https://www.herber.de/bbs/user/102062.xlsm
Aufgabe:
Die Nullstelle der Formeln in der Spalte Q sollen ermittelt werden. Das Ergebnis steht in Spalte R.
Die Berechnung soll über den Button Aktualisieren ausgeführt werden.

So nicht
07.12.2015 16:37:54
Michael
Hi Katja,
"hallo, hallo" ist ja ganz lustig, aber solange die Datei so aussieht...
Userbild
... kann die Zielwertsuche nicht funktionieren.
Nun gut, füge den folgenden Code ein, das könnte funktionieren:
Private Sub CommandButton3_Click()
Dim bSuccess As Boolean
Dim zeile As Long
Worksheets("Berechnung").Unprotect Password:="sperl"
For zeile = Range("ANFANG").Row + 1 To Range("ENDE").Row
On Error Resume Next
bSuccess = Range("Q" & zeile).GoalSeek(0, Range("R" & zeile))
On Error GoTo 0
Next
Worksheets("Berechnung").Protect Password:="sperl"
End Sub
Schöne Grüße,
Michael

Anzeige
AW: So nicht
07.12.2015 17:14:10
Katja
Hallo,
man muss nur die Werte eintragen dann gehen die Fehler weg.
Aber besten Dank für die Anpassung.
Funktioniert einwandfrei.
Das macht das Arbeiten nun sehr einfach.

Na dann...
08.12.2015 07:11:12
Michael
Hi Katja,
das ist mir klar, daß die #MELDUNGEN! dann weg sind, aber ich hätte halt gerne eine Spieldatei "mit ohne" solche Fehler gehabt, mit "echten" Werten (ich habe doch keine Ahnung von Rohren und dem physikalischen Drumrum).
Aber freut mich, wenn Du hier geholfen wurdest.
Ich sehe noch einige Fallstricke in Deinem Code - vielleicht schreiben wir uns ja wieder.
Schöne Grüße,
Michael
P.S.: das 3. Mal: in der Formel mußt Du 3,7 durch 3,71 ersetzen.

Anzeige
AW: Na dann...
08.12.2015 07:24:13
Katja
Hallo,
achso jetzt verstehe ich dich.
Was meinst du mit Fallstricke? Und welche sollen das sein?
Gruß

AW: Na dann...
08.12.2015 07:38:09
Michael
Naja, nur mal die Formeln in Spalte X.
Die sehen im Prinzip (leider habe ich die Zeilennummern oben in der Grafik nicht mit drin) ja so aus:
1. Datenzeile: = Wert links aus Spalte W, also =W15 (um nur eine Zahl zu nehmen)
2. und weitere Zeilen: = Werte von links plus der Wert aus der vorhergehenden Zeile, also etwa in X16 dann: = W16+X15
So weit, so gut, das ergibt kumulierte Summen von Zeile zu Zeile. Nur: wenn Du eine Zeile bei Zeile 16 einfügst, ändert sich hier (in der runtergeschobenen Zeile) die Formel in = W17+X15, d.h. der Wert der eingefügten Zeile wird "übersprungen".
Andersrum: wenn Du die Zeile 16 löschst, bekommst Du den schön sichtbaren #BEREICH!-Fehler, weil die Zeile, auf die sich die Formel in X17 bezogen hatte (=W17+X16), gelöscht wurde.
Insgesamt finde ich, das zweite Blatt ist eigentlich unnötig; eleganter wäre es nach meinem Geschmack, über der eigentlichen Tabelle einen hübschen Eingabebereich zu machen und einen Button, mit dem diese Werte in eine neue Zeile unten übernommen werden.
Naja, das ist Geschmackssache, aber auf die Formeln mußt Du echt aufpassen...
Evtl. heute abend, ich bin erst von der Nachtschicht gekommen,
M.
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige