Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1932to1936
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

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

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

Betreff
Datum
Anwender
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


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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige