Microsoft Excel

Herbers Excel/VBA-Archiv

Konto übertragen-löschen


Betrifft: Konto übertragen-löschen von: Helmut
Geschrieben am: 11.08.2017 08:40:49

Guten Morgen,

ich habe Daten in Kontoform SOLL / HABEN / SALDO
und möchte wenn ein Saldo Null ist die Daten ins Blatt Nullsalden
übertragen un im Blatt Salden löschen

anbei eine Beispieldatei

https://www.herber.de/bbs/user/115393.xlsx

Vielen Dank
Helmut

  

Betrifft: AW: Konto übertragen-löschen von: Daniel
Geschrieben am: 11.08.2017 09:04:55

Hi

beispielsweise mit diesem Code

Sub Nullsalden_Verschieben()
Dim Zelle As Range, check As Boolean
Sheets("Nullsalden").Cells.Clear

With Sheets("Salden").Columns(8)
    For Each Zelle In .SpecialCells(xlCellTypeConstants, 1)
        If Zelle.Value = 0 Then
            With Range(IIf(Zelle.Offset(-1, 0).Value = "", Zelle.End(xlUp), Zelle.Offset(-1, 0)) _
, Zelle)
                .EntireRow.Copy Sheets("Nullsalden").Cells(Rows.Count, 8).End(xlUp).Offset(2, - _
7)
                .Value = True
                check = True
            End With
        End If
    Next
    
    If check Then .SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
End With

End Sub
Gruß Daniel

PS:
dieser Forumseditor fügt bei langen Codezeilen automatisch einen Zeilenumbruch ein ( ein "_" und dann wird die Codezeile in der nächsten Textzeile weitergeschrieben)
Wenn du den Code aus dem Forum in den VBA-Editor kopierst, musst du diese Zeilenumbrüche entfernen, damit der Code läuft.

Gruß Daniel


  

Betrifft: AW: Konto übertragen-löschen-funkt... von: Helmut
Geschrieben am: 11.08.2017 09:26:36

Hallo

ich hab nur Sheets("Nullsalden").Cells.Clear gelöscht, da ich die Nullsalden "aufheben" möchte.

Ansonsten ein Superding, läuft wie gewünscht ( auch wenn ich den Code nicht wirklich durchschaue)
:-)

Vielen Dank und Gruß
Helmut


  

Betrifft: AW: Konto übertragen-löschen-funkt... von: Helmut
Geschrieben am: 11.08.2017 09:26:37

Hallo

ich hab nur Sheets("Nullsalden").Cells.Clear gelöscht, da ich die Nullsalden "aufheben" möchte.

Ansonsten ein Superding, läuft wie gewünscht ( auch wenn ich den Code nicht wirklich durchschaue)
:-)

Vielen Dank und Gruß
Helmut


  

Betrifft: Bitte um Hilfe zum Code von: Helmut
Geschrieben am: 14.08.2017 07:40:14

Guten Morgen,

der Code von Daniel funktioniert super, ich kann ihn nur nicht nachvollziehen :-(

Bitte um Erklärung bzw. Kommentar zum Code.

Danke und Gruß
Helmut


  

Betrifft: AW: Bitte um Hilfe zum Code von: Daniel
Geschrieben am: 14.08.2017 09:02:03

Hi

das ist eigentlich ganz einfach:

als erstes läuft eine Schleife über alle Zellen in Spalte H, die eine Zahl enthalten (macht das SpecialCells, die 1 steht für Zellen mit Zahlen)
von diese Zelle wird dann nach oben gesprungen (End(xlup)), bis zur nächsten Zelle mit Inhalt.
alle Zeilen, die zwischen diesen beiden Zellen liegen, werden ins neue Blatt kopiert.
dabei wird die Zielzelle auch wieder durch Sprung nach oben von der untersten Zelle auf dem Blatt ermittelt.

nach dem Kopieren werden diese Zellen mit dem wert WAHR gefüllt.

nach der Schleife selektiert der Code alle mit WAHR gefüllten Zellen (wieder über Specialcells, diesmal mit 4 für Wahrheitswerte) und löscht für alle gefundenen Zellen die die ganze Zeile.

Gruß Daniel


  

Betrifft: Danke Daniel-naja-ganz einfach ;-)) kwT von: Helmut
Geschrieben am: 14.08.2017 10:28:56




  

Betrifft: AW: so, wie man es von Hand auch machen würde von: Daniel
Geschrieben am: 14.08.2017 10:58:43

zunächst in den Summenzeilen nach "0" suchen.
dann von dort nach oben bis "Saldo" gehen und diese Zeilen in die neue Liste kopieren
dann diese Zeilen löschen.

im Makro werden auch nur Funktionen verwendet, die du als Anwender in Excel auch verwenden kannst (außer der Schleife)

Gruß Daniel