Thema Datum  Von Nutzer Rating
Antwort
29.03.2020 18:06:24 Marco
NotSolved
29.03.2020 18:13:01 Mase
NotSolved
29.03.2020 19:44:29 Gast80831
NotSolved
30.03.2020 08:41:07 Mase
*****
NotSolved
Rot Range ab letzte Zelle ohne Inhalt löschen
02.04.2020 07:36:40 Marco
NotSolved
02.04.2020 08:58:50 Mase
*****
NotSolved
02.04.2020 09:40:28 Gast54435
NotSolved
02.04.2020 14:49:28 Mase
*****
NotSolved
03.04.2020 08:46:50 Marco
NotSolved
03.04.2020 09:02:06 Mase
*****
NotSolved
03.04.2020 10:24:29 Gast93081
NotSolved
03.04.2020 11:41:05 Mase
*****
NotSolved
03.04.2020 12:08:42 Marco
NotSolved
03.04.2020 12:29:58 Mase
NotSolved
06.04.2020 07:05:42 Gast49904
NotSolved
12.04.2020 10:42:40 Gast29349
NotSolved
13.04.2020 17:53:49 Mase
NotSolved
13.04.2020 18:05:37 Gast21965
NotSolved

Ansicht des Beitrags:
Von:
Marco
Datum:
02.04.2020 07:36:40
Views:
680
Rating: Antwort:
  Ja
Thema:
Range ab letzte Zelle ohne Inhalt löschen

Moin Moin mein Namensvetter ;-),

erst mal danke für deine Hilfe, ein sorry, dass ich jetzt erst antworte.

So wirklich verstehe ich das nicht und ich kann auch nicht auf normalen Weg die letzte Zeile einer Inteligenten Tabelle löschen.

Wahrscheinlich ist der IQ der Tabelle einfach höher als meiner, wenn sie sich so wehrt ;-).

 

Ich rolle das feld jetzt aber mal von hinten auf und poste dir mal Stück für Stück den ganzen und versuche mal ein bissel zu erklären was ich wo und warum gemacht habe. Aber bitte nicht lachen, wie schon mal gesagt, bis auf den Makrorekorder und hier und da mal ein Codeschnippsel bin ich nicht wirklich der VBA könner.

Und ich entschuldige mich schon jetzt für die Wall of Text.

los ging es hier (

    Application.ScreenUpdating = False

    Dim lngSpalte As Long
    Dim wksZiel As Worksheet
    
    Set wksZiel = Sheets("import")
    
    With wksZiel
    lngSpalte = .Cells(6, Columns.Count).End(xlToLeft).Column
    If Application.CountA(.Columns(lngSpalte)) > 0 Then lngSpalte = lngSpalte + 1
   
    End With
   
    Range("TDiFirma[nName]").Select
    Selection.Copy
    wksZiel.Cells(5, lngSpalte).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
   
    Sheets("import").Select

Ich will will mir eine selectierte Spalte vom Tabellenblatt TDIFirma auf das Tabelenblatt import kopieren.

Alles so weit so gut und funktioniert bis auf ein Detail auch ganz gut.

Leider ist das Detail, das er wie bei meinem Problem am Anfang die erste leere Zeile nicht erkennt und es direkt danaben einfügt.

Daraufhin habe ich versucht, aus dem Wertefilter ein Textfilter zu machen und follgende Zeile in die darauffolgende Zeile abgeändert.

If Application.CountA(.Columns(lngSpalte)) > 0 Then lngSpalte = lngSpalte + 1
If Application.CountA(.Columns(lngSpalte)) = "" Then lngSpalte = lngSpalte + 1

leider ohne Erfolg.

Daher habe ich das Spiel einfach umgedreht versucht, das er sofern auf A4 in import (wo normal die Überschrift steht) kein inhalt ist einfach auf A5 eine tabelle einfügt und den Code wie follgt mit einer kleinen Schleife erweitert. Sie follgenden Code.

    If (Sheets("import").Range("A4")) = 0 Then
    
            'Tabelle einfügen
            ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A5:$A15005"), , xlNo).Name = _
            "Übersicht"
            Range("Übersicht[[#All],[Spalte1]]").Select
            ActiveSheet.ListObjects("Übersicht").TableStyle = "TableStyleLight9"
            'Tabelle Zeilenumbruch erlauben
            Range("Übersicht").Select
            With Selection
                .WrapText = True
            End With
            'Zeile 2 löschen, um Zusatzzeile vom einfügen der Tabelle auszugleichen
            Rows("2:2").Select
            Selection.Delete Shift:=xlUp
            End If
    
    Else
    ' mach weiter
    '...
    End If

Application.ScreenUpdating = True
   
End Sub

Leider muss ich in der Tabelle die Range schon deffinieren und da die Inhalte auch mal etwas mehr sein können,

habe ich die Tabelle erst mal auf 15.000 Zeilen festgelegt, was die Tabelle aber auch sehr Riesig macht.

Hinzu kommt, das beim einfügen der Tabelle auch noch eine Zeile eingefügt wird, um die Überschrift auszugleichen, was ich nicht geändert bekomme.

Daher lasse ich danach einfach zeile 2 löschen, damit das einfügen bei den weiteren Spalten ohne Probleme funktioniert.

Nun habe ich follgenden Code gefunden, der mir hilft die leeren Zeilen zu löschen und auch super funktioniert.

Sub Schaltfläche3_Klicken()
    'Zeile mit wert xxxx löschen
    '** Ermittlung der letzten Zeile in Spalte A
    lz = Cells(Rows.Count, 1).End(xlUp).Rows.Row
     
    '** Durchlauf aller Zeilen
    For t = lz To 5 Step -1 'Zählung rückwärts bis Zeile 2
    'Abfragen, ob in der ersten Spalte der Buchstabe "x" steht
        If Cells(t, 1).Value = "" Then
            Rows(t).Delete Shift:=xlUp
        End If
    Next t
End Sub

Das Problem hier ist aber, dass er bei 15k Zeilen sehr lange braucht.

Daher wollte ich einfach nur die letzte Zeile suchen und beim ersten Durchgang vom Erstellen der Tabelle, einfach die letzte Zeile mit Inhalt suchen und pauschal x zeilen löschen.

 

mfg auch Marco ;-)


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
29.03.2020 18:06:24 Marco
NotSolved
29.03.2020 18:13:01 Mase
NotSolved
29.03.2020 19:44:29 Gast80831
NotSolved
30.03.2020 08:41:07 Mase
*****
NotSolved
Rot Range ab letzte Zelle ohne Inhalt löschen
02.04.2020 07:36:40 Marco
NotSolved
02.04.2020 08:58:50 Mase
*****
NotSolved
02.04.2020 09:40:28 Gast54435
NotSolved
02.04.2020 14:49:28 Mase
*****
NotSolved
03.04.2020 08:46:50 Marco
NotSolved
03.04.2020 09:02:06 Mase
*****
NotSolved
03.04.2020 10:24:29 Gast93081
NotSolved
03.04.2020 11:41:05 Mase
*****
NotSolved
03.04.2020 12:08:42 Marco
NotSolved
03.04.2020 12:29:58 Mase
NotSolved
06.04.2020 07:05:42 Gast49904
NotSolved
12.04.2020 10:42:40 Gast29349
NotSolved
13.04.2020 17:53:49 Mase
NotSolved
13.04.2020 18:05:37 Gast21965
NotSolved