Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1344to1348
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

Zeilen markieren und löschen

Zeilen markieren und löschen
22.01.2014 18:55:20
wolf
Hallo Excelfriends,
ich bitte um Eure Hilfe. Ich muß einige 100.000 Datensätze von Excel in eine Datenbank exportieren. Um das ganze effizenter zu gestalten suche ich ein Makro das mir eine variable Anzahl von Datensätzen (Zeilen) über die ganze Breite ab Zeile 2 incl. der darunterliegenden Leerzeilen markiert und löscht. Die Leerzeilen müssen für den Export sein. Die Leerzeilen können zwischen 1-3 liegen. Damit Ihr Euch ein Bild machen könnt, habe ich ein Muster hochgebeamt. https://www.herber.de/bbs/user/88944.xlsx
Wenn Ihr mir da helfen könntet, wäre super.
Gruß
wolf

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Rückfrage(n)
23.01.2014 00:46:22
Matze
Hallo Ludwig,
nur zum Verständnis( ob ich helfen kann sehen wir dann )
- in der Datei ist nur eine Spalte, ist denn die Stelle mit der Leeren Zelle dann Zeilemäßig leer?
- oder muss für Jede Spalte nach leeren Zellen gesucht werden um diese zu löschen?
Zitatauszug:
suche ich ein Makro das mir eine variable Anzahl von Datensätzen (Zeilen) über die ganze Breite ab Zeile 2 incl. der darunterliegenden Leerzeilen markiert und löscht.
Das Makro für den Export hast du?
- was meinst du mit variable Datensätze UND Leerzeilen (warum markieren) und löscht
Datensatz von Zeile 3-100 löschen bis Leerzeilen? Danach das nächste Paket bis Leerzeilen?
Also bissel genauer beschreiben , danke.
Gruß Matze

Anzeige
AW: Rückfrage(n)
23.01.2014 17:55:31
wolf
Hallo Matze,
Danke für Deine Antwort. Ich will versuchen präzise zu antworten. Ich habe nocheinmal eine Mustertabelle hochgeladen, damit Du siehst, wie das ganze aussieht. Es kommt bei der Prozedur darauf an, daß der Export blockweise bis zur Leerzeile(n) erfolgt und dann der Block mit Leerzeile(n) gelöscht wird, damit der nächste Block in A2 beginnt. Ich habe meine Idee mit dem Makrorecorder aufgezeichnet. Mit Strg-a führt er das Makro aus. Nachteil: Ich muss hier eine bestimmte Anzahl Zeilen angeben. Meine Blöcke haben aber eine unterschiedliche Anzahl Zeilen.
Der Export wird ausschließlich von der Datenbank aus gesteuert. In Excel ist kein Makro Export nötig.
Ein Block kann von 1 bis 500 Zeilen haben.

Die Datei https://www.herber.de/bbs/user/88950.xlsm wurde aus Datenschutzgründen gelöscht


Bis denne
wolf

Anzeige
AW: Rückfrage(n)
23.01.2014 18:19:19
Christian
hallo Wolf,
so zB.
Option Explicit
Sub TestIt()
With Sheets("Tabelle1")
.Cells(2, 1).Resize(.Cells(2, 1).End(xlDown)).EntireRow.Delete
Do While .Cells(2, 1) = ""
If .Cells(.Rows.Count, 1).End(xlUp).Row = 1 Then
Exit Do
End If
.Rows(2).Delete
Loop
End With
End Sub
Gruß
Christian

AW: Rückfrage(n)
23.01.2014 19:03:44
wolf
Hallo Christian,
super, genau das was mir die Arbeit enorm leichter macht.
Kann ich mit noch einem Problem kommen? Ich brauche die Zahl der Datensätze von A2 bis..., ohne Leerzeile in M2.
Vorerst mal herzlichen Dank
Gruß
wolf

Anzeige
AW: Rückfrage(n)
23.01.2014 19:53:36
wolf
Hallo Christian,
ist schon komisch, in meiner Testmappe die ich hochgeladen habe, funktioniert Dein Makro astrein. In meiner Arbeitsmappe kommt "Laufzeitfehler 1004". Liegt es vielleicht daran, daß in der Testmappe nummerische und in der Arbeitsmappe alphanummerische Werte stehen? Und letzte Frage: kann man das Makro
auch mit einer Tastenkombination (z.B. Strg+a) laufen lassen.
Gruß
wolf

AW: Rückfrage(n)
24.01.2014 08:39:19
hary
Moin wolf
Der Fehler 1004 kommt wenn in deiner richtigen Mappe in SpalteA nix steht.
hier .Cells(2, 1)wird mit der 1 die SpalteA gesetzt. Vlt. ist es bei dir eine andere Spalte, dann musst du die Spaltennummer anpassen.
Der Fehler passiert auch wenn ab Zeile2 nix mehr drinsteht. Daher pruefen ob in Zeile2 etwas drinsteht.
Sub Makro1()
With Sheets("Tabelle1")
If .Cells(2, 1) = "" Then Exit Sub 'pruefen ob in A2 was drinsteht
'hier wird die Anzahl der zu loeschenden eingetragen,------
.Range("M2") = Application.CountA(.Cells(2, 1).Resize(.Cells(2, 1).End(xlDown)))
'------- ansonsten zwischen loop und End With setzen -------
.Cells(2, 1).Resize(.Cells(2, 1).End(xlDown)).EntireRow.Delete
Do While .Cells(2, 1) = ""
If .Cells(.Rows.Count, 1).End(xlUp).Row = 1 Then
Exit Do
End If
.Rows(2).Delete
Loop
End With
End Sub

gruss hary

Anzeige
AW: Rückfrage(n)
24.01.2014 18:32:49
wolf
Hey Hary,
vielen Dank für Deine Mühe.
Ich habe Dein Makro getestet, leider sind da noch 2 Probleme drin.
1. Es läuft nur mit nummerischen Werten. Es soll aber mit alphanumerischen Werten funktionieren. Der Datenblock beginnt immer bei A2 und ist nie leer.
2. Danke für das Datensätze zählen, aber es nützt so nicht. So lange der erste Block da steht, muß der Wert in M2 sichtbar sein, er wird für den Export gebraucht. Wenn der nächste Block in A2 steht, dann der neue Wert usw.
Bis denne
Gruß wolf

AW: Rückfrage(n)
25.01.2014 06:02:09
hary
Moin ludwig
Da hab ich auch gepennt. Es fehlte das .Row hinter End(xlDown)
Diesen Code in den Code der Arbeitsmappe. Damit beim oeffnen gleich die Anzahl eingetragen wird.
Private Sub Workbook_Open()
With Worksheets("Tabelle1")
.Range("M2") = Application.CountA(.Cells(2, 1).Resize(.Cells(2, 1).End(xlDown).Row))
End With
End Sub

und das Makro.
Sub Makro1()
With Sheets("Tabelle1")
If .Cells(2, 1) = "" Then Exit Sub 'pruefen ob in A2 was drinsteht
.Cells(2, 1).Resize(.Cells(2, 1).End(xlDown).Row).EntireRow.Delete
Do While .Cells(2, 1) = ""
If .Cells(.Rows.Count, 1).End(xlUp).Row = 1 Then
Exit Do
End If
.Rows(2).Delete
Loop
.Range("M2") = Application.CountA(.Cells(2, 1).Resize(.Cells(2, 1).End(xlDown).Row))
End With
End Sub

gruss hary

Anzeige
AW: Rückfrage(n)
25.01.2014 08:57:20
wolf
Guten morgen Hary,
Danke für Deine Antwort, so ist es richtig, mit einer Ausnahme. Wenn der erste Datenblock gelöscht wird erscheint die Anzahl vom neuen Datenblock der wieder in A2 beginnt nicht mehr, wird aber für den nächsten Export wieder gebraucht.
Gruß
wolf

AW: geht doch
25.01.2014 09:15:55
hary
Moin
Das klappt doch. Wenn du jetzt die Mappe oeffnest ist die Anzahl in ZelleM2 12. Loescht du den ersten Block steht im M2 die Anzahl 15.

Die Datei https://www.herber.de/bbs/user/88966.xlsm wurde aus Datenschutzgründen gelöscht


gruss hary

Anzeige
AW: geht doch
25.01.2014 09:30:00
wolf
Sorry, es war mein Fehler, jetzt haut es hin, wunderbar.
Herzlichen Dank
Schönes Wochenende
Gruß
wolf

AW: geht doch
25.01.2014 10:05:51
Hajo_Zi
warum offen?

AW: geht doch
25.01.2014 12:30:34
wolf
Vor lauter Freude habe ich vermutlich unwissentlich den Haken gesetzt.
Gruß
wolf

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige