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

Fehlermeldung zu Makro in Excel 2007

Fehlermeldung zu Makro in Excel 2007
26.02.2009 11:47:41
Glen
Hallo Ihr Lieben
Habe folgenden Code der bis anhin einwandfrei auf Excel 2000 funktionierte. Nun bei der V.2007 erscheint der Fehler (Fehler beim Kompilieren. Variable nicht definiert) und markiert jeweils die Stelle (Antwort =) im Code.
Kann mir bitte jemand helfen und sagen was dagegen getan werden kann?
Hier die Makros um den Blattschutz für alle Mappen ein.- u. auszuschalten:

Sub Blattschutz_ein()
Antwort = MsgBox("Wollen Sie alle Mappen schützen?", vbYesNo + vbQuestion, "Empfehlung zum  _
aktivieren des Blattschutz")
If Antwort = vbNo Then
Exit Sub
End If
Dim TB As Variant
Application.ScreenUpdating = False
For Each TB In ActiveWorkbook.Sheets
TB.Protect Password:=""
TB.EnableSelection = xlSelection
Next
MsgBox "Alle Mappen der Tabelle sind nun geschützt!", 48 + 0, "Blattschutz aktiviert"
End Sub



Sub Blattschutz_aus()
Antwort = MsgBox("Schutz bei allen Mappen aufheben?", vbYesNo + vbQuestion, "Deaktivieren vom   _
_
Blattschutz")
If Antwort = vbNo Then
Exit Sub
End If
Dim TB As Variant
Application.ScreenUpdating = False
For Each TB In ActiveWorkbook.Sheets
TB.Unprotect Password:=""
TB.EnableSelection = xlSelection
Next
MsgBox "Alle Mappen der Tabelle sind nun offen!", 48 + 0, "Blattschutz deaktiviert"
End Sub


Tausend Dank im voraus an alle Helfer.
Grüsse, Glen

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung zu Makro in Excel 2007
26.02.2009 11:51:02
Ramses
Hallo
"...Fehler beim Kompilieren. Variable nicht definiert..."
Dann ist doch der Fehler eigentlich klar,... oder ?
Sub Blattschutz_aus()
Dim Antwort As Variant
Antwort = MsgBox("Schutz bei allen Mappen aufheben?", vbYesNo + vbQuestion, "Deaktivieren vom _
_
Gruss Rainer
AW: Fehlermeldung zu Makro in Excel 2007
26.02.2009 13:09:32
Glen
Hallo Rainer
Danke für den Tip! Habe das wie folgt ergänzt. Leider tutets noch immer nicht. Bezüglich klar.....ist mir bei VBA so gut wie nichts "nur Makrorecorder Bastler" und sobald das tiefer geht ist Ende Gelände.
Habe mal eben Die Funktion (ohne deine Ergänzung) im ursprünglichen Sheet getestet und da läuft alles prima!?

Sub Blattschutz_aus()
Dim Antwort As Variant
Antwort = MsgBox("Schutz bei allen Mappen aufheben?", vbYesNo + vbQuestion, "Deaktivieren vom  _
Blattschutz")
If Antwort = vbNo Then
Exit Sub
End If
Dim TB As Variant
Application.ScreenUpdating = False
For Each TB In ActiveWorkbook.Sheets
TB.Unprotect Password:=""
TB.EnableSelection = xlSelection
Next
MsgBox "Alle Mappen der Tabelle sind nun offen!", 48 + 0, "Blattschutz deaktiviert"
End Sub


Gruss, Glen

Anzeige
AW: Fehlermeldung zu Makro in Excel 2007
26.02.2009 11:52:01
harry
Hallo Glen,
Du hast wahrscheinlich in Deinem neuen Excel die Option "Variablendeklaration erforderlich"
gesetzt, das erkennst Du an dem "Option Explicit" ganz oben im Modul.
Wenn das so ist musst Du jede Variable mit "Dim Antwort as String" explizit definieren
sonst gibt es den beschriebenen Fehler.
Also entweder Variablen definieren oder Option unter Extras-Optionen ausschalten
ich rate Dir aber zur sauberen Deklaration Deiner Variablen
Gruß
harry
AW: Fehlermeldung zu Makro in Excel 2007
26.02.2009 13:13:16
Glen
Hallo Harry
Die Option ist nicht aktiviert. Option Explicit steht - wie du sagst ganz oben im Code jedoch drin. Habe den Code mit "Dim Antwort as String" ergänzt (siehe Code bei Antwort an Rainer) aber es läuft trotzdem nicht.
Danke für deine Unterstützung bis hierhin und Grüsse, Glen
Anzeige
AW: Fehlermeldung zu Makro in Excel 2007
26.02.2009 13:16:48
harry
Hallo Glen,
dann entferne das option explicit doch mal
oder definiere alle Variablen, die im Code vorkommen
Gruß
harry
Eigenartige empfelung!
26.02.2009 13:20:32
Josef
Hallo Harry,
"dann entferne das option explicit doch mal"
findest du nicht, das es Sinnvoller ist, einen Anfänger dazu zu bringen, Variablen sauber zu deklarieren.
Viele Fehler würden gar nicht auftauchen, wenn die Newbies sich nur ein Wenig mit den Grundlagen beschäftigen würden, und das steht die Variablendeklaration an erster Stelle.
Gruß Sepp

AW: Eigenartige empfelung!
26.02.2009 13:36:33
Glen
Hallo Sepp
Nun grundsätzlich hast du bestimmt recht, aber ich bin immer sehr dankbar für relativ rasche Lösungen. Das ist doch hier genau die Plattform für sowas.
Ich habe mir schon sehr viel aus der Recherche zusammenbasteln können und als unerfahrener VBA'ler alleine zum laufen bekommen.
Wenn nichts mehr geht komme ich ins Forum und freue mich immer wieder über die Unterstützung.
Euch allen dreien einen lieben Gruss, Glen
Anzeige
AW: Eigenartige empfelung!
26.02.2009 14:30:10
harry
Hallo Sepp,
natürlich hast Du recht, aber wenn Du mal ein paar Antworten früher nachliest
habe ich dem Fragestellenden dort die Deklaration der Variablen empfohlen.
Und ich muß zugeben, wenn's mal schnell gehen muß, bin ich auch manchmal schlampig
Gruß
harry
AW: Eigenartige empfelung!
26.02.2009 14:39:31
Ramses
Hallo
"...Und ich muß zugeben, wenn's mal schnell gehen muß, bin ich auch manchmal schlampig.."
Da kann ich nur auch meine Antwort an Glen "Option Explicit" verweisen.
Gruss Rainer
AW: Fehlermeldung zu Makro in Excel 2007
26.02.2009 13:26:08
Glen
Hallo und vielen Dank Harry für die rasche Antwort
Es funktioniert. Super!
Ist jetzt das aber nicht "unsauber"?
Gruss, Glen
Anzeige
Wie bitte...?
26.02.2009 13:56:10
Ramses
Hallo
"...Es funktioniert. Super!..."
Das gibt's doch gar nicht.
TB.EnableSelection = xlSelection
Diese Anweisung gibt es im ganzen EXCEL nicht.
Es gibt nur
xlNoRestriction
xlUnlockedCells
xlNoSelection
Wie bitte soll das nun funktionieren ?
Ausserdem funktioniert das Makro mit
Dim Antwort As Variant
und statt xlselection mit xlnorestriction einwandfrei
Gruss Rainer
Gruss Rainer
AW: Wie bitte...?
26.02.2009 14:21:54
Glen
Hallo Rainer
Ich kann dazu nur sagen, dass der Schutz in allen Mappen aktiviert wird und die gesperrten Zellen auch korrekt geschützt werden resp. entschützt.
Verstehen tu ich die Ausdrücke wie gesagt gar nicht.
Gruss, Glen
Anzeige
Option Explicit !!!
26.02.2009 14:36:30
Ramses
Hallo
Ich glaube das nicht.
Wenn "Option Explicit" gesetzt ist, dann startet der VBA-Compiler noch nicht mal sondern meckert, dass die Variable "xlselection" nicht definiert ist.
Soweit zu der sauberen Programmierung mir Variablen Deklaration
Gruss Rainer
AW: Option Explicit !!!
26.02.2009 14:40:21
Glen
Hallo Rainer
"Option Explicit" ist ja eben nicht gesetzt. Ich habe die "schmutzige" Lösung von Harry übernommen.
Grüsse, Glen
Du lernst es nicht....
26.02.2009 14:45:14
Ramses
Hallo
Dann streich die Zeile weil sinnlos.
Gruss Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige