Microsoft Excel

Herbers Excel/VBA-Archiv

Inhalt einer Variable formatieren bzw.Datum ändern

Betrifft: Inhalt einer Variable formatieren bzw.Datum ändern von: Claudia
Geschrieben am: 08.09.2004 20:59:11

Hi,

ich brauch dingend Hilfe bei folgendem Problem, bin in Excel recht fitt, löse VBA aber fast nur durch aufzeichnen.

Aus einer Zelle lese ich ein Datum z. B. 08.09.2004 in eine Variable. In einem anderen Arbeitsblatt soll die Zelle mit dem Datumseintrag angesprungen werden. Nun ist das zu findende Datum aber per Formel berechnet und in einem ganz anderem Format (08. Sep).

Wie kann ich den Variablen-Wert auf "08.Sep" ändern, dann würde die Zell gefunden werden?

In Excel gibt es eine Formel die mir mein Problem abnehmen würde (=text(Zellbezug;“TT. MMM“), aber ich kann nicht mit Hilfszellen arbeiten, bzw. nur wenn der Zellbezug aus der Variablen kommt.

Kann mir bitte jemand helfen!!!!!!

Vielen Dank!!!!
Liebe Grüße

Claudia

Hier mein Code (Auszugsweise):

Dim strBezug As String
Dim strZeile As String
Dim strDatum As String

Worksheets("Umsatz").Activate
strZeile = ActiveCell.Row
strBezug = "B" & strZeile

Worksheets("Raumplan").Activate
Columns("C:C").Select
Cells.Find(strDatum, After:=ActiveCell, LookIn:=xlValues _
, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Select

  


Betrifft: AW: Inhalt einer Variable formatieren bzw.Datum ändern von: Matze
Geschrieben am: 08.09.2004 21:25:02

Hallo Claudia,

hast Du nur Werte von diesem Jahr im Tabellenblatt stehen? Ich frage deshalb, da ich eine Wertpapierdatenbank in Excel führe und meine Suche etwas umständlicher ist. Mir fehlt bei deiner Suche das Jahr.
Excel rechnet intern das Datum in eine laufende Zahl um. Du würdest nur nach einem Teil suchen. Als Ergebnis müsste er auf die Zelle vom 08.09.1900 (das Datum vom 01.01.1900 gibt die laufende Zahl 1) verweisen, sofern das Datum vorhanden wäre. Bastel noch das Jahr 2004 zu deiner Variable, dann müßte es klappen mit der Suche.

mfg
Matze


  


Betrifft: AW: Inhalt einer Variable formatieren bzw.Datum än von: Claudia
Geschrieben am: 08.09.2004 21:34:57

Hi Matze,

Die Spalte C wird berechnet:
C1 = 01.01.2004
C2 = =C1+1
C3 = =C2+1
usw.

d. h. die Jahreszahl ist eigentlich vorhanden, aber die ganze Spalte C ist formatiert als (TT. MMM).

Mit Cells.Find muss ich nach Werten suchen, und daher muss die Variable genau so aus sehen.

Vielleicht könnte ich die Variable auch kürzen, so dass von 08.09.04 nur 08 übrig bleibt, und dann mit Hilfe einer zweiten Variable 08 & Sep zusammen hängen, aber ich weiss nicht, wie ich die erste Variable kürzen könnte. Geht das?

Gruß
Claudia


  


Betrifft: AW: Inhalt einer Variable formatieren bzw.Datum än von: Matze
Geschrieben am: 08.09.2004 21:43:03

Hallo Claudia,

Du hast recht, dass der Wert komplett in der Zelle steht, er ist nur "weg"formatiert.

Du kannst mit den Befehlen year(variable), month(variable) und day(variable) das Datum in seine Einzelbestandteile zerlegen. Ob diese für die Suche notwendig ist, weiß ich aus dem Stehgreif leider auch nicht. Dies muss ich selbst erst testen.

mfg
Matze


  


Betrifft: AW: Inhalt einer Variable formatieren bzw.Datum än von: Claudia
Geschrieben am: 08.09.2004 21:55:59

Hi Matze,


vielen Dank dass Du mir hilfst!!!! Meine vorherige Idee mit dem Kürzen der Variable geht leider doch nicht, da ich ja nicht nur nach Sep suche. Deine Idee mit day(Variable) geht auch nicht, da dann der 08.01.1900 ausgegeben wird.

Also irgendwie muss ich das Datumsformat in der Variable ändern.

Hoffe Du hast noch eine Idee.

Vielen Dank!!!!!!

Gruß
Claudia


  


Betrifft: AW: Inhalt einer Variable formatieren bzw.Datum än von: Matze
Geschrieben am: 08.09.2004 22:21:51

Hallo Claudia,

folgende 2 Hinweise habe ich noch für Dich. Wenn das nicht mehr hilft, dann bin auch ich am Ende meiner derzeitigen Weisheit angekommen.
Durch die Funktion day(variable) hast Du aus dem Datum 8.9.2004 (als Zahl formatiert 38238) die Zahl 8 gemacht. Die ergibt logischer Weise das Datum 8.1.1900. In solchen Fällen der Datumszerlegung must Du natürlich den Monat und das Jahr wieder dazu verknüpfen.

Vielleicht ist es einfacher Du liest die beider Datumsangaben in jeweils eine Variable ein und formatierst sie über:
longDatumHeute = Format(longDatumHeute, "0") ' formatieren als Zahl ohne Kommastelle
in eine laufende Zahl um und machst dann den Vergleich. Vielleicht ist das am einfachsten.

mfg
Matze


  


Betrifft: AW: Inhalt einer Variable formatieren bzw.Datum än von: ypsilon
Geschrieben am: 09.09.2004 08:10:01

hallo ihr beiden,
ich mische mich zwar ungern ein aber versucht es doch mal so:

Sub Makro1()
variable = Date
kurzdate = Format(variable, "DD.MMM")
End Sub


cu Micha


  


Betrifft: AW: Inhalt einer Variable formatieren bzw.Datum än von: Matze
Geschrieben am: 08.09.2004 21:57:47

Hallo Claudia,

ich habe in meiner Wertpapierdatenbank das Problem gehabt, dass ich die Kurse zwischen 2 Werten suchen und in ein Diagramm zeichen wollte. Die aktuellsten Kurse werden immer hinten an gestellt. Dies habe ich wie folgt gelöst (ich suche die Daten nicht über Suche sondern über eine Suchschleife, da ich nicht davon ausgehen kann, dass ich für die gewünschten Tage auch einen Kurs habe):

Datumvon = Worksheets("Entwicklung_Fonds").Range("=Diagrammvon").Value
Datumbis = Worksheets("Entwicklung_Fonds").Range("=Diagrammbis").Value

' Ermittlung der Zell-Nummern fuer das Zeichnen der Diagrammkurven
For L = 2 To letzteZelle
If CDate(Kurse.Cells(L, 1)) >= Datumvon Then
Diagrammbeginn = L
L = letzteZelle
End If
Next L

For L = letzteZelle To 2 Step -1
If CDate(Kurse.Cells(L, 1)) <= Datumbis Then
Diagrammende = L
L = 2
End If
Next L

Die Zellen von Kurse.Cells(L,1) sind auch Formeln! Die Suche funktioniert bei mir ausgezeichnet. Ich habe in der Spalte A das Datum als laufende Zahl stehen. Ob und warum die Formatierung mit CDate davor musste, habe ich bis heute nicht kapiert.

Vielleicht hilft Dir dies weiter.

mfg
Matze


 

Beiträge aus den Excel-Beispielen zum Thema "Inhalt einer Variable formatieren bzw.Datum ändern"