Anzeige
Archiv - Navigation
1740to1744
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

Probleme bei DIESE ARBEITSMAPPE

Probleme bei DIESE ARBEITSMAPPE
17.02.2020 14:10:51
Steve
Moin Leute,
ich bin am verzweifeln. Ich habe ein Problem bei dem ich glaube das die Ursache das Makro in DIESE ARBEITSMAPPE ist.
Das Problem ist ziemlich kompliziert, jedenfalls für mich, zu erklären. Ich möchte es hier mal versuchen.
Ich habe mir, nachdem ich eine Menge von euch gelernt habe schon einiges zusammenbasteln können. Unter anderem diese Datei. Die Funktion ist recht simpel. Per Knopfdruck erscheint ein neues Tabellenblatt und dabei werden ebenfalls neue Ordner angelegt.
Die Eingaben in den Blättern (derzeit in Spalte D) werden dann in den Sheets LISTE und INFO gespiegelt und das permanent. Da ich immer wieder solche Dateien mit unterschiedlichen Layouts erstellen muss, wollte ich eine möglichst dynamische Datei entwerfen. Deshalb kann man die Zellen in der Spalte D überall hinziehen. Diese werden dann in Spalte B übertragen und von dort (Wie in G19 und G21) , werde an die Listen übergeben.
Das alles funktioniert auch hervorragend. Bis ich folgende Aktionen durchführe. Zu beachten ist, das es völlig egal ist, ob diese Aktionen die zu übertragenden Tabellen beeinflussen oder nicht.
-Füge ich in eine der neuen Folien die Formel =HEUTE() ein, dann stürzt Excel ab.
-Gebe ich Zellen einen Namen und verwende diese dann weiter
(siehe das Beispiel mit den gelben Feldern - mit Bezug zu den zu übertragenden Feldern
oder den orangenen Felder - ohne Bezug zu den zu übertragenden Feldern)
dann kann ich keine neue Folie mehr anlegen. Auf einmal wird das Sheet LISTE mit der nächsten Sheetnummer
überschrieben und das Programm stoppt weil es das neue Sheet nicht finden kann.
Zum testen einfach mal das "=" in eine der Formeln hinzufügen und über die Startseite eine neue Folie hinzufügen.
-Benutze ich einfache Formeln, dann funktioniert alles (Siehe rot eingefärbte Felder)
Wie ich drauf komme, das DIESE ARBEITSMAPPE die Ursache ist? Wenn ich das Makro ausschalte, dann ist das oben beschriebene auf einmal kein Problem mehr.
Ich hoffe jemand kann mir sagen was ich da falsch gemacht habe.
Die Datei hänge ich an.
https://www.herber.de/bbs/user/135237.zip
Liebe Grüße
Steve

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme bei DIESE ARBEITSMAPPE
17.02.2020 19:39:32
Cryser88
Hallo,
Meines Wissens kannst du nur Funktionen mit einer Wenn-Funktion aufrufen.
Aber warum machst du es mit einer Formel, wenn du eh schon in VBA ein Makro geschrieben hast. Dann bleib doch bei VBA und nutze die Worksheet_Change Funktion.
So richtig?
18.02.2020 13:20:21
Steve
Moin Cryser,
ich muss sagen ich musste die ganze Nacht über deine Antwort grübeln. Ich bin ja blutiger Anfänger, mache noch viele Fehler und stehe entsprechend oft auf dem Schlauch.
Ich habe den derzeitigen Code seinerzeit von Chris erhalten. Der lief auch Super bis zu dem Moment an dem ich die beschriebenen Probleme erhielt. Er hatte mir zu dem Calculate auch ein Change Ereignis gesendet aber eher durch Zufall. Das Calculate hatte er damals empfohlen. Heute Nacht hat mein Hirn mich daran erinnert und ich habe es rausgekramt. Was soll ich sagen, es funktioniert und sieht, nach ein paar Anpassungen, so aus:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Dim rngZiel As Range, ShRange As Range
Set ShRange = Range("N_Daten")
If Not IsNumeric(Sh.Name) Then Exit Sub
Application.ScreenUpdating = False
Set rngZiel = Worksheets("Startseite").Columns(2).Find(Sh.Name, LookIn:=xlValues, lookat:= _
xlWhole)
If rngZiel Is Nothing Then
Exit Sub
Else
Range("N_Daten").Copy
Worksheets("Startseite").Range("D" & rngZiel.Row).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End If
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Ziel sollte ja sein, das die Daten über diesen Zwischenschritt übertragen werden um mir nicht die Flexibilität zu nehmen ohne VBA Zugriff die zu übertragenden Daten zu erweitern. Das scheint hier zu funktionieren.
Meintest du das so?
Liebe Grüße und Danke
Steve
Anzeige
So richtig?-Ereignismakros zeitweise deaktivieren
18.02.2020 19:27:57
fcs
Hallo Steve,
wenn man mit Ereignismakros arbeitet dann ist es oft ratsam, dass diese vorübergehend deaktiviert werden, damit es nicht zu Rückkopplungseffekten kommt.
Speziell wenn man Zellinhalte per Makro ändert gerät man ggf. in Endlosschleifen, da sich das Ereignismakro "Workbook_SheetChange" bzw. "Worksheet_Change" immer wieder selbst aufruft.
Wichtig ist, dass man die Ereignismakros vor dem Beenden/Verlassen des Makros wieder aktiviert, da man sonst die komplette Datei bezüglich Ereignismakros zum Stillstand bringt.
Also nicht Exit Sub verwenden, sondern mit Goto Sprungadresse ans Ende des Makros springen und dort die Entsprechenden Einstellungen zurücksetzen.
LG
Franz
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Dim rngZiel As Range, ShRange As Range
Set ShRange = Range("N_Daten")
If Not IsNumeric(Sh.Name) Then GoTo Beenden
Application.ScreenUpdating = False
Application.EnableEvents = False
Set rngZiel = Worksheets("Startseite").Columns(2).Find(Sh.Name, LookIn:=xlValues, _
lookat:=xlWhole)
If rngZiel Is Nothing Then
GoTo Beenden
Else
Range("N_Daten").Copy
Worksheets("Startseite").Range("D" & rngZiel.Row).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End If
Application.CutCopyMode = False
Beenden:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

Anzeige
AW: So richtig?-Ereignismakros zeitweise deaktivieren
19.02.2020 13:10:46
Steve
Hallo Franz,
wenn ich das richitg verstehe, geht es bei deinem Beitrag darum, das bei den Nicht-nummerischen Sheets das Makro beendet und nicht einfach übersprungen wird.
Und wenn ja, dann weiter: Das Makro läuft ansonsten weiterhin nonstop?
Habe ich das so richtig verstanden?
Ich danke dir für diesen Hilfreichen Tipp. Der scheint ja schon sehr allgemein zu sein, will sagen, immer mal wieder zum tragen zu kommen.
Hab es auf jeden Fall mal umgesetzt.
Liebe Grüße
Steve

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige