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

Nur mit Werten gefüllte Zellen schreibschützen?

Nur mit Werten gefüllte Zellen schreibschützen?
14.12.2006 15:34:40
asz
Hallo,
ich habe ein weiteres Problem: Aus einem (später mal Online-)Excel-Formular werden Daten in ein Auswertungsblatt in derselben Mappe gespielt - per Makro. Problem: Das Auswertungsblatt soll zwar von jedem angesehen werden können, nicht aber verändert - also brauche ich einen Schreibschutz. Wenn ich aber das ganze Auswertungsblatt unter Schreibschutz stellen, funktioniert das Makro nicht mehr, das ja Werte zeilenweise in die Auswertungstabelle schreibt. Wie kann ich nur *den* Bereich schreibschützen, der bereits mit Werten gefüllt ist (und dieser Bereich ändert sich natürlich mit jedem ausgefüllten Formular um eine neue Zeile)?
In diesem Forum ist mir schon so viel geholfen worden - es wäre toll, wen auch hier jemand die Antwort wüsste.
Dankeschön im voraus & Grüße
asz

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur mit Werten gefüllte Zellen schreibschützen?
14.12.2006 15:40:35
Rudi
Hallo,
schütze das Blatt per VBA
sheets(1).protect Password:="test", userinterfaceonly:=true
Dann können Änderungen nur per Code durchgeführt werden.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Nur mit Werten gefüllte Zellen schreibschützen
14.12.2006 15:55:00
asz
Hallo Rudi,
vielen Dank! Könntest Du mir noch sagen, wo ich die Zeile am besten einbaue? Das Formular hat einen Button 'Abschicken', der mit dem u.g. Makro verknüpft ist, das die Ergebnisse in ein Blatt 'Auswertung' spielt (und dieses soll geschützt werden).
Vielen Dank für Deine Hilfe!
ASZ

Sub Veranstaltung_neu2()
'Variablen deklarieren
Dim Wks1 As Worksheet
Dim Wks2 As Worksheet
Dim Cb As OLEObject
Dim X As Integer
'Werte an Variablen zuweisen
Set Wks1 = Sheets("Veranstaltung")
Set Wks2 = Sheets("Auswertung")
'Kopieren der Daten aus dem Sheet "Veranstaltung" in das Sheet "Auswertung"
'Wks2.Range("B65536").End(xlUp).Offset(1, 0) Diese Anweisung wählt aus Spalte B
'die erste Leere Zelle von Unten aus
Wks2.Range("B65536").End(xlUp).Offset(1, 0) = Wks1.Range("B8")
Wks2.Range("C65536").End(xlUp).Offset(1, 0) = Wks1.Range("B11")
Wks2.Range("K65536").End(xlUp).Offset(1, 0) = Wks1.Range("B21")
Wks2.Range("B65536").End(xlUp).Offset(1, 0) = Wks1.Range("C45")
Wks2.Range("AC65536").End(xlUp).Offset(1, 0) = Wks1.Range("B49")
'Rücksetzen der Checkboxen
For Each Cb In Wks1.OLEObjects
If Not IsNumeric(Right(Cb.Name, 2)) Then
X = CInt(Right(Cb.Name, 1))
Else
X = CInt(Right(Cb.Name, 2))
End If
Select Case X
'Hier kannst du noch ändern welche Checkboxen noch oder nicht mehr zurückgesetzt werden,
'indem du die Nummer der CheckBox hinzufügst oder rauslöschst
Case 2, 3, 4, 9, 10, 11, 12, 13, 14, 15, 16, 17, 23, 25, 27, 28, 29, 30
Cb.Object.Value = False
Case Else
End Select
Next
'Leeren der Zellen in Sheet "Veranstaltung"
Wks1.Range("B8,B11,B21,C45,B49").ClearContents
End Sub

Anzeige
AW: Nur mit Werten gefüllte Zellen schreibschützen
14.12.2006 23:11:59
Mustafa
Hallo asz,
du hättest das aber auch gleich sagen können.
So müsste es gehen:

Sub Veranstaltung_neu2()
'Variablen deklarieren
Dim Wks1 As Worksheet
Dim Wks2 As Worksheet
Dim Cb As OLEObject
Dim X As Integer
'Werte an Variablen zuweisen
Set Wks1 = Sheets("Veranstaltung")
Set Wks2 = Sheets("Auswertung")
'Sheet "Auswertung" Passwortgeschützt
Wks2.protect Password:="test", userinterfaceonly:=true
'Kopieren der Daten aus dem Sheet "Veranstaltung" in das Sheet "Auswertung"
'Wks2.Range("B65536").End(xlUp).Offset(1, 0) Diese Anweisung wählt aus Spalte B
'die erste Leere Zelle von Unten aus
Wks2.Range("B65536").End(xlUp).Offset(1, 0) = Wks1.Range("B8")
Wks2.Range("C65536").End(xlUp).Offset(1, 0) = Wks1.Range("B11")
Wks2.Range("K65536").End(xlUp).Offset(1, 0) = Wks1.Range("B21")
Wks2.Range("B65536").End(xlUp).Offset(1, 0) = Wks1.Range("C45")
Wks2.Range("AC65536").End(xlUp).Offset(1, 0) = Wks1.Range("B49")
'Rücksetzen der Checkboxen
For Each Cb In Wks1.OLEObjects
If Not IsNumeric(Right(Cb.Name, 2)) Then
X = CInt(Right(Cb.Name, 1))
Else
X = CInt(Right(Cb.Name, 2))
End If
Select Case X
'Hier kannst du noch ändern welche Checkboxen noch oder nicht mehr zurückgesetzt werden,
'indem du die Nummer der CheckBox hinzufügst oder rauslöschst
Case 2, 3, 4, 9, 10, 11, 12, 13, 14, 15, 16, 17, 23, 25, 27, 28, 29, 30
Cb.Object.Value = False
Case Else
End Select
Next
'Leeren der Zellen in Sheet "Veranstaltung"
Wks1.Range("B8,B11,B21,C45,B49").ClearContents
End Sub

Rückmeldung obs Hilft wäre nett.
Viele Grüße aus Köln.
Anzeige
AW: Nur mit Werten gefüllte Zellen schreibschützen
15.12.2006 08:47:25
asz
Hallo Mustafa,
haha, sorry, der Aspekt hat sich erst im Nachhinein ergeben (hier treffen die Anforderungen tröpfchenweise ein) und ich wollte den anderen Thread nicht damit belasten. Herzlichen Dank für die Hifle!!
ASZ
PS - AW: Nur mit Werten gefüllte Zellen...
15.12.2006 09:16:39
asz
PS: Es gibt noch ein kleines Problem: Deine Lösung für den Schreibschutz funktioniert zwar gut, bei jedem Anklicken einer Checkbox im Formular bekommt man allerdings die Meldung, dass das Blatt, das man ändern will, schreibgeschützt ist - was man natürlich auch keinem zumuten kann - was tun?
Danke & viele Grüße
asz
PS - AW: Nur mit Werten gefüllte Zellen...
15.12.2006 22:51:59
Mustafa
Hallo asz,
Ich dachte das das Blatt nicht manuell geändert werden soll.
Vielleicht erörterst du mal etwas detaillierter wie der Aufbau deiner Mappe ist oder stellst mal eine Bsp. Mappe ein.
Danke für die Rückmeldung.
Viele Grüße aus Köln.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige