Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1000to1004
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

VBA - Zelle kopieren bis Wert einer Zelle null ist

VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 08:39:35
Schulze
Halli Hallo,
ich bin ziemlicher Neuling in VBA. Daher würde ich euch bitten mir bei meiner Fragestellung zu helfen und zwar wie folgt: Ich möchte aus einer Tabelle aller Zellen kopieren, bis der Wert einer Zelle 0 annimmt. Diesen bestimten Bereich möchte ich in einer neuen Datei abspeichern.
Eine weitere Frage, die bezieht sich zwar nicht direkt auf VBA, sondern auf Excel. Ich habe eine Drop-Down-Liste erstellt über Daten, Gültigkeit etc. Kann ich so eine Liste tabellenblätterübergreifend erstellen oder imer nur auf das jeweilige Tabellenblatt.
Gruss Melchior

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 09:26:00
Tino
Hallo,
ein Vorschlag, verwende den Autofilter und filtere deine Tabelle nach >0.
Dieses Makro Kopiert die Sichtbaren Zellen in eine neue Excel Datei.

Sub Test()
Dim Bereich As Range
Application.ScreenUpdating = False
Set Bereich = Tabelle1.UsedRange.SpecialCells(xlCellTypeVisible)
With Workbooks.Add
Bereich.Copy
.ActiveSheet.Range("A1").PasteSpecial
Application.CutCopyMode = False
End With
Application.ScreenUpdating = True
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 09:57:59
Schulze
Hi Tino,
meine Tabelle besteht aus drei Tabellenblätter und ich möchte aus dem Tabellenblatt "Ausgabe" die entsprechenden Sachen in eine neue Datei kopieren.
Mit dem Autofilter geht nicht, ich müsste da schon irgendwie ein Makro (schliefe?) einbauen.
gruss melchior

AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 11:02:00
Tino
Hallo,
wie wäre es hiermit, den Bereich wo deine 0 vorkommt musst du noch anpassen und auch den Tabellennamen den du verarbeiten möchtest, im Beispiel wird die Spalte A durchsucht.

Sub Test()
Dim lngRow As Long
Application.ScreenUpdating = False
'Name der Tabelle
Sheets("Tabelle1").Copy
With ActiveSheet
For lngRow = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
'Zu durchsuchende Bereich anpassen, wo deine 0 vorkommt
If .Cells(lngRow, "A") = 0 Then
.Rows(lngRow).Delete
End If
Next lngRow
Application.CutCopyMode = False
End With
Application.ScreenUpdating = True
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 11:11:19
Schulze
Hi Tino,
klappt soweit super. Besten dank :-)
aber wie mache ich das, wenn der Wert 0 nicht jedes mal an der gleichen Stelle iun der Spalte ist, z.b. einmal A20, ein anderes mal A40. und das dann wirklich nur der teil bis zur null kopiert wird.
das habe ich nun leider noch nicht ganz verstanden. :-(
gruss melchior

AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 11:37:57
Tino
Hallo,
versuche mal den Code zu erklären.
Zuerst wird die Tabelle in eine neue Arbeitsmappe kopiert.
Nun erfolgt die Prüfung und das Löschen der Zeilen, dies macht man immer von unten nach oben, nie
von oben nach unten.
For lngRow = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
Hier wird die letzte Zeile ermittelt und die Schleife läuft in einer schritten Rückwerts.
If .Cells(lngRow, "A") = 0 Then
Hier wird geprüft ob die Zelle in Spalte A den Wert 0 aufweist.
Ergibt die abfrage True (Wahr) wird die Zeile gelöscht.
.Rows(lngRow).Delete
Diese Schleife läuft nun bis lngRow den Wert 1 hat, also bei der Zeile 1 angekommen ist.
Wenn ich mir aber deine Frage durchlese, möchtest du Prüfen wo in Spalte A die erste 0 auftaucht und den Nachfolgenden Bereich löschen?!
Dies müsste man so machen.

Sub Test()
Dim lngRow As Long
Application.ScreenUpdating = False
'Name der Tabelle
Sheets("Tabelle1").Copy
With ActiveSheet
For lngRow = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Row
'Zu durchsuchende Bereich anpassen, wo deine 0 vorkommt
If .Cells(lngRow, "A") = 0 Then
.Rows(lngRow & ":" & .Cells.SpecialCells(xlCellTypeLastCell).Row).Delete
Exit For
End If
Next lngRow
Application.CutCopyMode = False
End With
Application.ScreenUpdating = True
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 12:06:00
Schulze
Hi Tino,
klappt super :-) allerbesten dank ;-)
eine letzte frage habe ich noch für mich persönlich: welchen code muss ich eingeben, wen ich die den bereich in einer vorgefertigen datei abspeichern will. z.b. zieldatei: BlankoFormular ?
Gruss Melchior

AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 12:27:00
Tino
Hallo,
müsste so gehen, habe dies aber jetzt nicht getestet.

Sub Test()
Dim lngRow As Long
Application.ScreenUpdating = False
'Datei öffnen
Workbooks.Open "C:\MeineDatei.xls"
'Tabelle in diese Datei kopieren
ThisWorkbook.Sheets("Tabelle1").Copy Before:=Workbooks("MeineDatei.xls").Sheets(1)
With Workbooks("MeineDatei.xls").ActiveSheet
For lngRow = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Row
If .Cells(lngRow, "A") = 0 Then
.Rows(lngRow & ":" & .Cells.SpecialCells(xlCellTypeLastCell).Row).Delete
Exit For
End If
Next lngRow
End With
Application.ScreenUpdating = True
End Sub


Gruß Tino

Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 13:27:15
Schulze
Hi Tino,
klappt ja soweit ja fast perfekt. Nur irgendwie löscht der beim letzeten schritt so ziemlich alles, auch selbst wenn wenn ich spalte A ein Wert steht. Mit dem Kopieren und Öffnen einer neuen Datei klappt wirklich super, nur irgendwie bei der Schleife hakt es meiner Meinung leider noch etwas. Sorry dass ich soviel aufwand mache :-(
Gruss Melchior

AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 11:14:00
Schulze
Hi Tino,
tut mir wirkich leid, ich bin wohl echt ein nerviger patient :-(
wenn ich es so richtig verstanden habe, wird bei deinem vorschalg zunächst das entsprechende datenblatt unter einer anderen datei gespeichert und dann erst durchsucht.
ich habe mich vielleicht etwas unglücklich ausgedrückt, erst müsste nömlich die operation "suche Wert 0 und kopiere alle oberen Werte in eine neue Datei".
gruss melchior

Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 11:45:00
Tino
Hallo,
na dann machen wir es so rum, aber deine Daten gehen in Deiner Datei verloren,
sobald du diese speicherst.


Alle Zeilen die in A eine 0 haben.


Sub Test1()
Dim lngRow As Long
Application.ScreenUpdating = False
'Name der Tabelle
With ActiveSheet
For lngRow = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
'Zu durchsuchende Bereich anpassen, wo deine 0 vorkommt
If .Cells(lngRow, "A") = 0 Then
.Rows(lngRow).Delete
End If
Next lngRow
.Copy
End With
Application.ScreenUpdating = True
End Sub


Bis zum ersten Auftreten einer 0


Sub Test2()
Dim lngRow As Long
Application.ScreenUpdating = False
'Name der Tabelle
With ActiveSheet
For lngRow = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Row
'Zu durchsuchende Bereich anpassen, wo deine 0 vorkommt
If .Cells(lngRow, "A") = 0 Then
.Rows(lngRow & ":" & .Cells.SpecialCells(xlCellTypeLastCell).Row).Delete
Exit For
End If
Next lngRow
.Copy
End With
Application.ScreenUpdating = True
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 14:06:44
Schulze
Hi Tino,
Ich bziehe mich im folgenden auf deinen vorherigen Eintrag. Klappt ja soweit ja fast perfekt, nur irgendwie löscht der beim letzeten schritt so ziemlich alles, auch selbst wenn wenn ich spalte A ein Wert steht. Mit dem Kopieren und Öffnen einer neuen Datei klappt wirklich super, nur irgendwie bei der Schleife hakt es meiner Meinung leider noch etwas. Sorry dass ich soviel aufwand mache :-(
Gruss Melchior

AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 14:12:25
Tino
Hallo,
könntest du mal eine Beispielmappe mit den Werte die so in der Spalte A vorhanden sind hochladen.
(auch Formatierungen beachten)
Gruß Tino

Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 15:17:29
Schulze
Hi Tino,
anbei mal eine grobe Übersicht.
Kann es vielleicht sein, weil ich die Wert in dieser tabelle per Verknüpfung einfüge, dass es deshalb nicht klappt. Muss ich die werte alternativ per makro einfügen lassen?
https://www.herber.de/bbs/user/54724.xls
gruss melchior

AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 15:52:43
Tino
Hallo,
habe es mal an deiner Tabelle getestet,
mit Formel die als Ergebnis 0 haben und Zellen wo ich von Hand die 0 eingetragen habe, beide Versionen funktionieren?
Gruß Tino

AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 16:18:00
Schulze
Hi
klappt wirklich wunderbar. Dann liegt es bei meiner Orginaldatei wohl daran, dass eine Verknüpfung mittels Formel hinterlegt ist. Muss ich das irgednwie umdeichseln.
Erstmal besten dank für deine Arbeit und Mühe. Hat wunderbar geklappt.
Gruss Melchior

Anzeige
AW: VBA - Zelle kopieren bis Wert einer Zelle null ist
19.08.2008 16:30:35
Tino
Hallo,
du kannst mit
Cells.Value = Cells.Value
zuvor alle Werte aus Formeln fest eintragen, dann sind die Formeln aber verschwunden.
Gruß Tino

403 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige