vba verketten/ resize mit " / " ohne Datum

Bild

Betrifft: vba verketten/ resize mit " / " ohne Datum
von: willoserus
Geschrieben am: 22.08.2015 13:12:56

Hallo zusammen,
vor kurzem hat man mir hier geholfen das u.a. Makro zum laufen zu bringen. Danke nochmal. Allerdings möchte ich in der Zeile
Call VerkettenMitFormat(Zelle, Zelle.Offset(0, 2).Resize(1, 8), " / ")
mit dem " / " verketten. Problem: Verkettet werden Zahlenwerte von 0 bis 20. Stehen nur zwei Zahlenwerte (z.b. 11 / 11) ergibt das im Ergebnis ein unerwünschtes Datum von 11. Nov. Es soll aber 11 / 11 bleiben.
Ich hatte auch versucht das Format der Ziel-Zellen vorab als Text zu formatieren, was aber nichts gebracht hat.
Kann man das evtl. in das Makro implementieren?
Für Hilfe wäre ich dankbar....
VG
willoserus

Sub test()
Dim Zelle As Range
Dim zeilen As Long
zeilen = Cells(Rows.Count, 10).End(xlUp).Row ' das ist Spalte J
For Each Zelle In Range("H6:H" & zeilen)
    Call VerkettenMitFormat(Zelle, Zelle.Offset(0, 2).Resize(1, 8), " / ")
Next
End Sub
Sub VerkettenMitFormat(Ziel As Range, Quelle As Range, Optional TrKZ As String = "")
' die verketteten Zahlen werden im originalformat angegeben
Dim Zelle As Range
Dim txt As String
Dim Pos1 As Long
Dim LängeTRKZ As Long
Dim Länge As Long
LängeTRKZ = Len(TrKZ)
For Each Zelle In Quelle
  If Zelle.Text <> "" Then
    txt = txt & TrKZ & Zelle.Text
  End If
Next
Ziel.Value = Mid(txt, LängeTRKZ + 1)
Pos1 = 1
For Each Zelle In Quelle
  If Zelle.Text <> "" Then
    With Ziel.Characters(Start:=Pos1, Length:=Len(Zelle.Text))
        .Font.Name = Zelle.Font.Name
        .Font.Size = Zelle.Font.Size
        .Font.FontStyle = Zelle.Font.FontStyle
        .Font.Italic = Zelle.Font.Italic
        .Font.Color = Zelle.Font.Color
        .Font.Strikethrough = Zelle.Font.Strikethrough
        .Font.Subscript = Zelle.Font.Subscript
        .Font.Superscript = Zelle.Font.Superscript
        .Font.Underline = Zelle.Font.Underline
    End With
    Pos1 = Pos1 + Len(Zelle.Text) + LängeTRKZ
  End If
Next
End Sub

Bild

Betrifft: AW: vba verketten/ resize mit " / " ohne Datum
von: Daniel
Geschrieben am: 22.08.2015 13:32:32
Hi
stelle dem Text, den du in die Zelle einfügst, das Texterkennungszeichen ' (Hochkomma) voran.
damit teilst du Excel mit, dass es den einfgefügten Text immer wie normalen einfachen Text behandeln soll und nicht versuchen soll, den einfgefügten Text in eine Zahl, ein Datum oder eine Formel zu wandeln falls dies möglich sein sollte.
du also deinen Code wie folgt erweiteren:
Ziel.Value = "'" & Mid(txt, LängeTRKZ + 1)
Gruss Daniel

Bild

Betrifft: AW: vba verketten/ resize mit " / " ohne Datum
von: willoserus
Geschrieben am: 22.08.2015 13:55:56
Danke Daniel,
aber bekomme ich das "'" final auch wieder raus, ohne die Formatierung zu verlieren?
einige Zahlen sind in fett und kursiv und müssen es auch bleiben.
Vielleicht könnte man das in die
With Ziel.Characters(Start:=Pos1, Length:=Len(Zelle.Text))
Abrage mit einbauen.
Könntest du mir da helfen?
Danke und Gruss

Bild

Betrifft: AW: vba verketten/ resize mit " / " ohne Datum
von: Daniel
Geschrieben am: 22.08.2015 14:25:34
HI
warum willst du das ' raus machen?
dann wird dein Zellwert ja wieder in ein Datum gewandelt.
das ' ist nicht Bestandteil des Zellwertes, wenn du diesen abfragst, von daher kann das drinbleiben
Gruss Daniel

Bild

Betrifft: AW: vba verketten/ resize mit " / " ohne Datum
von: willoserus
Geschrieben am: 22.08.2015 17:22:02
Läuft! Prima und danke an Daniel!
VG
willoserus

 Bild

Beiträge aus den Excel-Beispielen zum Thema "vba verketten/ resize mit " / " ohne Datum"