urs-2012
Goto Top

Frage zu Excelmakro, Zellen zusammenfügen und kopieren

Hallo zusammen

Gerne möchte ich folgende Makro aus diesem Forum nützen, jedoch sollten leere Zellen ignoriert werden, Am besten wäre, wenn eine Endzelle gesetz werden kann. Ebenfalls sollten die Daten nicht im gleichen Tabellenblatt ausgegegebn werden.
Könnt Ihr mir dabei helfen?

Option Explicit

Const StartZeile = 2


Sub FillColumnC_Value()
    Dim Cell As Range

    With Columns("C:C")  
        .NumberFormat = "@"                                                                                  'Text-Format in Spalte C  
        .HorizontalAlignment = xlRight                                                                      'Ausrichtung Rechts  
    End With

    For Each Cell In Range("A:A")  
        If Cell.Row >= StartZeile Then                                                                        'Ab Startzeile  
            If IsEmpty(Cell) Then Exit Sub                                                                       'Bis zur 1. Leerzeile  
                
            With Cell.Offset(0, 2)
                .Value = Cell.Text & Chr(10) & Cell.Offset(0, 1).Text                            'Spalte C = Spalte A & Spalte B  
                .Characters(Len(Cell.Text) + 1, -1).Font.Italic = True                           'Wert aus Spalte B werden kursiv  
            End With
        End If
    Next
  End Sub



Danke für eure Hilfe.

Content-Key: 184714

Url: https://administrator.de/contentid/184714

Printed on: April 18, 2024 at 21:04 o'clock

Member: mak-xxl
mak-xxl May 09, 2012 at 14:18:31 (UTC)
Goto Top
Moin urs2012,

in starker Anlehnung an obigen Code, etwa so:
Sub FillColumnC_Value()
    Const StartZeile As Long = 2
    Const EndZeile As Long = 200
    Dim z As Long                                           ' Zeilenindex  
    With ThisWorkbook.Sheets(2).Columns("C:C")              ' Zieltabelle  
        .NumberFormat = "@"                                 ' Text-Format in Spalte C  
        .HorizontalAlignment = xlRight                      ' Ausrichtung rechts  
    End With
    With ThisWorkbook.Sheets(1)                             ' Quelltabelle  
        For z = StartZeile To EndZeile
'            If IsEmpty(.Cells(z, 1)) Then Exit Sub                          ' 1. Leerzelle (nur A)  
            If IsEmpty(.Range(.Cells(z, 1), .Cells(z, 2))) Then Exit Sub    ' 1. Leerzeile (A & B)  
            Sheets(2).Cells(z, 3) = .Cells(z, 1) & Chr(10) & .Cells(z, 3)   ' C = A & vbCr & B  
            Sheets(2).Cells(z, 3).Characters(Len(.Cells(z, 3).Text) + 1, -1).Font.Italic = True ' Werte aus B kursiv  
        Next z
    End With
End Sub

Der Gesamtstring aus A+vbCR+B des ersten Tabellenblattes wird in Spalte C des 2. Tabellenblattes kopiert.

Freundliche Grüße von der Insel - Mario
Mitglied: 76109
76109 May 09, 2012 at 22:56:23 (UTC)
Goto Top
Hallo Mario!

Nur als kleine kleine Anmerkung. Chr(10) = vbLf und erzeugt in Zellen einen Zeilenumbruchface-wink

Gruß Dieter