Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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

Tagesdatum eingeben.

Tagesdatum eingeben.
adi
Gestern bin ich von Franz mit einem Makro bestens bedient worden. Nun möchte ich das Makro ein wenig flexibler gestaltet haben, dazu brauchte ich eure Hilfe. Die jetzige Aufgabe des Makro, das in DieseArbeitsmappe steht und dafür sorgt, dass in allen Tabellenblättern eine Vereinfachung der Datumseingabe in Spalte A und M gegeben ist. Mein Problehm ist, dass das Datumsfeld nicht immer in Spalte A oder M steht.
Wie könnte man das Makro flexibler gestalten?
Oder in jeder Tabelle ein eigenes Makro schreiben, so dass man sich die Spalten selber aussuchen kann.
Das jetzige Makro sieht so aus, siehe unten.
Gruß adi
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim vTest
If (Target.Column = 1 Or Target.Column = 13) And Target.Row > 5 Then
On Error Resume Next
vTest = Target * 1
On Error GoTo 0
Application.EnableEvents = False
If IsNumeric(vTest) Then
Select Case vTest
Case 1 To 31
Target = DateSerial(Year(Date), Month(Date), vTest)
Case Else
Target = ""
Target.Select
End Select
Else
Target = ""
Target.Select
End If
Application.EnableEvents = True
End If
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
mit 2 Variablen für 1 und 13
12.09.2010 12:23:50
Matthias

Hallo
setze für 1 und 13
If (Target.Column = 1 Or Target.Column = 13) And Target.Row > 5 Then
als Public(in einem Modul) deklarierte Variablen ein
und setze die Variablen beim Activate eines Blattes per Inputbox neu.
Mit einer MsgBox kannst Du vorher festlegen, ob Du die Spalten neu definieren willst oder nicht.
hier ein Beispiel
https://www.herber.de/bbs/user/71485.xls
Gruß Matthias
AW: mit 2 Variablen für 1 und 13
12.09.2010 13:30:47
adi
Hallo Matthias,
dein Demo habe ich getestet, es ist mir zu umständlich dass ich jedesmal gefragt werde
in welche Spalte ich das Datum haben möchte, wenn die Tabelle geöffnet wird.
Vielleicht sollte ich noch erklären, dass die Datumsspalten in verschiedene Tabellen nicht immer
in der gleichen Spalte stehen, aber dort dann nicht mehr verändert werden. Also einmal fragen OK, aber dann nicht mehr.
Gruß Adi
Anzeige
setz eine boolsche Variable beim .Open ...
12.09.2010 18:15:05
Matthias
Hallo Adi
... dann wirst Du nur beim "Öffnen" der Datei gefragt.

ins Modul:
Public MyCol1 As Long, MyCol2 As Long, bol As Boolean

Private Sub Workbook_Open() Dim Frage Frage = MsgBox("Möchten Sie die Spalten für das Datum anders als Spalte(1) und Spalte(13) _ definieren?", vbYesNo) If Frage = vbYes Then bol = True 'MsgBox "Ja gewählt" 'hier per Inputbox 1.Spalte und 2.Spalte für Datum definieren MyCol1 = InputBox("Bitte 1.Spalte für Datum setzen", , 1) If StrPtr(MyCol1) = 0 Then MyCol1 = "" MyCol2 = InputBox("Bitte 2.Spalte für Datum setzen", , 13) If StrPtr(MyCol1) = 0 Then MyCol2 = "" Else 'MsgBox "nein gewählt" MyCol1 = 1 MyCol2 = 13 End If End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim Frage If bol Then Frage = MsgBox("Möchten Sie die Spalten für das Datum anders als Spalte(1) und Spalte(13) _ definieren?", vbYesNo) If Frage = vbYes Then 'MsgBox "Ja gewählt" 'hier per Inputbox 1.Spalte und 2.Spalte für Datum definieren MyCol1 = InputBox("Bitte 1.Spalte für Datum setzen", , 1) If StrPtr(MyCol1) = 0 Then MyCol1 = "" MyCol2 = InputBox("Bitte 2.Spalte für Datum setzen", , 13) If StrPtr(MyCol1) = 0 Then MyCol2 = "" Else 'MsgBox "nein gewählt" MyCol1 = 1 MyCol2 = 13 End If End If End Sub
Gruß Matthias
Anzeige
AW: setz eine boolsche Variable beim .Open ...
12.09.2010 19:10:36
adi
Hallo Matthias,
Danke für deine bisherigen Bemühungen, aber leider ist es nicht
befriedigend. Meine Vorstellung ist, dass ich einmal die Punkte festlege
und damit muß die Sache erledigt sein. Vielleicht gibt es doch noch eine
andere Möglichkeit, in Excel ist fast nichts Unmöglich.
Gruß Adi
dann lösch doch den Code wieder ...
12.09.2010 19:30:06
Matthias
Hallo
Zitat:
...
Die jetzige Aufgabe des Makro, das in DieseArbeitsmappe steht und dafür sorgt, dass in allen Tabellenblättern eine Vereinfachung der Datumseingabe in Spalte A und M gegeben ist. Mein Problehm ist, dass das Datumsfeld nicht immer in Spalte A oder M steht.
Wie könnte man das Makro flexibler gestalten?
...

Daraufhin habe Dir eine Möglichkeit aufgezeigt.
Warum löschst Du den Programmcodes nicht einfach, wenn die Spalten pro Blatt festgelegt sind?


oder ruf das Makro nur auf wenn Du es brauchst.
https://www.herber.de/bbs/user/71493.xls
Gruß Matthias
Anzeige
vergiss das einfach ...
12.09.2010 20:53:22
Matthias
Hallo
Vergiss den letzten Beitrag von mir, das geht so ja überhaupt nicht
Das Einfachste ist die Zellen pro Tabellenblatt vor dem Benutzen manuell zu formatieren.
Gruß Matthias
AW: Test Datei
12.09.2010 21:59:09
adi
Hallo Matthias
ich lade eine Test Datei hoch, versuche mal das Datum in den vorbestimmten Stellen
zu schreiben, überlege mal, was die beste Möglichkeit ist.
https://www.herber.de/bbs/user/71497.xls
Gruß Adi
Datei zurück
13.09.2010 01:42:49
Matthias
Hallo Adi
Im .Activate werden jetzt die Spalten1 und 2 für Datum und Startzeile für 1.Eintrag in eine Variable geschrieben.
https://www.herber.de/bbs/user/71498.xls
Gruß Matthias
Anzeige
kl. Korrektur
13.09.2010 02:22:05
Matthias
Hallo
in Tab3 (im .Activate) bitte
MyCol1 = 2 auf MyCol1 =1 ändern.
Hatte ich nach dem Kopieren vergessen zu ändern.
Gruß Matthias
Jetzt ist alles prima.
13.09.2010 19:49:32
adi
Gruß Matthias,
du hast mir sehr geholfen, jetzt ist
es so wie ich es mir vorgestellt hatte.
Ich danke dir für deine Hilfsbereitschaft.
Gruß Adi
AW: Jetzt ist alles prima.
13.09.2010 19:51:56
adi
Ich wollte
Hallo Matthias schreiben.
habe mich verschrieben.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige