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

Datum in VBA

Datum in VBA
21.11.2002 14:36:56
Boris
Hallo Excellenzen,

kurz zum Tabellenaufbau:
In C4 bis C370 steht das forlaufende Jahresdatum, beginnend am 01.01., endend am 31.12., und zwar im Format TT.MM.JJJJ (das Jahr wird immer Variabel zugespielt).

In C3 befindet sich eine Gültigkeitsliste, und zwar Auswahl der Monate als String: Januar, Februar, März etc. bis Dezember.

Ich möchte, dass nach Auswahl eines Monats der 1. diesen Monats in der Spalte C selektiert wird.
Und zwar soll das Ganze über das Worksheet_Change-Ereignis laufen.

Leider funktioniert mein Versuch noch nicht.

Hier ein Auszug aus meinem Makro:

Was läuft hier falsch?

Schon mal Danke für Eure Hilfe.

Gruß Boris

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Datum in VBA
21.11.2002 14:54:58
Hajo_Zi
Hallo Boris

ändere den Code wie folgt

Gruß Hajo

Re: Datum in VBA
21.11.2002 15:06:56
Boris
Hallo Hajo,

danke für deine schnelle Antwort.
Leider bekomme ich jetzt einen Laufzeitfehler 13, Typen unverträglich.
Hast du hierfür noch einen Tipp?

Gruß Boris

Re: Datum in VBA
21.11.2002 15:13:37
Hajo_Zi
Hallo Boris

ich habe eigentlich die Tabelle so nachgebaut wie Du Sie beschrieben hast. Die Monate stehen doch bei die in C3 über ein DroDown Feld ausgeschrieben zur Verfügung?? Lasse es Doch mla im einschritt laufen und schaue ob er die beiden Datums richtig zusammensetzt.

Das Du den Code kopiert hast setze ich mal vorraus.

Gruß Hajo

Re: Datum in VBA
21.11.2002 15:22:00
Boris
Hallo Hajo,

es ist schon seltsam:
Wenn ich den Monat in C3 händisch eingebe, dann erhalte ich den Laufzeitfehler.
Wenn ich ihn über das Dropdown auswähle, dann passiert rein gar nichts.
Vielleicht liegt es daran, dass ich hier noch mit Excel 97 arbeite?
Zu Hause hab ich Excel 2000, und da treten viele Probleme, die ich mit 97 habe, nicht auf.

Hast du noch eine Idee?

Vielen Dank schon mal.

Gruß Boris

Anzeige
Re: Datum in VBA
21.11.2002 15:24:52
Hajo_Zi
Hallo Boris

ich habe Excel XP, aber in dem Code ist nichts drin was es nicht auch schon unter 97 gab. Auch die Handeingabe geht ohne Fehler. Was kam den beim Datum zusammenbauen raus???

Gruß Hajo

Re: Datum in VBA
21.11.2002 15:48:41
Boris
Hallo Hajo,

also, wenn ich den Debugger befrage:
Der 2. Teil mit Cdate ermittelt das richtige Datum (01.01.2003)
Der 1. Teil mit Cdate ergibt den Laufzeitfehler:
CDate("1." & Range("C3") & "." & Range("A2")<--- Typen unverträglich.

Ich weiss es wirklich nicht mehr...

Gruß Boris

und Danke für Deine Geduld ;-)

Re: Datum in VBA
21.11.2002 15:58:39
Hajo_Zi
Hallo Boris

dann haben wir doch das Problem schon eingegrenzt. Eigentlich hättest Du doch jetzt den Ausdruck weiter überprüfen müssen.
Steht in Range("C3") nur der Monat ohne Punkt und im anderem nur die Jahreszahl.

Gruß Hajo

Anzeige
Re: Datum in VBA
21.11.2002 16:08:22
Boris
Hallo Hajo,

bei Range("C3") steht: "Oktober" (ohne Punkt)
Die Jahreszahl wird korrekt als 2003 ohne "" angegeben.

Gruß Boris

Re: Datum in VBA
21.11.2002 16:11:25
Kurt
Hallo Boris
Format Funktion stört beim Datumformatierung
versuch mal mit diesen String

suchwert = CDate(1 & "." & Val([c3]) & "." & Val(aktjahr))

mfg. Kurt

Re: Datum in VBA
21.11.2002 16:11:59
Hajo_Zi
Hallo Boris

ich bin nun auch am Ende.

Den Code hast Du kopiertaus dem Forum???

In Deinen vorherigen Beitrag fehlte eine )

Gruß Hajo

Re: Datum in VBA
21.11.2002 16:20:10
Boris
Hallo Hajo,

das Makro hab ich mir selbst geschrieben.
Im letzten Beitrag fehlte tatsächlich eine Klammer, aber die hab ich nur vergessen, mit aus dem Code rauszukopieren.
In Wirklichkeit steht sie da.
Wenn ich Makros ins Forum stelle, dann kopier ich sie immer aus dem Editor.

Aber sei´s drum: Ganz, ganz herzlichen Dank für deine Mühen.

Viele Grüße

Boris

Anzeige
Re: Datum in VBA
21.11.2002 16:24:52
Boris
Hallo Kurt,

danke dir für deine Hilfe.
Aber das hab ich auch schon probiert und ich erhalte als Ergebnis wieder den 09.04.2179.

Vielen Dank!

Gruß Boris

Re: Datum in VBA
21.11.2002 16:36:46
Martin Bolleter
Hallo Boris

Als kleine Ergänzung: leider musste ich auch schon die Erfahrung machen, dass Excel97 das Auswählen eines Wertes in einer Zelle mittels der Gültigkeits-Liste NICHT als Change-Ereignis betrachtet! Deswegen passiert bei dir in diesem Fall NICHTS!

Frag mal bei Bill noch :-)

Gruss
Martin

@Martin;@Hajo
21.11.2002 16:46:07
Boris
Hallo Martin, hallo Hajo,

die Bemerkung von Martin ist mir auch gerade in den Sinn gekommen.
Daraufhin habe ich folgendes getestet:
Bisher hab ich für das Gültigkeitsfeld eine Liste mit den Monatsnamen in einem ANDEREN Tabellenblatt angelegt und dieser Liste den Namen Monate gegeben.
Bei der Quelle für die Gültigkeit hab ich nur eingegeben: =Monate

So ist es in der Tat so, dass eine Auswahl KEIN Change-Ereignis bewirkt.

Wenn man sich aber bei der Quelle nicht auf eine externe Liste bezieht, sondern als Quelle direkt eingibt:

Januar;Februar;März;April etc.

dann wird bei einer Auswahl das Change-Ereignis aktiviert.

Also das hab ich jetzt zumindest mal rausgefunden.

Aber warum sich mein Suchbegriff nicht korrekt ermittelt, weiss ich leider immer noch nicht...:-(

Gruß Boris

Anzeige
@ Boris
21.11.2002 20:44:02
Panicman
Hallo Boris,

du weist ja, das ich kein VBA Experte bin. Ich halte das lieber mit WF, aber denk mal über den Ansatz nach.
Ich habe in in deinen Bereich MONATE nicht die Namen sondern die Formel Datum(A2;1;1) für Januar und Datum(A2;2;1) für Februar usw. In dem Drop-Down wird der Monatsname angezeigt. C3 formatieren MMMM.
Was target.adress heißt, weis ich nicht, aber ich habs mir mal umgeschrieben. bei mir klapps

Sub Boris()
Range("c3").Select
If Range("c3").Select <> Empty Then 'in C3 wird ein Monatsname (z.B. September) eingetragen
aktjahr = [a2] 'Aktuelles Jahr: in A2 steht das aktuelle Jahr als Zahl (z.B. 2003)
suchwert = DateSerial(Val(aktjahr), Month([c3]), 1)
MsgBox suchwert 'Das Ergebnis lautet 09.04.2179 ??? <------
For Each zelle In Range("C4:C370") 'Datumsbereich vom 1.1. bis 31.12. des aktuellen Jahres, Format TT.MM.JJJJ
If zelle.Value = suchwert Then
zelle.Select
Exit For
End If
Next
End If
End Sub


vielleicht kannst du das ja gebrauchen.
Holger

Anzeige
Hallo Holger,
21.11.2002 20:59:20
Boris
danke für den Tipp. Kann es leider erst morgen wieder testen, weil das Problem nur beim 97er Excel auftritt und ich hier zu Hause 2000 habe.

Im übrigen halte ich es eigentlich auch sehr gerne mit WF - also alles möglichst ohne VBA. Aber viele Dinge gehen eben nicht ohne...

Bis dahin

Gruß Boris

Re: Hallo Holger,
21.11.2002 21:23:56
Panicman
Hallo Boris,

das verstehe ich nicht, denn dein Makro hat bei mir in XL2000 auch das Datum 09.04.2179 gebracht. Habe es auch nicht geschaft einen ausgeschriebenen Monatsnamen in die Monatszahl ohne weiteres umzusetzen. Deshalb bin ich auf die Idee mit den Monaten als Datum in deinem Bereich gekommen. Hast du vielleicht zu hause im hintergrund irgendein Add-Inn was das kann, was ich und dein Rechner in der Firma nicht kann ??

Holger

Anzeige
Re: Hallo Holger,
21.11.2002 21:32:46
Boris
Hi Holger,

ich hab keine Ahnung wieso, hier auf meinem Rechner funzt das einwandfrei, und zwar mit genau dieser Zeile:

suchwert = CDate(Format(1 & "." & [c3] & "." & aktjahr, "dd.mm.yyyy"))

Also wurde auch der Monatsname einwandfrei umgesetzt.

Vielleicht müssen wir doch mal BillyBoy fragen.....;-))

Gruß Boris

Re: Datum in VBA
22.11.2002 06:51:57
Kurt
Hallo Boris

Ist unter Exrta Opionen, Berechnen, 1904 Datumwerte deaktiviert?
bei läuft mit den angegebenen einstellung u. suchwert einwandfrei

mfg. kurt

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige