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

Zeichen an bestimmter Stelle einer Zelle einfügen

Zeichen an bestimmter Stelle einer Zelle einfügen
08.04.2013 16:56:10
Horst
Halli Hallo,
über einen Umweg habe ich aus einer in einer Zelle stehenden Datumsangabe Wochentag, Datum und Zeit gemacht. Brauchen tue ich jedoch nur das Datum, sodass ich die einzelnen Teile in eine neue Zelle schreiben lasse. Problem ist, dass das Datum wie folgt ausschaut:
9Jan2008
Wie schaffe ich es, dass es dieses Format erhält: 9. Jan 2008?
Wie kann ich zudem aus der Formel den Bezug zu meinen 'Hilfszellen' entfernen, sprich aus Formel mach Text oder Datum, sodass ich im Nachgang meine Hilfszeilen löschen kann?

  • Range("A3").Select
    Selection.Copy
    Range("AR3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    If a * 10 Then
    Selection.TextToColumns Destination:=Range("AR3"), DataType:=xlFixedWidth, _
    FieldInfo:=Array(Array(0, 1), Array(3, 1), Array(7, 1), Array(9, 1), Array(18, 1)), _
    TrailingMinusNumbers:=True
    Else
    Application.CutCopyMode = False
    Selection.TextToColumns Destination:=Range("AR3"), DataType:=xlFixedWidth, _
    FieldInfo:=Array(Array(0, 1), Array(3, 1), Array(7, 1), Array(10, 1), Array(19, 1)), _
    TrailingMinusNumbers:=True
    End If
    Range("AR3:AV3").Select
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "=CONCATENATE(R[1]C[45],R[1]C[44],R[1]C[47])"
    Selection.NumberFormat = "@"

  • Zur Erklärung: a bezieht sich darauf ob der Tag ein- oder zweistellig ist. Ich habe versucht Punkt sowie Leerzeichen in Concatenate mit einzubinden, jedoch war dies nicht von Erfolg gekrönt. Für * steht ein kleiner als, anders kann ich meine Frage nicht abschicken.
    Vielen Dank für eure Hilfe!

    4
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zeichen an bestimmter Stelle einer Zelle einfügen
    08.04.2013 18:29:29
    Tino
    Hallo,
    weis nicht ob ich dich verstanden habe.
    Sub test()
    Dim sText$, n%, ArValue(2), Datum As Date
    
    sText = Range("A3")
    
    For n = 1 To Len(sText)
        If Not IsNumeric(Mid(sText, n, 1)) Then Exit For
    Next n
    ArValue(0) = Mid(sText, 1, n - 1) 'Tag 
    ArValue(2) = Right$(sText, 4) 'Jahr 
    ArValue(1) = Mid(sText, n, Len(sText) - n - 4 + 1) 'Monat 
    sText = Join(ArValue, ".")
    If IsDate(sText) Then
        Datum = CDate(sText)
    End If
    
    Range("A2").NumberFormat = "d. mmm yyyy"
    Range("A2") = Datum
    End Sub
    
    Ergebnis sieht so aus.
     A
    29. Jan 2008
    39Jan2008

    Gruß Tino

    Anzeige
    AW: Zeichen an bestimmter Stelle einer Zelle einfügen
    08.04.2013 21:22:15
    Tino
    Hallo,
    bei -4 + 1 kannst natürlich gleich -3 schreiben.
    Gruß Tino

    AW: Zeichen an bestimmter Stelle einer Zelle einfügen
    09.04.2013 09:00:47
    Horst
    Tino,
    sieht richtig gut aus! Vielen lieben Dank. Das einzige ist, dass ich den Code nicht recht nachvollziehen kann, würdest du diesen noch (ganz) kurz kommentieren, sodass sich ein Lerneffekt einstellt? Dankeschön!

    AW: Zeichen an bestimmter Stelle einer Zelle einfügen
    09.04.2013 16:24:48
    Tino
    Hallo,
    habe Kommentare hinzugeschrieben.
    Sub test()
    Dim sText$, n%, ArValue(2), Datum As Date
    
    'Quelle, evtl. mit Tabelle ergänzen z.Bsp. Sheets("Tabelle2").Range("A3") 
    sText = Range("A3")
    'Schleife bis zur ersten Nicht-Zahl, n hat dann die position 
    For n = 1 To Len(sText)
        If Not IsNumeric(Mid(sText, n, 1)) Then Exit For
    Next n
    'String entsprechend aufteilen und in Array sortieren 
    ArValue(0) = Mid(sText, 1, n - 1) 'Tag (hier könnte man auch mit Left(...) arbeiten 
    ArValue(2) = Right$(sText, 4) 'Jahr 
    ArValue(1) = Mid(sText, n, Len(sText) - n - 4 + 1) 'Monat 
    'Array zu einen String Formatieren mit Punkt als Trennzeichen 
    sText = Join(ArValue, ".")
    'Prüfen ob String ein umwandelbares Datumsformat enthält 
    If IsDate(sText) Then
        Datum = CDate(sText) 'String in Datum wandeln 
    End If
    'Ausgabezelle Formatieren 
    Range("A2").NumberFormat = "d. mmm yyyy"
    'Datum in Zelle schreiben 
    Range("A2") = Datum
    End Sub
    
    Gruß Tino
    Anzeige

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige