Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1256to1260
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

Makro bringt Excel zum Absturz

Makro bringt Excel zum Absturz
Jenny
Hi Ihr,
ich habe folgendes Makro erstellt, dass manchmal leider mein Excel zum Absturz bringt. :-(
Ich vermute, dass liegt daran, dass hier einige Schritte enthalten sind, die manchmal schon vor dem Start des Makros manuell ausgeführt wurden.
Könnt Ihr mir sagen, wie ich hier eine Wenn-Dann-Prüfung einbinde, damit die Passwort-Abfrage und das Einblenden der Zeile nur dann geschehen, wenn dies noch nicht passiert ist ?
Sub Reset()
With ActiveWorkbook.Worksheets(2)
ActiveSheet.Unprotect "XXX"
If ActiveSheet.Pictures.Count > 0 Then ActiveSheet.Pictures(1).Delete
Rows(6).Hidden = True
Range("E3").FormulaR1C1 = "all"
Range("E2").ClearContents
Range("L3").ClearContents
Selection.AutoFilter Field:=2, _
Criteria1:=Range("N2")
Selection.AutoFilter Field:=1, _
Criteria1:=Range("M2")
ActiveSheet.Protect UserInterfaceOnly:=True, Password:="XXX"
Range("E2").Select
End With
End Sub
LG und vielen Dank Euch im Voraus,
Jenny
AW: Makro bringt Excel zum Absturz
03.04.2012 08:46:09
fcs
Hallo Jenny,
die Kennwort-Abfrage erfolgt eigentlich nur dann, wenn das im Makro hinterlegte Kennwort nicht stimmt.
Für mich ist unklar, was du mit "With ActiveWorkbook.Worksheets(2)" erreichen willst. Denn in den folgenden Zeilen stellst du keinen Bezug zu diesem Objekt her (Das wäre dann der Fall, wenn vor den jeweiligen Objekten wie Range, Autofilter, u.a. jeweils ein Punkt steht.
Probleme gibt es auf jeden Fall, wenn zum Zeitpunkt der Makro-Ausführung im aktiven Blatt kein Autofilter vorhanden ist.
Bevor man hier konkret helfen kann müßte du noch etwas genauer beschreiben, was dein Makro genau machen soll.
Gruß
Franz
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 10:42:57
Jenny
Hallo Franz,
vielen Dank für Deine Nachricht ! :-)
Ich bin mit VBA noch ganz am Anfang und es kann durchaus sein, dass der Code, so wie ich ihn geschrieben habe, nicht ideal ist - da bin ich für jeden Tipp dankbar !
Das Makro hat die Aufgabe, alle Auswahlen und Einträge auf einem Blatt (Blatt 2) auf den Default zurückzusetzen, d.h. folgende Aktionen durchzuführen:
1) Falls über ein anderes Makro (Image Container) gerade ein Bild eingeblendet ist, dieses ausblenden.
2) Zeile 6 ausblenden.
3) In Zelle E3 den Text "all" eintragen.
4) Einen eventuellen Eintrag in Zelle E2 löschen.
5) Einen eventuellen Eintrag in Zelle L3 löschen.
6) Die Filter in N2 und M2 zurücksetzen, so dass wieder alle Einträge angezeigt werden (der Filter ist dabei immer gesetzt und kann vom User auch nicht entfernt werden !).
7) Zelle E2 auswählen.
Zusätzlich muss dabei dass Passwort zuvor aufgehoben und danach wieder gesetzt werden.
Sonderfälle:
1) Es kann sein, dass das Passwort bereits vorher manuell vom Admin aufgehoben wurde (dafür bislang noch keine Lösung !).
2) Es kann sein, dass Zeile 6 bereits vorher manuell vom Admin ausgeblendet wurde (dafür bislang noch keine Lösung !).
3) Es kann sein, dass Zelle E3 bereits den Wert "all" enthält (dafür bislang noch keine Lösung !).
Konnte ich es jetzt besser erklären ? :-)
LG
Jenny
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 11:11:04
Rudi
Hallo,
teste mal.
Sub ResetSheet2()
With ActiveWorkbook.Worksheets(2)
.Unprotect "XXX"
If .Pictures.Count > 0 Then .Pictures(1).Delete
.Rows(6).Hidden = True
.Range("E3").FormulaR1C1 = "all"
.Range("E2").ClearContents
.Range("L3").ClearContents
If .FilterMode Then .ShowAllData
.Protect UserInterfaceOnly:=True, Password:="XXX"
Application.Goto .Range("E2"), True
End With
End Sub

Deine 3 Sonderfälle: Völlig egal.
Reset ist eine VBA-Anweisung und sollte nicht als Makroname benutzt werden.
Gruß
Rudi
AW: Makro bringt Excel zum Absturz
03.04.2012 11:44:48
Jenny
Hallo Rudi,
vielen Dank dafür ! :-)
Ich habe noch ein paar Fragen dazu, damit ich's auch (als Anfänger) richtig verstehe: ;-)
1) Du hast die ActiveSheet-Teile komplett herausgenommen. Bewirkt das nicht, dass der gleiche Schritt auch auf andere Blätter angewendet wird ? Es ist wichtig, dass das nur auf Blatt2 passiert.
2) Ist es bei dem Ausblenden der Zeile 6 und dem Eintrag "all" nicht notwendig zu prüfen, ob evtl. schon geschehen ? Das konnte ich jetzt im Code noch nicht sehen und war meiner Vermutung nach der Grund für die Abstürze ?
Prüft Dein Code das beim Aufheben / Setzen des Makros ?
LG und sorry, wenn ich dumm frage - ich kenne mich leider noch nicht allzu gut aus,
Jenny
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 12:21:04
Rudi
Hallo,
1) Du hast die ActiveSheet-Teile komplett herausgenommen. Bewirkt das nicht, dass der gleiche Schritt auch auf andere Blätter angewendet wird ? Es ist wichtig, dass das nur auf Blatt2 passiert.
das ist durch die Referenzierung auf Worksheets(2) gewährleistet. Im Gegensatz zu ActiveSheet. Dort würde der Code auf das Aktive Blatt angewendet, egal welches es ist.
2) Ist es bei dem Ausblenden der Zeile 6 und dem Eintrag "all" nicht notwendig zu prüfen, ob evtl. schon geschehen ?
wozu prüfen? Wenn man 'all' in die Zelle schreibt, obwohl schon 'all' drinsteht, passiert doch nix. Dito wenn man eine ausgeblendete Zeile ausblendet.
Gruß
Rudi
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 13:45:18
Jenny
Hallo Rudi,
vielen Dank nochmal !
Das klappt leider nicht ganz so gut - der neue Code rechnet sehr lange und ändert die Anzeige einiger anderer Zeilen, die über dem Filter liegen.
Kannst Du mir vielleicht nur sagen, wie ich prüfe, ob der Passwortschutz noch nicht aufgehoben ist und nur in diesem Fall das Passwort eingeben lasse ?
Ich glaube, das sollte schon reichen, da das Makro nur von diesem einen Blatt aus gestartet werden kann (keine Tastenkombination). :-)
LG und nochmals vielen Dank,
Jenny
AW: Makro bringt Excel zum Absturz
03.04.2012 13:56:19
Rudi
Hallo,
If Activesheet.protectcontents then activesheeet.unprotect "xxx"
Aber auch das musst du nicht prüfen.
activesheeet.unprotect "xxx" funktioniert auch in einem ungeschützten Blatt.
Gruß
Rudi
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 14:01:14
Jenny
Hallo Rudi,
vielen Dank nochmal ! :-)
Das ist auf jeden Fall gut zu wissen.
Ich habe in der Zwischenzeit auch noch ein paar andere Änderungen vorgenommen und werde beides mal ausprobieren, um zu sehen, was stabiler läuft.
LG und Dir noch einen schönen Nachmittag,
Jenny
AW: Makro bringt Excel zum Absturz
03.04.2012 14:46:50
Jenny
Hallo Rudi,
ich habe den Fehler gefunden.. :-)
Es lag gar nicht an dem ursprünglichen Reset-Makro, sondern an der Kombination mit einem anderen Code.
Verwende ich das Makro mit dem ursprünglichen Code alleine läuft es einwandfrei, gleiches gilt für den folgenden Code separat - kombiniere ich diesen jedoch mit dem Reset-Makro stürzt Excel komplett ab und zwar bei jedem Versuch. :-(
Weisst Du zufällig auch, was hier falsch ist bzw. wie ich den Code ohne Gefahr mit dem Reset-Makro kombinieren kann ? Die folgenden Codes sollen dabei eigentlich nur eine im gleichen Blatt befindliche AutoForm ein- bzw. ausblenden, um so dahinter gelegte OptionButtons sichtbar bzw. unsichtbar zu machen..
Option 1:
Sub RadioButtonsShow()
ActiveSheet.Shapes.Range(Array("Rectangle 9")).Select
Selection.ShapeRange.ZOrder msoSendToBack
End Sub
Option 2:
Sub RadioButtonsHide()
ActiveSheet.Shapes.Range(Array("Rectangle 9")).Select
Selection.ShapeRange.ZOrder msoBringToFront
End Sub
LG
Jenny
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 15:19:07
Rudi
Hallo,
das finde ich jetzt eine kuriose Methode.
Ich würde die Visible-Eigenschaft der Steuerelemente auf False oder True setzen.
Vielleicht ohne die Selecterei.
Sub RadioButtonsShow()
ActiveSheet.Shapes.("Rectangle 9")).ZOrder msoSendToBack
End Sub
Sub RadioButtonsHide()
ActiveSheet.Shapes.("Rectangle 9")).ZOrder msoBringToFront
End Sub

Gruß
Rudi
AW: Makro bringt Excel zum Absturz
03.04.2012 15:27:23
Jenny
Hallo Rudi,
da habe ich wahrscheinlich (aus Unwissen) um ein bisschen zu viele Ecken gedacht. :-)
Wie geht denn Dein Weg mit dem Visible auf True / False setzen - der ist bestimmt besser ? ;-)
LG
Jenny
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 15:31:24
Rudi
Hallo,
Activesheets.shapes("Optionsfeld 1").Visible=False
Gruß
Rudi
AW: Makro bringt Excel zum Absturz
03.04.2012 15:44:17
Jenny
Danke nochmal, Rudi !
Hier bekomme ich die Fehlermeldung "Run time error 424. Object required".
Ich vermute, dass liegt an der Bezeichnung der Buttons, wobei ich es auch mit dem probiert habe, was ich im Code für sie angezeigt bekomme, d.h. Option Button 11 und Option Button 12.
Kann man vielleicht einfach alle Option Buttons ausblenden, damit sich Excel nicht an deren Bezeichnung stört ?
Vielleicht hat das zuvor auch den Crash verursacht ?
Probiert hatte ich es so (da ich momentan 2 Option Buttons verwende):
Sub RadioButtonsHide()
' Macro5 Macro
' Keyboard Shortcut: Ctrl+h
Activesheets.Shapes("Option Button 12").Visible = False
Activesheets.Shapes("Option Button 11").Visible = False
End Sub
LG
Jenny
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 15:54:19
Rudi
Hallo,
Sub aaa()
'ausblenden
ShowHideButtons Sheets(2), False
End Sub

Sub bbb()
'einblenden
ShowHideButtons Sheets(2), True
End Sub

Sub ShowHideButtons(wks As Worksheet, blnVisible As Boolean)
Dim objShape As Shape
For Each objShape In wks.Shapes
If objShape.FormControlType = xlOptionButton Then
objShape.Visible = blnVisible
End If
Next objShape
End Sub

Gruß
Rudi
AW: Makro bringt Excel zum Absturz
03.04.2012 16:27:37
Jenny
...oh nein - jetzt bekomme ich "Run-time error 1004: Application-defined or object-defined error." :-(
Ich habe es wie folgt probiert:
Dein neues Sub, in einem Modul:
Sub ShowHideButtons(wks As Worksheet, blnVisible As Boolean)
Dim objShape As Shape
For Each objShape In wks.Shapes
If objShape.FormControlType = xlOptionButton Then
objShape.Visible = blnVisible
End If
Next objShape
End Sub
Mein eigentliches

Sub mit der Anpassung von Dir, im gleichen Modul: 

Sub Reset()
With ActiveWorkbook.Worksheets(2)
ActiveSheet.Unprotect "XXX"
ShowHideButtons Sheets(2), False
If ActiveSheet.Pictures.Count > 0 Then ActiveSheet.Pictures(1).Delete
Rows(6).Hidden = True
Range("E3").FormulaR1C1 = "all"
Range("E2").ClearContents
Selection.AutoFilter Field:=2, _
Criteria1:=Range("N2")
Selection.AutoFilter Field:=1, _
Criteria1:=Range("M2")
Range("L3").ClearContents
Range("E2").Select
ActiveSheet.Protect UserInterfaceOnly:=True, Password:="XXX"
End With
End Sub
Ich bin ratlos.. ;-)
LG
Jenny
Anzeige
AW: Makro bringt Excel zum Absturz
03.04.2012 17:01:28
Rudi
Hallo,
kannst du die Mappe hochladen?
So kommen wir nicht weiter.
Gruß
Rudi
AW: Makro bringt Excel zum Absturz
03.04.2012 21:36:23
Jenny
Hallo Rudi,
da hier mehrere gleichzeitig geantwortet haben, wusste ich nicht genau, wie ich am besten zurückschreibe.
Zur Info für Dich hier noch einmal die Datei - die Erklärung steht in meiner letzen Antwort an Reinhard:
https://www.herber.de/bbs/user/79658.xlsm
LG und nochmals vielen Dank für alle Hilfe - einen schönene Abend noch,
Jenny
AW: Makro bringt Excel zum Absturz
04.04.2012 00:42:37
Jenny
Hallo an alle,
ich habe den Fehler gefunden - es lag an der With-Schleife.
Nimmt man die raus klappt alles bestens und die Shapes lassen sich dann auch mit ActiveSheet.Shapes("Shame Name").Visible = True / False wie gewünscht ein- und ausblenden.
Trotzdem vielen Dank Euch für alle Tipps !
LG
Jenny
AW: Makro bringt Excel zum Absturz
03.04.2012 17:19:05
Reinhard
Hallo Jenny,
aus Neugierde, bist du DIE Jenny, also gehören alle aktuellen Jenny-Beitragsfolgen dir oder
geistern da noch paar Jennys hier rum?
Im ersteren Fall, Respekt, da haste dir aber viel gleichzeitig vorgenommen *staun*
Leider ist es so wenn man viel gleichzeitig angeht bleibt manches auf der Strecke.
So z.B. der prozedurnamen "Reset", der ist leider schon wieder/immer noch da :-(
Und bitte bei Fehlerangaben auch die entsprechende Codezeile angeben sofern möglich.
Danke.
Gruß
Reinhard
OT @ Reinhard
03.04.2012 17:59:48
hary
Hallo Reinhard
bist du DIE Jenny, also gehören alle aktuellen Jenny-Beitragsfolgen dir

Darueber hab ich auch schon nachgedacht. Vor allem wenn man sich die Takte der Uhrzeiten betrachtet. Mit viel schlaf is nicht, dass geht wohl nur mit Red Bull. ;-)))
gruss hary
tja, uns fehlt da was oder wir haben da was zuviel
03.04.2012 18:30:25
Reinhard
Hallo Hary,
ich mein damit diese X/Y Chromosomen.
Je nach Konstellation haste täglich ein Problem und mußt dich rasieren.
Im andern Fall haste alle paar Wochen ein kleines Problemchen :-)
Der erstere Fall ist schlimm weil das täglich nervt. Im anderen Fall ist das easy,
da benutzt man irgendwas und kann sofort Radfahren, Schwimmen, Tanzen, also alles.
Und Multitaskingfähig ist "man" dann auch noch wie sich das hier andeutet.
Naja, wir zwei hatten also nicht dieses Glück *seufz*
*grien*
Gruß
Reinhard
tut dat not?
03.04.2012 20:24:57
Alice
Hallo,
Je nach Konstellation haste täglich ein Problem und mußt dich rasieren.
Dann lass die Fusseln stehen.
Hol dir gepflegt einen runter, dann is dat 'Hirn' wieder frei.
Gruß
Alice
Warum sind Frauenhirne billiger als Männerhirne?
Die sind schon gebraucht!
Interessant
03.04.2012 21:46:22
Reinhard
Hallo Alice,
netter Name *find*
Ich finde es aber auch höchst (naja, eher nicht) erstaunlich daß ich bei den Beiträgen hier
seltenst bis gar nicht den Namen Alice las. Und jetzt, wie per Zufall, taucht eine Alice am Ende
eines recht langen Threads auf. So Zufälle gibt es m.E. nicht.
Also bist du ein armseliger Zweitnick der sich nicht mal traut unter seinem Erstnick zu schreiben.
So wie . oder zu usw.
Sowas ist nicht mein Stil. Seit über 10 Jahren bin ich hier der "Reinhard", (andere reinhards tauchen
gelegentlich auch auf aber gehen auch bald wieder bzw. sie setzen noch einen Zusatz dazu *bedank*)
Insofern kann jeder hier alle meine Irrungen und Wirrungen in Bezug auf Excel und/oder Vba
mitbekommen haben.
Und wenn ich mit einem Beitrag hier nicht einverstanden bin so sage ich das als Reinhard.
DU nicht, du versteckst dich hinter deinem Zweitnick und rätst mir ich solle
"liebe an und für sich" tun/machen.
Ich habe an Hary geantwortet, von mir aus gesehen witzig, und dabei niemanden persönlich
angegriffen.
Was mich ärgert ist daß du das was dich an meinem Beitrag möglicherweise sehr stört
nicht nennst. Dazu das mit dem für mich offensichtlichen Zweitnick.
Spontan, mehr als sofort, fiel mit Brecht ein, die im Dunklen sieht man nicht...
Siehe http://de.wikipedia.org/wiki/Die_Moritat_von_Mackie_Messer
Und, du bist sowas wie ein Mann. Kann ja sein einer Frau mißfiel mein Beitrag, garantiert
hätte sie nicht diesen Gähn-Witz hinzugefügt.
Gruß
Reinhard
AW: Interessant
03.04.2012 21:55:00
Jenny
Hallo Reinhard,
...Dir ist schon klar, dass Du Deine ganzen Kommentare - für wen sie auch immer gedacht sein mögen - an mich schickst, oder ?
:-(
Jenny
AW: OT @ Reinhard
03.04.2012 20:19:01
Jenny
Hallo an alle und vielen Dank für all die Beiträge ! :-)
Ich vermutte, es gibt bestimmt noch andere Jennys hier im Forum aber Ihr habt recht, ich hatte die letzten Tage etwas mehr zu tun und dementsprechend auch mehr Fragen, als sonst. ;-)
Ich habe die Datei jetzt einmal hier hochgeladen (s.u.).
Da die Originaldatei mehrere tausend Datensätze und zudem vertrauliche Daten enthält, musste ich vorher alle Daten und Texte entfernen bzw. durch Platzhalter ersetzen - es sollte aber trotzdem funktionieren.
Normalerweise sehen alle User mit Ausnahme der Admins nur Blatt 2 und können auf die anderen nicht zugreifen - das habe ich hier geändert, damit man die volle Datei sieht. Ihr solltet damit alle vier Blätter sehen.
Die Passworte habe ich für Blatt 2 auf "XXX" und für die Admin-Makros auf "9" gesetzt.
Das Problem um das es geht, ist das Reset Sub, das über den gleichnamigen Button auf Blatt 2 gestartet wird und eigentlich auch die zwei Option Buttons auf dem gleichen Blatt ausblenden bzw. unsichtbar machen sollte.
https://www.herber.de/bbs/user/79654.xlsm
Ich hoffe, es hilft Euch weiter ! Bitte meldet Euch einfach, wenn Fragen aufkommen. :-)
LG und vielen Dank nochmal an alle,
Jenny
AW: OT @ Reinhard
03.04.2012 20:22:58
Jenny
...sorry, ich hatte in der Eile vergessen, das Passwort für die Entwicklerumgebung zu entfernen - daher hier die gleiche Datei noch einmal ohne dieses. ;-)
https://www.herber.de/bbs/user/79655.xlsm
LG,
Jenny
AW: Makro bringt Excel zum Absturz
04.04.2012 00:42:20
Jenny
Hallo an alle,
ich habe den Fehler gefunden - es lag an der With-Schleife.
Nimmt man die raus klappt alles bestens und die Shapes lassen sich dann auch mit ActiveSheet.Shapes("Shame Name").Visible = True / False wie gewünscht ein- und ausblenden.
Trotzdem vielen Dank Euch für alle Tipps !
LG
Jenny

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige