Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Codefehler in UF ?

Codefehler in UF ?
12.05.2007 20:56:03
Dirk N.

Hallo an alle Ex(cel)perten,
In der UserForm1 benutze ich bisher folgenden Code, der prima funktioniert
(die CheckBox1 befindet sich im Sheet 'Tipps'):


Private Sub CheckBox1_Click()   'für Runde / Tour  1 / A
Application.ScreenUpdating = False
If pboSchalter = True Then
pboSchalter = False
Exit Sub
End If
With ThisWorkbook
If .Sheets("Plang").Columns("C:C").EntireColumn.Hidden = True Then
If .Sheets("Plang").ProtectContents = True Then
.Sheets("Plang").Unprotect ("123")
.Sheets("Plang").Columns("C:F").EntireColumn.Hidden = False
.Sheets("Plang").Protect ("123")
Else
.Sheets("Plang").Columns("C:F").EntireColumn.Hidden = False
End If
If .Sheets("Meldg").ProtectContents = True Then
.Sheets("Meldg").Unprotect ("123")
.Sheets("Meldg").Columns("C:F").EntireColumn.Hidden = False
.Sheets("Meldg").Rows("71:71").EntireRow.Hidden = False
.Sheets("Meldg").Cells(6, 37) = "aktiv" '37=Spalte AK     ********
.Sheets("Meldg").Protect ("123")
Else
.Sheets("Meldg").Columns("C:F").EntireColumn.Hidden = False
.Sheets("Meldg").Rows("71:71").EntireRow.Hidden = False
End If
Else
If .Sheets("Plang").ProtectContents = True Then
.Sheets("Plang").Unprotect ("123")
.Sheets("Plang").Columns("C:F").EntireColumn.Hidden = True
.Sheets("Plang").Protect ("123")
Else
.Sheets("Plang").Columns("C:F").EntireColumn.Hidden = True
End If
If .Sheets("Meldg").ProtectContents = True Then
.Sheets("Meldg").Unprotect ("123")
.Sheets("Meldg").Columns("C:F").EntireColumn.Hidden = True
.Sheets("Meldg").Rows("71:71").EntireRow.Hidden = True
.Sheets("Meldg").Cells(6, 37) = "inaktiv" '37=Spalte AK
.Sheets("Meldg").Protect ("123")
Else
.Sheets("Meldg").Columns("C:F").EntireColumn.Hidden = True
.Sheets("Meldg").Rows("71:71").EntireRow.Hidden = True
End If
End If
End With
Application.ScreenUpdating = True
End Sub


Im Sheet 'Meldg' habe ich nun folgenden Code hinzugefügt:


Private Sub Worksheet_Activate()
If Range("am6") = 1 Then
MsgBox ("Der Eingabebereich der Runde 1 ist nicht leer. Bitte Einträge löschen!")
UserForm1.Show    '?????????????
End If
End Sub


Aktiviere ich nun das Sheet 'Meldg' wird ggf. die UF1 gezeigt.
Ändere ich dann die CheckBox1 erscheint die Fehlermeldung *Laufzeitfehler 1004" mit dem Sprung zu der Zeile ******.
Wo liegt mein Fehler?

MfG Dirk

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Codefehler in UF ?
13.05.2007 09:14:33
schauan
Hallo Dirk,
was kommt denn noch zur 1004? Was steht denn vorher in der Zelle? Was passiert wenn man mal diesen Teil als Extra-Makro laufen läässt? Was passiert wenn man manuell aktiv reinschreibt - dazu einfach mal einen Haltepunkt in die Zeile setzen und dann zu Excel wechseln.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

AW: Codefehler in UF ?
13.05.2007 09:46:33
Herby
Hallo Dirk,
anhand des Makros kann ich einen Fehler nicht erkennen, vielleicht hilfts wenn Du eine Mustermappe mit dem Problem uploadest.
Kann es sein, dass die Zelle geschützt ist, wenn die betreffende Zeile ausgeführt werden soll ?
Was passiert wenn Du anstatt
.Sheets("Meldg").Cells(6, 37) = "aktiv" '37=Spalte AK
.Worksheets("Meldg").range("AK6").value="aktiv" verwendest ?
Es ist halt ein Stochern im Nebel, wenn man den Fehler nicht nachvollziehen kann. Bei meinem unvollständigen Versuch kam keine Fehlermeldung.
Viele Grüße
Herby

Anzeige
AW: Codefehler in UF ?
13.05.2007 17:38:41
schauan
Hallo Dirk,
zum alten Problem:
If .Sheets("Plang").ProtectContents = True Then
.Sheets("Plang").Unprotect ("123")
Hier steckt wohl das Problem. Die Frage ist nur, wieso kein Fehler kommt wenn der Blattschutz nicht deaktiviert wird. On Error Resume Next hast Du im geposteten code nicht drin. Und wenn das Passwort nicht korrekt ist kommt der Fehler 1004 schon dort...
Zum Bildchen:
Ich habe per html-code einen Link auf ein Bildchen. Selbiges kannst DU entweder hier bei Herber hinterlegen oder falls Du eine WebSite hast dann dort. Wennn Du den HTML-Code sehen willst dann schaue einfach mal in den Quelltext, suche dort nach "a-schau.de" und da steht er in einer Zeile.
Das Bild ist ein animiertes Gif mit tranparentem Hintergund, dazu gibt es einiges an Free- und Shareware - sogar bei Microsoft. Es geht auch Paint Shop Pro, da ist so was bis Version 9 enthalten und ab der 10 kostet's extra, oder der Picture Publisher, oder ... Bei mir ist die Tasse mit drauf als Sharewarehinweis vom coffecup animator.
Bischen aufpassen muss man nur am Ende, damit man dass Layout für die nächsten Antworten nicht durcheinander bringt.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Anzeige
AW: Codefehler in UF ?
13.05.2007 13:27:08
Dirk N.
Hallo André, hallo Herby,
habe nun getestet wie ein Maikäfer, mit folgendem Resultat:
was kommt denn noch zur 1004 ? :
Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler
.Worksheets("Meldg").range("AK6").value="aktiv" : hat leider auch nix gebracht
Aber:


Kann es sein, dass die Zelle geschützt ist, wenn die betreffende Zeile ausgeführt werden soll ?

führte zum Erfolg...
Ich entfernte den Haken bei "gesperrt" u. nun funzt es bestens!
Zusätzlich änderte ich auch noch zu: .Sheets("Meldg").range("AK6") ="aktiv"
Und das funzt auch noch (u. ist übersichtlicher als meine alte Variante)...
Also Herby, die letzte Inspektion deiner Glaskugel war ihr Geld wert... ;-)
Ich danke euch beiden für eure Hilfe (allein wäre ich wohl NIE weitergekommen) u. wünsche noch einen wunderschönen Sonntag !
MfG Dirk
P.S.: @André: Schade, daß du nicht zum "Verräter" geworden bist - Gestaltung der letzten Zeilen in deinen posts... Meine mail-Adresse hast du?

Anzeige
Zusatzfrage
13.05.2007 16:49:46
Dirk N.
Hallo nochmal,
ich versuche verzweifelt in das eingangs benannte UserForm einen CommandButton einzubauen (caption: Übernehmen), der genau das gleiche bewirkt wie das "X" rechts oben zum Schliessen des UF.
Meine Versuche mit CLOSE od. UNLOAD.ME im CB-Code sind leider fehlgeschlagen...
Hängt das evtl. mit dem pboSchalter zusammen (den ich aber unbedingt brauche)?
Oder gibt es keinen äquivalenten Befehl zum "X" ?
Dieses Problem ist zwar nicht lebenswichtig - also eher eine Schönheits-OP - aber jetzt habe ich mich "verbissen"...
MfG Dirk

AW: Zusatzfrage
13.05.2007 17:59:01
schauan
Hallo Dirk,
hast Du den pbo-Schalter auch in dem CommandButton-Code drin? Ansonsten ist doch egal wo der steht, dann hat er nichts mit dem Makro zu tun.
UNLOAD ME wäre richtig - bitte ohne Punkt.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Anzeige
Zusatzfrage
13.05.2007 19:44:32
Dirk N.
Hallo André,
zum alten Problem:
Tja, das erschließt sich mir als VBA-Laie leider überhaupt nicht.
On Error Resume Next habe ich auch in meinem Originalcode nicht zu stehen u. kenne dessen Bedeutung leider auch nicht...
Aber Herbys Tipp hat bereits geholfen...
zum Bildchen:
Da ich von HTML wohl noch weniger Ahnung habe als von VBA ( also: WENN(VBA=0;HTML="minus Null";"EXCEL halbwegs")- u. dies eigentlich auch nicht in ein EXCEL-Forum gehört ;-) - gab ich dir meine mail Adresse (di-ne@web.de).
Ich plane in der nächsten Zukunft ohnehin die Erstellung einer kl. privaten HP (hobbymäßig) u. wir können uns via Mail gern erste Infos dazu austauschen (natürlich auch ggf. finanziell einigen...).
Wennn Du den HTML-Code sehen willst dann schaue einfach mal in den Quelltext... - wie od. wo geht denn DAS ???
Zwar hatte ich hier in Herbers-Forum schonmal eine Art Eingabeformular (für IE6) hinterlegt, aber nach der Erneuerung konnte ich es nicht mehr verwenden.
Und leider finde ich jetzt nicht mehr die Anleitung dazu oder gibt es diese(s) Feature/Anleitung nun nicht mehr??
zur Zusatzfrage:
Bitte nicht Lachen (nur Schmunzeln...;-) ), aber ich versuchte es
mit dem Befehl UserForm1.Unload.Me in sämtlichen Variationen.
Doch einfach nur: UNLOAD ME wäre richtig - bitte ohne Punkt. funktioniert wie gewünscht.
Besten Dank für deine Hilfe u. EngelsGeduld !!!
ciao Dirk
P.S.: Melde dich doch bitte bei Interesse mal per e-mail.

Anzeige
AW: Zusatzfrage
13.05.2007 20:02:00
schauan
Hallo Dirk,
On Error Resume Next - da wird bei einem Fehler einfach mit der nächsten Zeile weitergemacht - meistens jedenfalls.
In Deinem code hebst Du den Schutz auf:
.Sheets("Meldg").Unprotect ("123")
und in der Lösung heist es, dass Ihr den Schutz manuell aufgehoben habt und es dann ging. Dann müsste es auch im Programm gehen. Daher auch mein Ansatz mit dem Haltepunkt und anschliessenden Versuch, da manuell aktiv einzutragen.
im IE einfach mit der rechten Maustaste auf den Beitrag klicken - da steht im Kontextmenü Quelltext.
Deine Adresse steht erst mal bei meinen Kontakten, ein mail mit dem script ist unterwegs.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige