Hallo,
habe ein Visual Basic Script, indem ich gerne folgende Änderung hätte:
- Die automatische Abfrage (Auto_Open) beim Start des Excel-Sheets soll nur beim ersten Mal kommen und danach nicht wieder.
- 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:
- 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.
- 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!
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!
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