Anzeige
Archiv - Navigation
1612to1616
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

Tabelle mit CommandButton automatisch Sperren

Tabelle mit CommandButton automatisch Sperren
13.03.2018 14:19:43
Patrick
Guten Tag zusammen,
meine Frage ist folgende.
In der angehängten Datei möchte ich das Immer alles gesperrt ist und niemand etwas verändern kann.
Jedoch Drückt man auf Auftrag absenden, möchte ich gerne das, das Blatt Entsperrt wird und bei erfolgreicher automatisch Eingabe der Textboxen in die Zellen es wieder gesperrt wird.
Ich Hoffe es kann mir jemand helfen bin noch ein Neuling auf dem VBA gebiet und das ist so mein erstes "Projekt"
Sofern mir jemand noch bei dem aktuellen Code Tipps geben könnte wie ich es evtl. Besser oder Einfacher lösen hätte können wäre ich auch Dankbar :)
https://www.herber.de/bbs/user/120381.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Tabelle mit CommandButton automatisch Sperren
13.03.2018 14:37:01
Werner
Hallo Patrick,
benutze hierzu UserInterfaceOnly:=True beim Start der Datei. Das bewirkt, dass trotz gesperrtem Blatt das Makro Änderungen vornehmen darf. Dann sparst du dir das ständige Entsprerren/Sperren des Blattes im Makro selbst.
Vorgehensweise:
Alle Zellen auswählen (Dreieck oben links zw. Spalten und Zeilenkopf) - Rechte Maustaste im Tabellenbereich - Zellen formatieren - Schutz - Haken bei gesperrt setzen.
Menü Überprüfen - Blatt schützen - Passwort vergeben
Im VBA-Editor (öffnen mit Alt+F11) Doppelklick auf DieseArbeitsmappe.
Im Codefenster rechts folgenden Code:
Private Sub Workbook_Open()
Worksheets("Tabelle der Aufträge").Protect Password:="Patrick", UserInterfaceOnly:=True
End Sub
Bei Password:= mußt du das Passwort eintragen, das du vorher beim Setzen des Blattschutzes angegeben hast.
In deiner Beispieldatei habe ich das Blatt mit dem Passwort "Patrick" geschützt.
https://www.herber.de/bbs/user/120382.xlsm
Gruß Werner
Anzeige
AW: Tabelle mit CommandButton automatisch Sperren
13.03.2018 15:26:01
Patrick
Hallo Werner,
ich danke dir viel mals fürs helfen funktioniert super ! :)
War am Code sonst soweit alles korrekt oder kann ich noch Verbesserungen/Einsparungen vornehmen ?
Gerne u.Danke für die Rückmeldung...
13.03.2018 15:51:51
Werner
Hallo Patrick,
...deinen Code habe ich mir gar nicht angeschaut. Kann ja mal drüber schauen.
Gruß Werner
AW: Tabelle mit CommandButton automatisch Sperren
13.03.2018 18:01:59
Werner
Hallo Patrick,
du brauchst doch nicht für jede Spalte immer wieder die erste freie Zeile zu ermitteln. Das reicht doch einmal, da die Daten aus den Boxen dann ja alle in die gleiche Zeile geschrieben werden.
Private Sub CommandButton1_Click()
Dim loLetzte As Long
If ArtikelnummerBox1 = "" Or ArtderTeileBox1 = "" Or ArtderVermessungBox2 = "" _
Or MaschinennummerBox1 = "" Or AnzahlBox2 = "" Or AuftraggeberBox3 = "" _
Or weitereAnsprechpartnerBox4 = "" Or WunschterminBox5 = "" _
Or SonstigeBemerkungenBox6 = "" Or OptionButton1 = False Then
MsgBox "Bitte Vermessungsauftrag vollständig ausfüllen"
Else
With Worksheets("Tabelle der Aufträge")
loLetzte = .Cells(.Rows.Count, 3).End(xlUp).Offset(1, 0).Row
.Cells(loLetzte, 3) = CDate(Me.DatumBox1)
.Cells(loLetzte, 4) = Me.ArtikelnummerBox1
.Cells(loLetzte, 5) = Me.ArtderTeileBox1
.Cells(loLetzte, 6) = Me.ArtderVermessungBox2
.Cells(loLetzte, 7) = Me.MaschinennummerBox1
.Cells(loLetzte, 8) = CLng(Me.AnzahlBox2)
.Cells(loLetzte, 9) = Me.AuftraggeberBox3
.Cells(loLetzte, 10) = Me.weitereAnsprechpartnerBox4
.Cells(loLetzte, 11) = CDate(Me.WunschterminBox5)
.Cells(loLetzte, 12) = Me.SonstigeBemerkungenBox6
.Range("a1").Select
End With
UserForm1.Hide
End If
End Sub
Gruß Werner
Anzeige
AW: Tabelle mit CommandButton automatisch Sperren
14.03.2018 09:56:39
Patrick
Guten Morgen Werner,
danke für die Tipps hab ich fast 1:1 so übernommen.
Einzige Änderung die ich gemacht habe war statt ".Cells(loLetzte, 3) = CDate(Me.DatumBox1" auf .Cells(loLetzte, 3) = Me.DatumBox1 zu ändern da er mir das Datum immer in Amerikanischer schreibweise gemacht hat.
Ich Vermute das liegt aber an der Formatierung des Blattes. Ich werd das später mal testen ob ich die Formatierung einfach auf Datum stellen muss.
Danke fir auf jedenfall schon mal für die verbesserungen :)
Gerne u. Danke für die Rückmeldung...
14.03.2018 10:17:46
Werner
Hallo Patrick,
du mußt nur vorher die entsprechenden Spalten im erforderlichen Datumsformat formatieren.
Gruß Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige