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

Bereich per VBA entsperren......Bitte Hilfe

Bereich per VBA entsperren......Bitte Hilfe
Peter
Hallo Exceller + innen,
in Abhängigkeit eines Zellwertes werden mit String F die Zellen des Bereiches entsperrt; mit Hilfe von String G alle gesperrt; und mit Hilfe von String D sollen die ausgefüllten Zellen des Bereiches gesperrt bleiben, die leeren Zellen entsperrt werden...Bitte um Eure Hilfe (also für String D, die anderen beiden klappen vorzüglich:
Dim F As String
F = Sheets("Tabelle1").[C8].Value
If F = "100" Then
With Sheets("Tabelle2")
.Unprotect Password:="JA"
.Range("A2:F150").Locked = False
End With
End If

Dim G As String
G = Sheets("Tabelle1").[C8].Value
If G = "200" Then
With Sheets("Tabelle2")
.Unprotect Password:="Ja"
.Range("A2:F150").Locked = True
.Protect Password:="Ja"
End With
End If
Dim D As String
D = Sheets("Tabelle1").[C8].Value
If D = "300" Then
With Sheets("Tabelle2")
.Unprotect Password = "Ja"
.Range("leere Zellen im Bereich A2:F150").Locked = False
.Range("ausgefüllte Zellen im Bereich A2:A150").Locked = True
.Protect Password:="Ja"
End With
End If
Vielen Dank
Peter S.
AW: Bereich per VBA entsperren
Florian
Hallo, Peter,

Sub Teilsperren()
Dim Zelle
  For Each Zelle In ActiveSheet.UsedRange
    If Zelle = "" Then
      Zelle.Locked = False
    Else
      Zelle.Locked = True
    End If
  Next Zelle
End Sub


Gruß,
Florian
Anzeige
AW: Bereich per VBA entsperren
Peter
Hallo Florian,
habe Deinen Code wie folgt eingebaut
Dim D As String
D = Sheets("Tabelle1").[C8].Value
If D = "300" Then
With Sheets("Tabelle2").[A2:F150]
.Unprotect Password = "Ja"
Dim Cells
For Each Cells In Sheets("Tabelle2").UsedRange
If Cells = "" Then
Cells.Locked = False
Else
Cells.Locked = True
End If
Next Cells
.Protect Password:="Ja"
End With
End If
Aber das will so nicht...was ist nicht richtig?
Danke
Peter S.
AW: Bereich per VBA entsperren
K.Rola
Hallo,
verwende nie Excelbegriffe als Variable(bei dir Cells):
Option Explicit

Sub Schutz()
Dim D As String, Zelle As Range
D = Sheets("Tabelle1").[C8].Value
If D = "300" Then
With Sheets("Tabelle2")
.Unprotect Password:="Ja"
.[A2:F150].Locked = False
For Each Zelle In .[A2:F150]
If Zelle <> "" Then Zelle.Locked = True
Next
.Protect Password:="Ja"
End With
End If
End Sub

Gruß K.Rola
Anzeige
AW: Bereich per VBA entsperren
Peter
Hallo K.Rola
zunächst mal viele Dank für Denen Hinweis (kleines 1x1 des VBA)....
Jetzt bringt er zwar keine Fehlermeldung mehr aber entsperrt die leeren Zellen trotzdem nicht?
wieso?
Peter S.
AW: Bereich per VBA entsperren
K.Rola
Hallo,
das ist eigentlich nicht möglich, weil die Zellen mit der Anweisung
.[A2:F150].Locked = False auf jeden fall erstmal entsperrt werden.
Da muss ein anderer Haken sein, ggf. sind die Zellen nicht leer,
enhalten vielleicht Formeln?
Lad die Mappe doch mal hoch.
Gruß K.Rola
AW: Bereich per VBA entsperren
Peter
Hallo K.Rola
ich möchte die Mappe zum Server senden
Geht aber nicht....sagt immer unzulässiges Format...nur Jpg oder gif möglich?
Peter S.
Anzeige
AW: Bereich per VBA entsperren
K.Rola
Hallo,
lies dir mal durch, was da steht, es dürfen nur bestimmte Dateien
sein, *.xls sind aber möglich. Der Dateiname darf keine Leerzeichen enthalten.
Du kannst die datei ggf. auch zuvor zippen.
Gruß K.Rola
AW: Bereich per VBA entsperren
Peter
Hier ist sie .....petersmappe.xls
AW: Bereich per VBA entsperren
Peter
geht net?...ich hab sie getauf petersmappe.xls ...nimmt er net an
AW: Bereich per VBA entsperren
Florian
Hallo, Peter,
nenne die Mappe "c:\peter.xls", trage diesen namen in das Feld ein und klicke auf "Datei zum Server. Anschließend markierst Du den Link mit der Maus und drückst Strg + c zum Kopieren. Danach schreibst Du eine Antwort und fügst den Link mit Strg + v im den Antworttext ein.
Gruß,
Florian
Anzeige
AW: Bereich per VBA entsperren
Florian
Hallo, Peter,
Mir war so, als wolltest Du mit Tastenkombinationen arbeiten.
Schreibe uns doch bitte einmal detailliert, was Deine Tabelle leisten soll.
Gruß,
Florian
AW: Bereich per VBA entsperren
Peter
Also Florian,
bei "C8 = 100 ... CmdButton1 .... es erscheint die Eingabemaske; alle Felder sind entsperrt; funktioniert"
"bei C8 = 200 ... CmdButton2 ... Eingabemaske erscheint; alle Felder sind gesperrt; können nur angesehen werden; funktioniert auch (allerdings nur wenn ich im Code von Button1 und 2: on error resume next setze)"
"bei C8 = 300 ... CmdButton2 (oder auch evtl 3) erscheint; alle Felder mit Inhalt sollen angesehen werden können(sind also gesperrt), alle freien Felder können mit einer Neuaufnahme versehen werden; die neuaufgenommenen können beim nächsten change-ereignis dann ja nur angesehen werden weil sie nicht mehr leer sind"
Hoffe du kannst was damit anfangen
Vielen vielen Dank für deine Mühe
Peter S.
Anzeige
AW: Bereich per VBA entsperren
Florian
Hallo, Peter,
was ich meinte, war die Aufgabe, die die Tabelle erledigen soll. Das was Du erarbeitet hast, ist soweit ich es überblicke viel zu umständlich. Laß uns bitte wissen, was Du mit der Datei machst.
Gruß,
Florian
AW: Bereich per VBA entsperren
18.04.2004 17:45:27
Peter
Florian,
nun dass es umständlich ist kann möglich sein, liegt an meiner Unerfahrenheit mit VBA (stecke da in den Anfängen).
in "Daten" sind Mitarbeiter mit bestimmten Serien-Nummer hinterlegt und im Feld C8 wird beim Start vom Mitarbeiter seine Seriennummer eingegeben. Damit ist auch die Berechtigung vergeben, mittels der Eingabemaske die man dann über den jeweiligen CmdButton öffnet, die "Mitarbeier" entweder nur anzusehen, oder neue Mitarbeiter aufzunehmen oder....und das ist die Vollberechtigung... Mitarbeiter zu löschen oder auch neue aufzunehmen..
War es das was du wissen wolltest?
Peter S.
Anzeige
AW: Bereich per VBA entsperren
K.Rola
Hallo,
du hebst mit den Commandbutton den Schutz auf und zeigst die Datenmaske,
so kann das doch gar nicht funktionieren.
Wenn du 300 eingibst soll doch wohl alles gesperrt sein, wozu wird dann
der Schutz mit dem Button aufgehoben?
Das locked = true bzw. false funktioniert nur, wenn das Blatt geschützt ist.
Gruß K.Rola
AW: Bereich per VBA entsperren
Peter
Hallo K.Rola,
das habe ich dann im Nachgang auch bemerkt und bei den Buttons den Schutz bzw Freigabe rausgenommen...dann kommt allerdings ne Fehlermeldung;
diese habe ich mit on error resume next aufgehoben; dann geht es mit 100 und mit 300, jedoch die Teilenstperrung funzt nicht
Danke
Peter S.
Anzeige
AW: Bereich per VBA entsperren
Florian
https://www.herber.de/bbs/user/5372.xls
Hallo, Peter,
so ganz hab' ich's noch nicht verstanden. Hier ist erst einmal eine aufgeräumte Version. Möchtest Du einzelnen Mitarbeitern bestimmte Rechte einräumen?
Schau bitte einmal die Version an und kommentiere Sie.
Gruß,
Florian
P.S. Antwort kann dauern. Bin bis Mi auf Dienstreise.
AW: Bereich per VBA entsperren
Peter
Hallo Florian,
poste hier für dich nochmal die Mappe mit dem bisherigen Stand....wäre schön wenn wir uns Mittwoch oder Donnerstag nochmal sprechen würden.
https://www.herber.de/bbs/user/5393.xls
Danke
Peter S.
Anzeige
AW: Bereich per VBA entsperren
Florian
Hallo, Peter,
sorry, aber ich steige hier aus.
Ich bin davon ausgegangen, dass Du an meiner aufgeräumten Version weiterarbeitest und ein paar hilfreiche Hinweise hinterläßt. Das Aufräumen hat mich Zeit gekostet.
Mit der alten Version von vor ein paar Tagen fange ich nicht noch einmal an.
Gruß,
Florian
AW: Bereich per VBA entsperren
22.04.2004 18:43:53
Peter
Hallo Florian,
ich hatte aus Versehen die falsche Datei gepostet...selbstverständlich hab ich mit der aufgeräumten weitergearbeitet.....ich hoffe du hast dann auch 2 Tage später gesehen, daß ich die Mappe fertig nochmal gepostet hab.
Danke
Peter S.
AW: Bereich per VBA entsperren
Florian
Hallo, Peter,
Sub Schutz()
Dim As String
Dim Cells
  D = Sheets("Tabelle1").[C8].Value
  If D = "300" Then
    Sheets("Tabelle2").Unprotect Password:="Ja"
    For Each Cells In Sheets("Tabelle2").UsedRange
      If Cells = "" Then
        Cells.Locked = False
      Else
        Cells.Locked = True
      End If
    Next Cells
    Sheets("Tabelle2").Protect Password:="Ja"
  End If
oder
https://www.herber.de/bbs/user/5356.xls
Punkt 1:
  Das Dim As String steht immer am Anfang einer Prozedur.
Punkt 2:
  .unprotect bezieht sich nicht auf ein RANGE-Objekt, sondern auf ein ganzes WORKSHEET.
Gruß,
Florian
Anzeige
AW: Bereich per VBA entsperren
Peter
Hallo Florian,
auch Dir vielen Dank, jedoch trifft auf deinen Code das gleiche zu....keine Fehlermeldung, aber auch keine Entsperrung der leeren Zellen?
Peter S.
AW: Bereich per VBA entsperren
18.04.2004 13:53:13
Florian
Hallo, Peter,
Sub Schutz()
Dim As String
Dim Zellen
  D = Sheets("Tabelle1").[C8].Value
  If D = "300" Then
    Sheets("Tabelle2").Unprotect Password:="Ja"
    For Each Zellen In Sheets("Tabelle2").UsedRange
      If IsEmpty(Zellen) Then
        Zellen.Locked = False
      Else
        Zellen.Locked = True
      End If
    Next Zellen
    Sheets("Tabelle2").Protect Password:="Ja"
  End If
End Sub

Gruß,
Florian

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige