Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1368to1372
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

diverse Makros zusammen ausführen

diverse Makros zusammen ausführen
16.07.2014 12:09:25
Sandra

Hallo zusammen,
ich war lange nicht mehr hier, benötige aber jetzt doch mal wieder Eure Hilfe.
Inzwischen habe ich Office 2013.
Folgendes Anliegen vorab zur Erklärung.
Ich habe Eine Datei mit 6 Tabellenblättern. Die erste Tabelle ist das "Urdokument" indem händisch Änderungen vorgenommen werden. So wird in
Zelle C1 eine lfd.-Nr. festgelegt und in
Zelle G1 das betreffende Datum
Diese Zellen sind in den anderen Blättern (2-5) Schreibgeschützt - weshalb ich einen Blattschutz aktiviert habe. Diese generieren sich nämlich automatisch.
Ich benötige nun (glaube ich) drei verschiedene Makros. Zwei habe ich und die funktionieren auch, aber das dritte fehlt und bekomme ich ohne Eure Hilfe nicht hin.
Teil 1 soll das Verwenden der Gruppierungen trotz Blattschutz zulassen:
Teil 2 soll bewirken, dass sich der Name der Tabellenblätter aus den jeweiligen Zellen G1 generieren. Das funktioniert zwar, dafür muss ich aber den Blattschutz aufheben, in die Zelle G1 gehen, F2 + Enter drücken.
Und dafür benötige ich Teil 3 - und damit Eure Hilfe!

Sub Workbook_Open()
ActiveSheet.Protect userinterfaceonly:= True, Password:="Passwort"
ActiveSheet.EnableOutlining = True 'für Gliederung
ActiveSheet.EnableAutoFilter = True 'für Autofilter
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("G1")) Is Nothing Then _
Sh.Name = Target.Value
End Sub

Könnt Ihr mir helfen?
Lieben Dank!
Sandra

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nachfrage..
16.07.2014 15:22:21
UweD
Hallo Sandra
muss nachfragen..
Du änderst in Urdaten in C1 und G1 was.
Dadurch ändern sich in den anderen Tabellenblättern "automatisch" auch Daten in deren G1 Zellen?
Dann sollen alle anderen Blätter umbenannt werden, und zwar aus dem Inhalt deren G1?
oder wie meinst du das?
- - - -
Zwischenergebnis:
Durch das Sub Workbook_Open() schützt du, beim öffnen der Datei, das aktuelle Tabellenblatt
Wenn das gerade das "Urdaten" ist, wird das eben geschützt.
so würden nur die Anderen geschützt.
Sub Workbook_Open()
'kommt in DieseArbeitsmappe
Dim Sh
For Each Sh In Sheets
If Sh.Name <> "Urdaten" Then
Sh.Protect userinterfaceonly:=True, Password:="Passwort"
Sh.EnableOutlining = True 'für Gliederung
Sh.EnableAutoFilter = True 'für Autofilter
End If
Next
End Sub
Wobei das wegfallen könnte, wenn du die Anderen Blätter einmal schützt
Gruß UweD

Anzeige
AW: Nachfrage..
16.07.2014 16:06:38
Sandra
Hallo Uwe,
ja, im Tabellenblatt 1 ändere ich in C1 die laufende Nummer, die sich dann jeweils + 1 weiter ergibt in den anderen Tabellenblättern und in G1 ist es das Datum was ich einmal eingeben muss und dass sich dann auch immer + 1 in den weiteren Tabellenblättern generiert.
Das Makro mit dem Blattschutz brauchte ich, weil ich in den anderen Tabellenblättern die Zellen C1 + G1 schützen wollte, und bis eben noch Gruppierungen hatte. Die können entfallen, wodurch ich einen einfachen Blattschutz setzen kann.
Bleibt also, dass ich im Tabellenblatt 1 in Zelle G1 z. B. 04.08.2014 schreibe und sich daraus der Tabellenblattname ergibt. in Tabelle 2 steht automatisch in G1 der 05.08.2014 usw. Der Tabellenblattname ändert sich derzeit aber nur, wenn ich dann in Tabelle 2 gehe, in Zelle G1 und dann F2+Enter, das möchte ich aber gerne umgehen.
Nun ist noch eine andere Sache dazugekommen. Ich benötige eine MsgBox mit Auswahl Ja/Nein. Soweit kein Problem. Bei "Ja" nix machen klappt auch, aber bei "Nein" benötige ich eine erneute MsgBox.
Irgendwie so dachte ich:

MsgBox "Sind die lfd.-Nr. und das Datum aktualisiert??", vbYesNo + vbDefaultButton2 +  _
vbQuestion, "ACHTUNG"
If Answer = vbNo Then
MsgBox "Dann bitte anpassen!"
End If
Versteht Du was ich meine?
Gruß
Sandra

Anzeige
AW: Nachfrage..
16.07.2014 16:49:49
UweD
Also nochmal.
Die anderen Tabellenblätter kannst die einmalig von Hand schützen.
diese beiden Makros an die entprechenden Stellen kopieren
Private Sub Workbook_Open()
'muss in DieseArbeitsmappe
Dim Answer
Answer = MsgBox("Sind die lfd.-Nr. und das Datum aktualisiert??", vbYesNo +  _
vbDefaultButton2 + _
vbQuestion, "ACHTUNG")
If Answer = vbNo Then
MsgBox "Dann bitte anpassen!"
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
'muss in Tabelle1(Urdaten)
Dim SH
On Error Resume Next
If Not Intersect(Target, Range("G1")) Is Nothing Then
For Each SH In Sheets
If SH.Name <> "Urdaten" Then SH.Name = SH.Range("G1").Value
Next
End If
End Sub
Gruß UweD

Anzeige
DANKE!!!!!!!!
17.07.2014 08:36:26
Sandra
Funktioniert bestens!!!!!!!!!!!!!!!
Sonnige Grüße
Sandra

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige