Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
424to428
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
424to428
424to428
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Format für Year ändern
07.05.2004 14:00:27
Herbert
Hallo Forum
Wenn ich mir in meinem code das Jahr in eine Zelle schreiben lasse, wird mir das als 2004 angezeigt. Wie muß ich den code anpassen, daß ich 04 (Kurzschreibweise) bekomme.
jahr = Year(Now)
Range("A1").Value = jahr
Wenn ich Format ("yy") dazu schreibe funzt es nicht.
Ich kombiniere das ganze mit einer Nummer (z.B. 001/04):
Range("A1").Value = "00" & x & "/" & jahr
Ergebins: 00x/2004 will aber 00x/04
Zelle formatieren:JJ nichts bringt, es muß schon im code sein.
Danke im Voraus
Herbert

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format für Year ändern
Kurt
Range("A1").Value = "00" & x & "/" & Format(jahr,"yy")
Kurt
Funzt, vielen Dank o.T
Herbert
brauch nochmal Hilfe
07.05.2004 14:29:15
Herbert
Hallo Kurt
Durch die Hilfe von mehreren Forumianern habe ich jetzt (fast), das was ich will. Ich hab nur noch eine Fehler und den finde ich um´s verrecken nicht !!
In der Variablen jahr steht 2004, aber beim Auslesen des Wertes in:
Range("A1").Value = "00" & x + 1 & "/" & Format(jahr, "yy")
zählt mein Code sowohl die Zahl UND das Jahr um 1 hoch. Wenn Du Lust hast, schau Dir doch bitte den Code mal an.
Danke für Deine Hilfe
Herbert

Sub Dateien_auslesen()
jahr = Year(Now)
Pfad1 = "C:\Daten\2004\"
name1 = Dir(Pfad1)
x = Left(name1, 3)
Do While name1 <> ""
x = Application.WorksheetFunction.Max(x, Left(name1, 3))
name1 = Dir
Loop
Dim Mldg, Stil, Titel, Antwort
If x < 10 Then
Mldg = "Nächste freie Auftragsnummer:" & "00" & x + 1
ElseIf x < 100 Then
Mldg = "Nächste freie Auftragsnummer:" & "0" & x + 1
Else
Mldg = "Nächste freie Auftragsnummer:" & x + 1
End If
Stil = vbYesNo
Titel = "Auftragsnummern prüfen"
Antwort = MsgBox(Mldg, Stil, Titel)
If Antwort = vbYes Then
If x < 10 Then
Range("A1").Value = "00" & x + 1 & "/" & Format(jahr, "yy")
ElseIf x < 100 Then
Range("A1").Value = "0" & x + 1 & "/" & Format(jahr, "yy")
Else
Range("A1").Value = x + 1 & "/" & Format(jahr, "yy")
End If
Else
Exit Sub
End If
End Sub

Anzeige
AW: brauch nochmal Hilfe
IngoG
Hallo Herbert,
du mußt oben einsetzen jahr=now() anstatt jahr=Year(now)...
ausserdem kannst du noch
If x &lt 10 Then
Range("A1").Value = "00" & x + 1 & "/" & Format(jahr, "yy")
ElseIf x &lt 100 Then
Range("A1").Value = "0" & x + 1 & "/" & Format(jahr, "yy")
Else
Range("A1").Value = x + 1 & "/" & Format(jahr, "yy")
End If
ersetzen durch:
Range("A1").Value = Format(x+1,"000/") & Format(jahr, "yy")
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
Jetzt klappt´s wirklich vielen Dank
Herbert
Hallo Ingo
Das war der Weisheit wirklich letzter Schluß. Mein Wochenende ist gerettet.
Nochmals herzlichen Dank
Herbert
Danke für die Rückmeldung oT
IngoG
.
Erläuterung...
IngoG
Hallo nochmal,
das problem ist, dass in der Variable jahr 2004 steht und die formatfunktion das jahr vom 2004'ten tag nach 01.01.1900 zurückgibt, da sie bei format "yy" ein Datum als ersten parameter erwartet.
der 2004'te tag ist aber der 26.06.1905 und das Jahr davon 05 (Kurzform) .
Gruß Ingo
AW: Erläuterung...
Herbert
Hallo Ingo
Jetzt hab ich´s auch kapiert. Man muß wirklich wieder "back to the roots" um Dinge zu entdecken und zu verstehen, die man am Anfang einer Excel-Karriere mal gelernt hat, insbesondere bei der leidlichen Geschichte: Arbeiten mit Datum und Zeit.
Dank Dir nochmal
Gruß aus München
Herbert
Anzeige
Gern geschehen oT
IngoG
.
IngoG, Bitte nochmals um Deine Hlfe
10.05.2004 09:43:03
Herbert
Hallo IngoG
Erstmal Danke, für Deine Hilfe, aber es ist ein neues Problem aufgetreten:
Ich lasse mir zum Jahreswechsel automatisch ein neues Verzeichnis anlegen, funktioniert auch. Jetzt habe ich meine Code (Dank Deiner Hilfe) abgeändert, aber wie bringe ich einen variablen Verzeichnisnamen hinein? In dem Verzeichnis liegen mehrere Ordner (2003, 2004) und ich möchte immer in den, des aktuellen Jahres verweisen?

Sub Dateien_auslesen()
jahr = (Now)
Pfad1 = "C:\temp\2004\"     '(Testverzeichnis) Wie muß ich das abändern?
name1 = Dir(Pfad1)
x = Left(name1, 3)
Do While name1 <> ""
x = Application.WorksheetFunction.Max(x, Left(name1, 3))
name1 = Dir
Loop
Dim Mldg, Stil, Titel, Antwort
If x < 10 Then
Mldg = "Nächste freie Auftragsnummer:" & "00" & x + 1
ElseIf x < 100 Then
Mldg = "Nächste freie Auftragsnummer:" & "0" & x + 1
Else
Mldg = "Nächste freie Auftragsnummer:" & x + 1
End If
Stil = vbYesNo
Titel = "Auftragsnummern prüfen"
Antwort = MsgBox(Mldg, Stil, Titel)
If Antwort = vbYes Then
Range("Nummer").Value = Format(x + 1, "000/") & Format(jahr, "yy")
Else
Exit Sub
End If
End Sub

Danke im Voraus
Gruß Herbert
Anzeige
AW: IngoG, Bitte nochmals um Deine Hlfe
IngoG
Hallo Herbert,
ändere einfach die Zeile
Pfad1 = "C:\temp\2004\" in
Pfad1 = "C:\temp\" & format(jahr, "yyyy\") (ungetestet)
bzw.
Pfad1 = "C:\temp\" & format(jahr, "yyyy") & "\" (sollte aufjeden fall funzen)
Gruß Ingo
Danke
Herbert
Hallo Ingo
Vielen Dank, habs gerade getestet ( 2.Möglichkeit), klappt prima!!!!
Dann bis zur nächsten Katastrophe ;.)
Herbert
Danke für die Rückmeldung oT
IngoG
.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige