Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

im Tabellenblatt Texte untereinander ...

Forumthread: im Tabellenblatt Texte untereinander ...

im Tabellenblatt Texte untereinander ...
09.06.2023 18:03:16
susi

Guten Tag,
ich habe nochmal eine Frage zum sortieren bzw. Textuntereinander setzen.
Ich habe eine Rechnungsvorlage die Texte werden von B27 bis B50 reingeschrieben.
Nun kann es sein, das man einige Zeilen mal löschen muss, daher sollten dann die Texte
zusammengesetzte werden.
SIEHE mein MUSTER:
https://www.herber.de/bbs/user/159518.xlsm

Gruß susi

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: im Tabellenblatt Texte untereinander ...
09.06.2023 18:38:11
Oberschlumpf
Hi susi,

versuch es mal hiermit...
https://www.herber.de/bbs/user/159520.xlsm
...hilfts?

Ciao
Thorsten


Anzeige
Danke Onur und Thorsten -)
09.06.2023 18:45:03
susi
Danke zusammen !
Ich nehme das vom Thorsten mit VBA, da brauchen die Kollegen nur ein Button drücken !

gruß susi


Hallo Thorsten, wenn ich erweitere ?
09.06.2023 18:53:13
susi
Hallo Thorsten,
wenn ich das 2. Rechnungsblatt ebenfalls zusammenführen möchte,
von B92 bis B115, was muss ich da ändern ?

gruß susi


Anzeige
AW: Hallo Thorsten, wenn ich erweitere ?
09.06.2023 22:05:20
ralf_b
versuchs mal damit. die methode bekommt zwei Parameter damit die unterschiedlichen Bereiche berücksichtigt werden.

Private Sub cmdClick_Click()
    sbRemove 25, 50
End Sub
Sub sbRemove(lStartrow&, lEndrow&)
       
    Dim lloRow As Long, lloStart As Long, lloEnd As Long
    
    With ActiveSheet
        For lloRow = .Cells(.Rows.Count, 2).End(xlUp).Row To lStartrow Step -1
            If .Range("B" & lloRow).Value > "" And lloEnd = 0 Then
                lloEnd = lloRow
            End If
            If .Range("B" & lloRow).Value = "" And lloEnd > 0 Then
                lloStart = lloRow + 1
            End If
            If lloStart > 0 And lloEnd > 0 Then
                .Range("B" & lloStart & ":B" & lloEnd).Cut Destination:=.Range("B" & lloStart - 1 & ":B" & lloEnd - 1)
                lloRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
                lloStart = 0
                lloEnd = 0
            End If
        Next

        With .Range("B" & lStartrow & ":B" & lEndrow)
            .Borders(xlEdgeLeft).LineStyle = xlNone
            .Borders(xlEdgeTop).LineStyle = xlNone
            .Borders(xlEdgeBottom).LineStyle = xlNone
            .Borders(xlEdgeRight).LineStyle = xlNone
            .Borders(xlInsideHorizontal).LineStyle = xlNone
                With .Borders(xlEdgeLeft)
                    .LineStyle = xlContinuous
                    .ColorIndex = xlAutomatic
                    .TintAndShade = 0
                    .Weight = xlThin
                End With
                With .Borders(xlEdgeTop)
                    .LineStyle = xlContinuous
                    .ColorIndex = xlAutomatic
                    .TintAndShade = 0
                    .Weight = xlThin
                End With
                With .Borders(xlEdgeBottom)
                    .LineStyle = xlContinuous
                    .ColorIndex = xlAutomatic
                    .TintAndShade = 0
                    .Weight = xlThin
                End With
                With .Borders(xlEdgeRight)
                    .LineStyle = xlContinuous
                    .ColorIndex = xlAutomatic
                    .TintAndShade = 0
                    .Weight = xlThin
                End With
        End With
  End With
End Sub


Anzeige
SORRY, meinte natürlich Thorsten !!!
10.06.2023 12:01:52
susi


AW: SORRY, meinte natürlich RALF !!!! !!!
10.06.2023 12:11:45
susi


Anzeige
AW: SORRY, meinte natürlich Thorsten !!!
10.06.2023 12:12:14
ralf_b
folgendes Problem.
"Zweites Rechnungsblatt" habe ich so verstanden das sich die Daten auf einem anderen Arbeitsblatt befinden.
Da sie aber laut Musterdatei nur weiter unten sind funktioniert das so nicht.
Thorstens Code sucht die letzte benutzte Zeile, um den Bereich nach unten zu begrenzen. Somit wird in deiner Musterdatei bereits alles nach unten im ersten Makro berücksichtigt. Da muß wohl noch ein Anpassung her.


Anzeige
nachgefragt und Lösungsvorschlag
10.06.2023 12:32:05
ralf_b
1. Die 1.Zeile des ersten Bereiches in deinem Wunschergebnis ist leer. Torstens Code läßt diese Zeile nicht leer.
2. Dein Wunschergebnis hat 16 Zeilen. Die Basis dazu aber nur 15.

Private Sub CommandButton1_Click()
 Application.ScreenUpdating = False
  sbRemove 27, 50
  sbRemove 92, 115
  Application.ScreenUpdating = True
End Sub
Sub sbRemove(lStartrow&, lEndrow&)
       
    Dim lloRow As Long, lloStart As Long, lloEnd As Long
    
    With ActiveSheet
        For lloRow = lEndrow To lStartrow Step -1     '.Cells(.Rows.Count, 2).End(xlUp).Row
            If .Range("B" & lloRow).Value > "" And lloEnd = 0 Then
                lloEnd = lloRow
            End If
            If .Range("B" & lloRow).Value = "" And lloEnd > 0 Then
                lloStart = lloRow + 1
            End If
            If lloStart > 0 And lloEnd > 0 Then
                .Range("B" & lloStart & ":B" & lloEnd).Cut Destination:=.Range("B" & lloStart - 1 & ":B" & lloEnd - 1)
                lloRow = lEndrow + 1  '.Cells(.Rows.Count, 2).End(xlUp).Row + 1
                lloStart = 0
                lloEnd = 0
            End If
        Next

        With .Range("B" & lStartrow & ":B" & lEndrow)
            .Borders(xlEdgeLeft).LineStyle = xlNone
            .Borders(xlEdgeTop).LineStyle = xlNone
            .Borders(xlEdgeBottom).LineStyle = xlNone
            .Borders(xlEdgeRight).LineStyle = xlNone
            .Borders(xlInsideHorizontal).LineStyle = xlNone
                With .Borders(xlEdgeLeft)
                    .LineStyle = xlContinuous
                    .ColorIndex = xlAutomatic
                    .TintAndShade = 0
                    .Weight = xlThin
                End With
                With .Borders(xlEdgeTop)
                    .LineStyle = xlContinuous
                    .ColorIndex = xlAutomatic
                    .TintAndShade = 0
                    .Weight = xlThin
                End With
                With .Borders(xlEdgeBottom)
                    .LineStyle = xlContinuous
                    .ColorIndex = xlAutomatic
                    .TintAndShade = 0
                    .Weight = xlThin
                End With
                With .Borders(xlEdgeRight)
                    .LineStyle = xlContinuous
                    .ColorIndex = xlAutomatic
                    .TintAndShade = 0
                    .Weight = xlThin
                End With
        End With
  End With
End Sub


Anzeige
Super Danke Ralf, das klappt --))
10.06.2023 13:00:13
susi


nur ne Antwort, keine weitere Lösung
10.06.2023 10:32:08
Oberschlumpf
Hi susi,

Ralf war schneller! :-)
Aber sein Vorschlag waren zumindest auch meine Gedanken :-)
Auch ich hätte dir, mit Code, geschrieben, dass du - nur ein Makro - für viele Button verwenden kannst...eben unter der Voraussetzung, dass mit Klick auf Button die jeweils richtigen Parameter an das Makro übergeben werden.

Nun machst nur noch du es spannend - denn wir alle warten auf deine Antwort zu Ralfs Idee.

Ciao
Thorsten

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige