Thema Datum  Von Nutzer Rating
Antwort
08.08.2024 19:23:10 Newbeee
NotSolved
09.08.2024 00:24:10 ralf_b
NotSolved
09.08.2024 09:15:47 Gast37991
NotSolved
Blau leere Zeilen löschen
09.08.2024 11:40:17 ralf_b
NotSolved

Ansicht des Beitrags:
Von:
ralf_b
Datum:
09.08.2024 11:40:17
Views:
55
Rating: Antwort:
  Ja
Thema:
leere Zeilen löschen

da ich keine Ahnung habe was du mit dem Daten später noch machst oder welche Formeln da noch so wirken, erstelle ich den Code so wie ich es als korrekt erachte. Missverständnisse in der Umsetzung inklusive. Je besser die Beschreibug ,desto höher die Wahrscheinlichkeit das es gleich beim ersten Mal passt. Entgegen meiner Gewohnheit habe ich den Code kommentiert. Es ist dir nicht verboten unklare Ausdrücke zu googlen. Von einer kostenlosen Gefälligkeit, solltest du keine Wunder erwarten.  

Du hast Recht das die Sortierung "verkehrt" herum ist.

With Tabelle2
    lastrow = .UsedRange.Rows.Count 'funktioniert nur wenn usedrange in Zeile 1 beginnt
     For i = lastrow To 1 Step -1  'rückwärtsschleife macht man so bei Zeilen löschen, sonst kommt der Schleifenzähler durcheinander
       If .Range("a" & i) = "" Then 'auf leere Zellen prüfen, dann löschen
            Tabelle1.Range("a" & i).EntireRow.Delete
       Else
           'sonst "kopieren"
           'intersect bildet eine Schnittmenge aus der ganzen Zeile (16000 Zellen)
           'und dem benutzten Bereich, ergibt viel kleineren Bereich
           Set rng = Intersect(.Range("a" & i).EntireRow, .UsedRange)
           'prüfen ob es überhaupt was zu "kopieren" gibt
           If Not rng Is Nothing Then
             'direkte Zuweisung der Werte auf die nächste freie Zeile, ohne kopieraufwand
             Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(1, rng.Columns.Count).Value = rng.Value
           End If
       End If
     Next i
  End With

hier ein anderer Vorschlag. Nur übertragen der nicht leeren Zeilen mit Vorwärtsschleife. Die erste Zeile in Tab1 wird hier festgelegt und bei einem Treffer um 1 erhöht.


Sub Tabellekopieren_und_leereZeilenlöschen_mit_FornextSchleife()
 
Dim i&, firstrowTab1&, cols&
Dim rng As Range
 
With Tabelle2
    Set rng = Intersect(.Range("A:H"), .UsedRange)

    If rng Is Nothing Then Exit Sub
    
    cols = rng.Columns.Count
    firstrowTab1 = 0
    
     For i = 1 To rng.Rows.Count
       If rng.Cells(i, 1).Value <> "" Then
           firstrowTab1 = firstrowTab1 + 1
           Tabelle1.Cells(firstrowTab1, 1).Resize(1, cols).Value = rng.Rows(i).Cells.Value
       End If
     Next i
  End With
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
08.08.2024 19:23:10 Newbeee
NotSolved
09.08.2024 00:24:10 ralf_b
NotSolved
09.08.2024 09:15:47 Gast37991
NotSolved
Blau leere Zeilen löschen
09.08.2024 11:40:17 ralf_b
NotSolved