Anzeige
Archiv - Navigation
780to784
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
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ein strukturelles Problem, was kommt wann

Ein strukturelles Problem, was kommt wann
10.07.2006 21:40:47
Peter
Guten Abend
Ich habe in meinem nachfolgenden Code ein strukturelles Problem, das ich nicht auf die Schnelle lösen kann und zwar läuft der Code bei
Select Case Sheet.Name
nicht mehr weiter.
Kann mir jemand sagen, wo das Problem liegt, resp. wie dieses zu lösen ist?
Danke, Peter

Sub Eingabeschutz()
Dim aBook As Workbook
Dim aSheet As Worksheet
Dim Sheet As Worksheet
Dim zNr As Long
Dim lrow As Long
Set aBook = ThisWorkbook
Set aSheet = aBook.ActiveSheet
Select Case Sheet.Name
Case "Verwendung", "Veränderung", "Übersicht", "Vermögen", "Anteile", "Erfolg"
With aSheet
Cells.Locked = False
lrow = aSheet.Range("k:m").SpecialCells(xlLastCell).Row
zNr = 1
Do While zNr <= lrow
If .Cells(zNr, 28) <> "" Then .Cells(zNr, 6).Locked = False
If .Cells(zNr, 29) <> "" Then .Cells(zNr, 8).Locked = False
If .Cells(zNr, 30) <> "" Then .Cells(zNr, 10).Locked = False
zNr = zNr + 1
Loop
End With
End Select
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein strukturelles Problem, was kommt wann
10.07.2006 22:03:50
Josef
Hallo Peter!
Da hast du einiges untereinander geschüttelt;-)
Sub Eingabeschutz()
Dim lngRow As Long, lngLast As Long


With ThisWorkbook.ActiveSheet
  Select Case .Name
    Case "Verwendung", "Veränderung", "Übersicht", "Vermögen", "Anteile", "Erfolg"
      .Cells.Locked = False
      lngLast = .Range("k:m").SpecialCells(xlLastCell).Row
      For lngRow = 1 To lngLast
        .Cells(lngRow, 6).Locked = .Cells(lngRow, 28) = ""
        .Cells(lngRow, 8).Locked = .Cells(lngRow, 29) = ""
        .Cells(lngRow, 10).Locked = .Cells(lngRow, 30) = ""
      Next
    Case Else
  End Select
End With

End Sub


Gruß Sepp

Anzeige
AW: Ein strukturelles Problem, was kommt wann
10.07.2006 22:52:09
Peter
Hallo Sepp
Vielen Dank für die Entwirrung. Sehr lehrreich!
Irgend etwas scheint mir noch nicht i.O.
Die Zellen der in Case erwähnten Tabellen müssen grundsätzlich mit dem Zellschutz belegt sein.
Nur die Felder in Spalte F resp. H, resp. J dürfen keinen Schreibschutz haben, wenn in Spalten AB, resp. AC resp. AD ein Eintrag drin ist.
Müsse nicht deshalb im Code stehen:
.Cells.Locked = True (statt = False) und
und bei der Do While Bedingung müsste das Gegenteil von "Locked" stehen (ich probierte mit "unlocked", aber "unlocked" scheint nicht richtig.
Danke für Feedback
Peter
Anzeige
AW: Ein strukturelles Problem, was kommt wann
10.07.2006 23:13:55
Josef
Hallo Peter!
Das ".Locked = False" hab ich ja von dir übernommen.
Ich weis ja nicht was du vorhast. (Stichwort "Glaskugel");-)
Stell es einfach um auf "True".

.Cells(lngRow, 6).Locked = .Cells(lngRow, 28) = ""

Bewirkt, daß die entsprechende Zelle nicht gesperrt ist, wenn in Spalte "AB" ein Eintrag vorhanden ist, weil " .Cells(lngRow, 28) = "" " False ergibt.
"Locked" brauchst du nicht Umdrehen, sondern nur True/False setzen!
Gruß Sepp

AW: Ein strukturelles Problem, was kommt wann
10.07.2006 23:47:14
Peter
Hallo Sepp
Ich lerne eine Menge. Vielleicht habe ich noch ein weiteres Missverständnis kreiert. Die Namen im Case sind Bezeichnungen von Worksheets.
Kann es sein, dass diese wegen ".activeSheet" nicht alle abgearbeitet werden?
Gruss
Peter
With ThisWorkbook.ActiveSheet
Select Case .Name
Case "Übersicht", "Vermögen", "Veränderung", "Anteile", "Erfolg", "Verwendung"
Anzeige
AW: Ein strukturelles Problem, was kommt wann
11.07.2006 08:00:49
Mustafa
Hallo Peter,
habe den Code von dir und Josef mal angepasst.
So sollte es eigentlich funktionieren.

Sub Eingabeschutz()
Dim lngRow As Long, lngLast As Long
Dim Wks As Worksheet
For Each Wks In ThisWorkbook.Worksheets
Select Case Wks.Name
Case "Verwendung", "Veränderung", "Übersicht", "Vermögen", "Anteile", "Erfolg"
Wks.Cells.Locked = False
lngLast = .Range("k:m").SpecialCells(xlLastCell).Row
For lngRow = 1 To lngLast
Wks.Cells(lngRow, 6).Locked = .Cells(lngRow, 28) = ""
Wks.Cells(lngRow, 8).Locked = .Cells(lngRow, 29) = ""
Wks.Cells(lngRow, 10).Locked = .Cells(lngRow, 30) = ""
Next
Case Else
End Select
Next
End Sub

Viele Grüße aus Köln
Anzeige
Kleine Änderung
11.07.2006 08:11:19
Mustafa
Hallo Peter,
ich war wieder mal zu voreilig.
nimm diesen Code der andere wird nicht Funktionieren weil da ein Paar Anweisungen fehlerhaft sind.

Sub Eingabeschutz()
Dim lngRow As Long, lngLast As Long
Dim Wks As Worksheet
For Each Wks In ThisWorkbook.Worksheets
Select Case Wks.Name
Case "Verwendung", "Veränderung", "Übersicht", "Vermögen", "Anteile", "Erfolg"
Wks.Cells.Locked = False
lngLast = Wks.Range("k:m").SpecialCells(xlLastCell).Row
For lngRow = 1 To lngLast
Wks.Cells(lngRow, 6).Locked = Wks.Cells(lngRow, 28) = ""
Wks.Cells(lngRow, 8).Locked = Wks.Cells(lngRow, 29) = ""
Wks.Cells(lngRow, 10).Locked = Wks.Cells(lngRow, 30) = ""
Next
Case Else
End Select
Next
End Sub

Rückmeldung wäre nett.
Viele Grüße aus Köln
Anzeige
Und noch ein zusatz.
11.07.2006 08:18:26
Mustafa
Ich glaube heute lass ich das mit den Antworten lieber. :)
Wenn ich dich jetzt richtig verstanden habe, dann sollen nur die Zellen entsperrt werden die resp. zu der anderen Zelle einen Eintrag haben.
Dann sollte das Locked = True sein.
Also so :

Sub Eingabeschutz()
Dim lngRow As Long, lngLast As Long
Dim Wks As Worksheet
For Each Wks In ThisWorkbook.Worksheets
Select Case Wks.Name
Case "Verwendung", "Veränderung", "Übersicht", "Vermögen", "Anteile", "Erfolg"
Wks.Cells.Locked = True
lngLast = Wks.Range("k:m").SpecialCells(xlLastCell).Row
For lngRow = 1 To lngLast
Wks.Cells(lngRow, 6).Locked = Wks.Cells(lngRow, 28) = ""
Wks.Cells(lngRow, 8).Locked = Wks.Cells(lngRow, 29) = ""
Wks.Cells(lngRow, 10).Locked = Wks.Cells(lngRow, 30) = ""
Next
Case Else
End Select
Next
End Sub

Viele Grüße aus Köln
Anzeige
AW: Und noch ein zusatz.
11.07.2006 08:29:15
Peter
Hallo Mustafa
Lass das Antworten auf keinen Fall!
Du hast mir schon mit der ersten Antwort sehr weitergeholfen. Da die Kontrollstrukturen (sagt man dem so?) richtig sind, habe ich deine Nachträge auch noch herausgefunden und wollte dir soeben mein Feedback geben.
Herzlichen Dank für den Support!
Peter
zur Zeit in Basel
Freut mich das ich helfen konnte
11.07.2006 08:38:24
Mustafa
Danke für die Rückmeldung und viel spaß beim Excellen :)
Viele Grüße aus Köln.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige