Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Automatisch Zeilen löschen





Frage

Hallo, ich btrauch Eure Hilfe! Ich hab eine Dateiu mit zwei Tabellenblätter. In Tabelle A sind alle Aufträge abgebildet. Diese Aufträge aktualisier ich mittels ODBC. Leider müssen Aufträge aus dieser Auswertung gelöscht werden. Das passiert per Hand. Die Auftragsnummer der zu löschenden Zeile die in Spalte A in steht schreibe ich zur Erinnerung immer in Tabelle B in Spalte A immer in die letzte freie Zeile. Jetzt habe ich schon sehr viele Aufträge in Tabelle B Spalte A stehen die ich jedesmal in Tabelle A suchen muss und per Hand dann löschen. Ist es möglich mittels VBA das zu automatisieren?? Der Code müsste in Tabelle B Spalte A die Auftragsnumern mit Tabelle A Spalte A vergleichen und wenn er einen identischen Wert findet diese Zeile löschen. Vielen Dank für Eure Mühe!!!! Gruß Elhamplo

Antwort 1 von Saarbauer

Hallo,

eine einfach Lösung, auf die schnelle

Sub Zeile_Löschen()
    Sheets(1).Select
    letzteZeileTab_1 = Range("A65536").End(xlUp).Row
    Sheets(2).Select
    letzteZeileTab_2 = Range("A65536").End(xlUp).Row
    For i = 1 To letzteZeileTab_2
        Sheets(1).Select
        For j = 1 To letzteZeileTab_1
            If Sheets(1).Range("A" & j).Value = Sheets(2).Range("A" & i).Value Then
                Rows(j).Select
                Selection.Delete Shift:=xlUp
            End If
        Next j
        letzteZeileTab_1 = Range("A65536").End(xlUp).Row
    Next i
End Sub



Gruß

Hemut

Antwort 2 von Elhamplo

Hallo,

Danke für die Hilfe!


wie muss ich den Code änder damit ich den Tabellen einen Namen geben kann. Tabelle 1 Aufträge und Tabelle 2 Info. Ist das schlimm das wenn in der Datei noch weitere Tabellen hinzukommen??

Danke für Deine Mühe!!!

Gruß

Elhamplo

Antwort 3 von Saarbauer

Hallo,

hier zum Beispiel

Sheets(1).Select in Sheets("Aufträge").Select
Sheets(2).Select in Sheets("Info").Select

und das an allen Stellen wo diese Angaben auftauchen.


Zu der zwieten Frage, grundsätzlich nein, aber dann wären entsprechende Anpassungen erfordelich

Gruß

Helmut

Antwort 4 von Elhamplo

Hallo,

danke für Deine Hilfe.

Ich muss in die Datei noch weiter Tabellen hinzufügen um Margen etc auszurechnen. Wie müstte ich den Code erweitern das ich immer mal wieder eine Tabelle hinzufügen kann und trotzdem das automatische löschen der Zeilen in der Tabelle "Aufträge" gegeben ist.

Danke für Deine Mühe!!

Gruß

Elhamplo

Antwort 5 von Saarbauer

hallo,

willst du auf die anderen Tabellen zurückgreifen oder haben die mit dem Löschen nichts zu tun?

Gruß

Helmut

Antwort 6 von Elhamplo

Hallo,

die anderen Tabellen werden mit der Tabelle Aufträge mit summenwenn oder sverweisen verknüpft. Mit dem Löschen haben die nicht zu tun. Das belibt weiterhin so. Alle was in der Tabelle

Sheets(2).Select in Sheets("Info").Select steht soll in Tabelle


Sheets(1).Select in Sheets("Aufträge").Select die Zeilen gelöscht werden.

Danke!!!

Gruß

Elhamplo

Antwort 7 von Elhamplo

Hallo,

die anderen Tabellen hben mit dem löschen nichts zu tun.

Danke!!!

Gruß

Elhamplo

Antwort 8 von gast123

hi all :-)

selectionen sollten verbannt werden

statt sheets,was auch ein diagramm sein koennte,waere worksheets(index/name) angebrachter

statt ein zeilenende anzugeben waere rows.count angebrachter

deklarationen sind gar nicht vorhanden und die variablen werden nun als variant angegeben,eine arge speicherverschwendung

gruss gast123

Antwort 9 von Elhamplo

Hallo,

danke für den Tip!!

Hab da was rumprobiert aber leider nicht hinbekommen. Kannst Du mir da ein Beispiel zeigen??

Danke für die Mühe!!!

Gruß

Elhamplo

Antwort 10 von Saarbauer

Hallo,

so meint @gast123 es


Sub Zeile_Löschen()
    Sheets("Aufträge").Select
    letzteZeileTab_1 = Rows.Count
    Sheets("Info").Select
    letzteZeileTab_2 = Rows.Count
    For i = 1 To letzteZeileTab_2
        Sheets("Aufträge").Select
        For j = 1 To letzteZeileTab_1
            If Sheets(1).Range("A" & j).Value = Sheets(2).Range("A" & i).Value Then
                Rows(j).Delete Shift:=xlUp
            End If
        Next j
        letzteZeileTab_1 = Rows.Count
    Next i
End Sub



leider sind so in den Raum geworfene VBA-Brocken keinem, der sich mit der Programmierung nicht so gut auskennt, besonders hilfreich. Aus meiner Sicht verwirren diese eher.

Gruß

Hemut

Antwort 11 von gast123

hi helmut :-)

sollte eine hilfestellung fuer dich sein,da setze ich vorraus das du das verstehst :-))

gruss gast123

Antwort 12 von Elhamplo

Hallo

uhhh sorry!!! Hab`s total vergessen. Sorry!!!!!

Habs ausprobiert. Leider klappt das noch nicht so ganz. Kann ich auch sagen ab welcher Zeile er beginnen soll zu löschen??

Danke!!!!!!

Tut mir echt leid das ich mich erst jetzt melde!

Gruß

Elhamplo

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: