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

Makro beim Öffnen erstellen, wenn......

Makro beim Öffnen erstellen, wenn......
01.01.2004 03:57:36
Jonathan
Liebes Forum,

ich möchte ein Makro erstellen lassen (automatisch beim Öffnen), wenn Datum über 01.01.2005 ist. Dafür habe ich folgenden Code geschrieben:


Sub Test()
If Date > DateValue("01.01.2005") Then _
ThisWorkbook.Sheets("Haupt").Buttons.Add(15, 260.25, 109.5, 19.5).Select
Selection.OnAction = "Makroname"
ActiveSheet.Shapes("Button 11").Select
Selection.Characters.Text = "Key eingeben"
With Selection.Characters(Start:=1, Length:=12).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("D14").Select
End Sub


Nun kommt beim Öffnen immer die Meldung, dass die Eigenschaft von "Selection on Action" nicht unterstützt wird. WEnn ich diesen Befehl lösche, kommt die Meldung, dass das Objekt nicht gefunden wurde, obwohl es ja gar nicht erstellt werden sollte...........

Wie würde der Code richtig lauten?

Danke schon mal!!!

Ein frohes neues JAhr!!!!!!!!!!!!!

MfG

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

Betreff
Datum
Anwender
Anzeige
mal anders........
01.01.2004 04:17:50
Jonathan
Ich nochmal!

Habs mal anders versucht, hab den Button schon erstellt, und nu soll er einfach eingeblendet werden, wenn Datum > als X ist. Folgender Code:


Sub Workbook_open()
If _
Date > DateValue("01.01.2005") Then _
Columns("P:S").Select
Selection.EntireColumn.Hidden = False
ThisWorkbook.Sheets("Haupt").Range("O5").Select
End Sub


Nun blendet der die Spalten aber immer ein, auch wenn das Datum nicht > 01.01.2005 ist......

?????????????
AW: mal anders........
01.01.2004 09:00:24
Hajo_Zi
Hallo Jonathan

in VBA kann zu 99% auf usw. verzichtet werden. Gewöhne Dir erst gar nicht an immer mit select, Activate zu arbeiten. Das wirst Du schlecht wieder los.


Sub Workbook_open()
If Date > CDate("01.01.2003") Then
Worksheets("Haupt").Columns("P:S").EntireColumn.Hidden = False
End If
End Sub


Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
AW: mal anders........
01.01.2004 09:00:33
Josef Ehrensberger
Hallo Jonathan,

zuerst ein wünsch' ich Dir frohes neues Jahr!

Zu Deinem Code:

So lautet die richtige Syntax für den Code!


Option Explicit

Sub Workbook_open()
If Date > DateValue("01.01.2005") Then
With Sheets("Haupt")
.Columns("P:S").EntireColumn.Hidden = False
.Range("O5").Select
End With
End If
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Als anfänger in VBA solltest Du gleich ein paar
Regeln lernen und auch beachten.

Schreib an den Beginn von jedem Modul

Option Explicit

dann verlangt das Programm von Dir, das
jede Variable, die Du verwendest ausdrücklich
und eindeutig deklariert wird.
Das ist eine grosse Hilfe und eliminiert eine
häufige Fehlerursache - falsch oder garnicht
deklarierte Variablen.

Auf Select und Activate kann zu 99,95% verzichtet
werden. Siehe hierzu auch die Forums-FAQ und die Basics
auf dieser Seite.

Nutze am Beginn häufig die Recherche.
Dort findet Du zu fast jedem Problem Lösungen
und Anregungen.

Verwende die Onlinehilfe von Excel und VBA.
Auch wenn die Hilfe manchmal etwas unübersichtlich
erscheint, findet man dort zu jedem Problem
Erklärungen und Beispiele.

Und wenn Du alleine nicht mehr weiter kommst,
dann wird Dir hier und in den anderen Foren
sich gerne geholfen.

Bis dann - Sepp
Anzeige
AW: mal anders........
01.01.2004 09:03:37
Hajo_Zi
Hallo Sepp

Auch Dir eine Gutes neues Jahr.

nur ein Hinweis

falls Sheets("Haupt") nicht aktiv führt der Code zu einem Fehler

Mit Select bist Du ja noch extremer als ich.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


AW: mal anders........
01.01.2004 09:14:29
Josef Ehrensberger
Hallo Hajo,

danke und auch Dir Prosit 2004!

Du hast natürlich recht, hätte doch noch ein wenig
im Bett bleiben sollen.

Das mit den 99,95% war mehr zur verdeutlichung gedacht,
das mit Select äusserst sparsam umgehen soll.

Gruß sepp
Anzeige
AW: mal anders........
01.01.2004 09:24:48
andre
hallo allerseits,
guten morgen den frühaufstehern und allen ein gesundes neues jahr.
dann ändern wir doch den code noch ein bischen damit wir das mit dem select auch berücksichtigen, kann ja sein dass das activate reicht, und kein fehler kommt ;-)

Option Explicit


Sub Workbook_open()
Dim BlattName 'siehe kommentar unten, ansonsten können die 3 blattname-zeilen entfallen
If Date <= DateValue("01.01.2005") Then Exit Sub
BlattName = ActiveSheet.Name 'siehe kommentar unten
With Sheets("Tabelle2")
.Activate
.Columns("P:S").EntireColumn.Hidden = False
.Range("O5").Activate
End With
BlattName.Activate 'wenn wieder auf das ursprünglich aktivee blatt gewechselt werden soll
End 

Sub

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige