Auto_Open 1x/Eintrag in jeden Tabellenblatt

Hallo,
habe ein Visual Basic Script, indem ich gerne folgende Änderung hätte:

  1. Die automatische Abfrage (Auto_Open) beim Start des Excel-Sheets soll nur beim ersten Mal kommen und danach nicht wieder.
  2. Die ausgefüllten Abfragen sind in der Fuss- und Kopfzeile wieder zu finden aber nur im aktuellen Tabellenblatt. Ich hätte diese Einträge gerne in jedem Tabellenblatt des Files.

Kann mir jemand Tipps dazu geben?

Anbei mein Script:
’ Makro das in eine Zelle schreibt

Sub Auto_Open()
M = InputBox(„Ersteller:“)
F = InputBox(„Titel:“)
Abteilung = InputBox(„Abteilung:“)
Datum = InputBox(„Datum:“)
If M = „“ And F = „“ Then
GoTo Abbruch
Else
If M = „“ Then
GoTo Abbruch
Else
If F = „“ Then
GoTo Abbruch
Else
ActiveSheet.PageSetup.LeftFooter = "Ersteller: " & M & " / " & Abteilung
ActiveSheet.PageSetup.RightFooter = "Titel der Vorplanung: " & F
ActiveSheet.PageSetup.RightHeader = "Datum: " & Datum
End If
End If
End If
GoTo Ende
Abbruch:
MsgBox („Programm wurde abgebrochen!!“)
Ende:
End Sub

Danke!
Stef

Hallo,

Hi,

habe ein Visual Basic Script, indem ich gerne folgende
Änderung hätte:

  1. Die automatische Abfrage (Auto_Open) beim Start des
    Excel-Sheets soll nur beim ersten Mal kommen und danach nicht
    wieder.

Schreib doch beim Öffnen in irgendeine Zelle deines Excelsheets irgendetwas herein, z.B. ein Blank (" ").
Dann machst du ein Workbook.Save
Beim Öffnen fragst du dann ab, ob der Blank in Zelle xyz vorhanden ist.
Falls ja, tue nichts. Falls nein, zeige Abfrge.

  1. Die ausgefüllten Abfragen sind in der Fuss- und Kopfzeile
    wieder zu finden aber nur im aktuellen Tabellenblatt. Ich
    hätte diese Einträge gerne in jedem Tabellenblatt des Files.

Kann mir jemand Tipps dazu geben?

Anbei mein Script:
’ Makro das in eine Zelle schreibt

Sub Auto_Open()
M = InputBox(„Ersteller:“)
F = InputBox(„Titel:“)
Abteilung = InputBox(„Abteilung:“)
Datum = InputBox(„Datum:“)
If M = „“ And F = „“ Then
GoTo Abbruch
Else
If M = „“ Then
GoTo Abbruch
Else
If F = „“ Then
GoTo Abbruch
Else

Dim i as Integer
for i=1 to worksheets.count
 worksheets(i).PageSetup.LeftFooter = "Ersteller: " & M & " / " & Abteilung
 worksheets(i).PageSetup.RightFooter = "Titel der
 Vorplanung: " & F
 worksheets(i).PageSetup.RightHeader = "Datum: " & Datum
next i

ActiveSheet.PageSetup.LeftFooter = "Ersteller: " & M &
" / " & Abteilung
ActiveSheet.PageSetup.RightFooter = "Titel der
Vorplanung: " & F
ActiveSheet.PageSetup.RightHeader = "Datum: " & Datum
End If
End If
End If
GoTo Ende
Abbruch:
MsgBox („Programm wurde abgebrochen!!“)
Ende:
End Sub

Gruß.Timo

Danke!
Stef

Schreibschutz anfragen?!?
Hi Timo!

Die Sache mit dem Eintrag in jeden Tabellenblatt hat super funktioniert! :smile: Danke!

Zu meiner ersten Frage, ist mir noch was eingefallen. Ich habe die Musterdatei schreibgeschützt und alle anderen nicht. Kann man das abfragen und evtl. entsprechend die Abfrage starten oder übergehen?

’ Makro das in eine Zelle schreibt

Sub Auto_Open()
M = InputBox(„Ersteller:“)
F = InputBox(„Titel:“)
Abteilung = InputBox(„Abteilung:“)
Datum = InputBox(„Datum:“)
If M = „“ And F = „“ Then
GoTo Abbruch
Else
If M = „“ Then
GoTo Abbruch
Else
If F = „“ Then
GoTo Abbruch
Else

Dim i as Integer
for i=1 to worksheets.count
 worksheets(i).PageSetup.LeftFooter = "Ersteller: " & M & " /
" & Abteilung
 worksheets(i).PageSetup.RightFooter = "Titel der
 Vorplanung: " & F
 worksheets(i).PageSetup.RightHeader = "Datum: " & Datum
next i

ActiveSheet.PageSetup.LeftFooter = "Ersteller: " & M &
" / " & Abteilung
ActiveSheet.PageSetup.RightFooter = "Titel der
Vorplanung: " & F
ActiveSheet.PageSetup.RightHeader = "Datum: " & Datum
End If
End If
End If
GoTo Ende
Abbruch:
MsgBox („Programm wurde abgebrochen!!“)
Ende:
End Sub

Gruß
Stef

Hi Timo!

Hi Stefan,

Die Sache mit dem Eintrag in jeden Tabellenblatt hat super
funktioniert! :smile: Danke!

Zu meiner ersten Frage, ist mir noch was eingefallen. Ich habe
die Musterdatei schreibgeschützt und alle anderen nicht. Kann
man das abfragen und evtl. entsprechend die Abfrage starten
oder übergehen?

If GetAttr(Me.Path & "\" & Me.Name) = vbReadOnly Then
 DeineMeldung
 SetAttr Me.Path & "\" & Me.Name, vbArchive
End If

Gruß.Timo

Hallo, Timo!

If GetAttr(Me.Path & „“ & Me.Name) = vbReadOnly Then
DeineMeldung
SetAttr Me.Path & „“ & Me.Name, vbArchive
End If

Hmm, sorry aber komm da nicht weiter.
Muss ich bei „Me.Path“ den Pfad angeben? Und bei „Me.Name“ den Dateinamen mit Erweiterung?
Kommt bei GetAttr und SetAttr der gleiche Dateiname rein?
Verstehe die Sache nicht… (bin halt’ auf diesen Gebiet absolut blank)

Ciao,
Stef

Hallo, Timo!

Hi,

If GetAttr(Me.Path & „“ & Me.Name) = vbReadOnly Then
DeineMeldung
SetAttr Me.Path & „“ & Me.Name, vbArchive
End If

Hmm, sorry aber komm da nicht weiter.
Muss ich bei „Me.Path“ den Pfad angeben? Und bei „Me.Name“ den
Dateinamen mit Erweiterung?

Nö, Me.Path gibt dir den Pfad der Excel-Datei, also z.B. „c:\Downloads\Sonstiges“.
Me.Name gibt dir den Namen der Excel-Datei, also z.B. „Test1.xls“.
Gruß.Timo

Kommt bei GetAttr und SetAttr der gleiche Dateiname rein?
Verstehe die Sache nicht… (bin halt’ auf diesen Gebiet
absolut blank)

Ciao,
Stef

Hi Stefan,
wie wärs damit (ist VBA-Excel):

Option Explicit
Sub Auto\_Open()
Dim i As Integer, M As String, F As String, Abteilung As String, Datum As String
M = InputBox("Ersteller:")
F = InputBox("Titel:")
Abteilung = InputBox("Abteilung:")
Datum = InputBox("Datum:")
If M = "" Or F = "" Then
 MsgBox ("Programm wurde abgebrochen!!")
 Exit Sub
Else
 For i = 1 To Worksheets.Count
 Worksheets(i).PageSetup.LeftFooter = "Ersteller: " & M & " /" & Abteilung
 Worksheets(i).PageSetup.RightFooter = "Titel der Vorplanung: " & F
 Worksheets(i).PageSetup.RightHeader = "Datum: " & Datum
 Next i
End If
End Sub

Gruß
Reinhard