Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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

Kleiner Fehler im VBA Code

Kleiner Fehler im VBA Code
07.11.2019 11:12:35
End
Hallo Zusammen,
ich hab folgendes Problem. Ich möchte Bei Öffnen der Arbeitsmappe den Blattschutz aufheben, das Makro ausführen und das Blatt wieder schützen. Alles funktioniert bestens bis die die Zeile "Protect" dazu kommt. Er sperrt das Blatt zwar wieder, aber der Code läuft nicht mehr. Hat jemand ne Ahnung woran es liegt ? Dankeschön ;)
Private Sub Workbook_Open()
Worksheets("Daten").Unprotect "250585"
Dim C As Object
Sheets(1).Range("M8").Select
For Each C In Selection
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Next C
Worksheets("Daten").Protect "250585"
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kleiner Fehler im VBA Code
07.11.2019 11:27:05
EtoPHG
Hallo,
Zitat:Er sperrt das Blatt zwar wieder, aber der Code läuft nicht mehr.
Welcher Code? Nach Protect ist der Code ja fertig!
Gruess Hansueli
Sheets(1) oder Sheets("Daten") neu berechnen ?
07.11.2019 11:35:12
NoNet
Hallo End,
was soll das Ganze denn bewirken ? - Eine Neuberechnung der Zelle M8 ?
Der Code entsperrt zunächst das Blatt "Daten", editiert dann die Zelle M8 auf dem ersten Blatt und sperrt danach das Blatt "Daten" wieder. Ist das so gewollt ? - Ist das Blatt "Daten" das erste Blatt ?
Du könntest auch einfach das Blatt "Daten" neu berechnen lassen :
WorkSheets("Daten").Calculate
Salut, NoNet

Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum

Exceltreffen 12.-14.06.2020 in Freiberg/Sachsen

http://www.exceltreffen.de/index.php?page=291


Anmeldungen sind noch bis 31.03.2020 möglich ! - Schau doch mal rein !


Anzeige
AW: Sheets(1) oder Sheets("Daten") neu berechnen ?
07.11.2019 11:51:22
End
Hi, alles was du schreibst ist genau richtig. Entsperrt, berechnet die Zelle neu, sperrt wieder. Aber das neu berechnen klappt nicht wenn die Protect Zeile drin ist ?!
AW: Sheets(1) oder Sheets("Daten") neu berechnen ?
07.11.2019 12:38:57
End
"Du könntest auch einfach das Blatt "Daten" neu berechnen lassen :
WorkSheets("Daten").Calculate"
Aber auch da müsste der Blattschutz kurz aufgehoben werden. Ich weiß der Code ist nicht super, ich kenn mich auch nicht wirklich gut aus im VBA Thema, aber er läuft. Also Das neuberechnen der Zelle M8 zumindest :D
AW: Kleiner Fehler im VBA Code
07.11.2019 11:39:24
Piet
Hallo
mir faellt noch eine "Kleinigkeit" an deinem Code auf, was ggf. schweren Aerger bringen könnte!
Worksheets("Daten").Unprotect "250585" - Vor der For Next Schleife steht: Sheets(1).Select
Sind Sheets(1) und Worksheets("Daten") identisch? Wenn Nein warum dann Protect und Unprotect?
Weiterhin faellt mir eine For Next Schleife über Selection auf, es ist aber nur eine Zelle selektiert! Warum macht man dann eine For Next Schleife? Alles irgendwie technisch nicht 100% logisch ....
mfg Piet
Anzeige
AW: Kleiner Fehler im VBA Code
07.11.2019 11:55:25
Daniel
Hi
mal unabhängig von der Sinnhaftigkeit dieses Codes, welche ja schon angesprochen wurde:
bei Makros im Workbooks.Open-Event hat man generell das Problem, dass der Prozess des Öffnens der Datei noch nicht vollständig abgeschlossen ist, wenn das Makro läuft.
das kann dann bei manchen Aktionen zu Problemen führen.
in diesem Fall kann man das Problem lösen, in dem man den auszuführenden Code in ein Makro in einem allgemeinen Modul schreibt und dann dieses Makro aus dem Workbook-Open-Event heraus mit Application.OnTime aufruft.
Per Application.Ontime gestartete Makros laufen immer erst dann los, wenn alle laufenden Prozesse abgeschlossen sind, so dass solche Konflikte dann nicht auftreten.
Gruß Daniel
Anzeige
AW: Kleiner Fehler im VBA Code
07.11.2019 12:36:39
End
Ich bin leider nicht al zu gut im VBA Thema. Wie müsste es denn aussehen damit es evtl funktioniert ?
AW: Kleiner Fehler im VBA Code
07.11.2019 13:55:57
Daniel
HI
das Application.Ontime würde so ausssehen:
im Modul DieseArbeitsmappe
Private Sub Workbook_Open()
Application.Ontime Now, "DeinMakro"
End Sub
im Modul "Modul1"
Public Sub DeinMakro()
Worksheets("Daten").Unprotect "250585"
Dim C As Object
Sheets(1).Range("M8").Select
For Each C In Selection
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Next C
Worksheets("Daten").Protect "250585"
End Sub
Gruß Daniel
Anzeige
AW: Kleiner Fehler im VBA Code
08.11.2019 06:31:19
End
Guten Morgen,
genau wie vorher auch funktioniert alles bis die Zeile
Worksheets("Daten").Protect "250585"
dazu kommt ! Ich versteh das nicht.
AW: Kleiner Fehler im VBA Code
08.11.2019 10:18:35
Daniel
Hi
sorry, kann ich nichts zu sagen.
bei mir funktioniert das Makro.
auch mit dieser Zeile.
Gruß Daniel
AW: Kleiner Fehler im VBA Code
08.11.2019 12:42:18
Piet
Hallo
stimmt denn dein Sheet "Daten", gibt es da kein versehentliches Space vorne oder am Ende?
Mein letzter Vorschlag, der manchmal geholfen hat, den ich aber Technisch NICHT erklaeren kann. Kopiere bitte mal mit Ctrl C den Namen der Tabelle "Daten", und füge ihn mit Ctrl V in den Code ein! Hört sich verrückt an dass das helfen kann, habe ich in der Praxis aber schon erlebt.
Erklaeren warum er danach lief konnte ich nicht.Da zuckt man nach 20 Jahren Programmieren nur die Schultern und sagt: - "iss einfach so"! Haben fertig ...
mfg Piet
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige