Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1520to1524
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 kopieren mit Makro...

Zeilen kopieren mit Makro...
08.11.2016 08:33:54
HaBe
Hallo,
ich habe ein dringendes Excel-Problem bei dem ich alleine nicht mehr weiterkomme.
Ich hatte es bereits in einem anderen Forum versucht...da konnte mir aber leider nicht geholfen werden.
Die Aufgabe die sich mir stellt sieht folgendermaßen aus.
Ich habe eine Excel-Datei die mit Daten gefüllt ist.
In den Spalten H und I stehen jeweils entweder 0, 1 oder die Felder sind leer.
Nun möchte ich mit einem Makro (siehe weiter unten) nur die Zeilen in eine neue Datei kopieren in den die Felder H und I leer sind.
Mit "meinem" Makro dass ich aus einem anderen Projekt übernommen habe wird erst einmal das komplette Datenblatt in eine neue Datei kopiert. Das ist also schon mal fast perfekt :-)
Nun müsste das Makro so abgeändert werden dass halt nur die Zeilen in die neue Datei kopiert werden in den die Felder H und I leer sind.
Die Daten beginnen ab Zeile 9...bis Zeile 8 ist es nur eine Erklärung bzw. Kopf der vom Makro ebenfalls mitkopiert wird.
Wer kann mir freundlicherweise das Makro anpassen?
Vielen Dank schon einmal... :-)
HaBe
Sub CopyZeilen()
Dim wksTab As Worksheet
Dim sFile As String, sPath As String
Dim strSpalte As String
sPath = ThisWorkbook.Path & "/daten-auszug.xlsx"
sFile = Dir(sPath)
If sFile = "" Then
Workbooks.Add
Else
Workbooks.Open sPath
Application.DisplayAlerts = False
If ActiveWorkbook.Worksheets.Count = 1 Then
If Worksheets(1).Name = "Tabelle1" Then
Worksheets.Add
Worksheets("Tabelle1").Delete
End If
Else
For Each wksTab In ActiveWorkbook.Worksheets
If wksTab.Name = "Tabelle1" Then
wksTab.Delete
Exit For
End If
Next wksTab
End If
Application.DisplayAlerts = False
End If
ThisWorkbook.Worksheets("Tabelle1").Copy before:=ActiveWorkbook.Sheets(1)
With ActiveSheet
' benutzten Bereich kopieren und Werte einfügen
.UsedRange.Copy
.UsedRange.PasteSpecial Paste:=xlValues
End With
Application.DisplayAlerts = False
For Each wksTab In ActiveWorkbook.Worksheets
If wksTab.Name  "Tabelle1" Then wksTab.Delete
Next wksTab
ActiveWorkbook.SaveAs sPath
Application.DisplayAlerts = True
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen kopieren mit Makro...
08.11.2016 15:26:58
snb

sub M_snb()
sheet2.columns(8).specialcells(2).offset(8).specialcells(2).entirerow.delete
sheet2.columns(9).specialcells(2).offset(8).specialcells(2).entirerow.delete
End Sub

AW: Zeilen kopieren mit Makro...
08.11.2016 16:59:36
HaBe
Danke...werde ich morgen einmal ausprobieren.
Bin jetzt leider nicht mehr auf der Arbeit :-)
HaBe
AW: Zeilen kopieren mit Makro...
09.11.2016 08:07:38
HaBe
Sorry...aber da komme ich als ANfänger leider nicht mit zurecht...
AW: Zeilen kopieren mit Makro...
09.11.2016 08:39:48
Bernd
Servus,
lade bitte mal eine Beispieldatei mit deinem Makro hoch.
Ich würde einfach das Datenblatt in eine neue Datei kopieren und in dieser neuen Datei alle überschüssigen Werte per Makro entfernen...
z.B. in der Art:

Option Explicit
Dim i As Integer
Dim intLZ As Integer
Sub löschen()
intLZ = ActiveWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = intLZ To 9 Step -1
If Cells(i, 8).Value = "" Then
If Cells(i, 9).Value = "" Then
Rows(i).EntireRow.Delete
End If
End If
Next i
End Sub
Grüße, Bernd
Anzeige
AW: Zeilen kopieren mit Makro...
09.11.2016 09:50:03
HaBe
Hallo Bernd,
ich habe hier mal eine Beispielsdatei hochgeladen.
https://www.herber.de/bbs/user/109293.xlsx
Im Beispiel dürften in die neue Datei nur die Zeilen 1 - 8 und die Datenzeilen 22, 30, 36 und 37 kopiert werden, da in den Zeilen 22, 30, 36 und 37 das Feld in Spalte H leer ist.
Gruß
HaBe
AW: Zeilen kopieren mit Makro...
09.11.2016 17:13:02
Bernd
Servus,
ist zwar Code-technisch nicht die sauberste, aber wenigstens eine funktionale Lösung :-)
https://www.herber.de/bbs/user/109302.xlsm
Grüße, Bernd
Anzeige
AW: Zeilen kopieren mit Makro...
10.11.2016 07:01:40
HaBe
Hallo Bernd,
erst einmal vielen Dank für die Anpassung des Makros. Es funktioniert fast perfekt...nur dass die Zeilen kopiert werden in denen in Feld H etwas steht...es sollen aber nur die in die neue Datei kopiert werden in denen Feld H leer ist :-)
Kann man das noch anpassen.-...?
Danke
HaBe
AW: Zeilen kopieren mit Makro...
10.11.2016 12:40:59
Bernd
Servus,
wer lesen kann ist klar im Vorteil :-) Sorry, mein Fehler.
Ersetze im Codeabschnitt

intLZ = ActiveWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = intLZ To 9 Step -1
If Cells(i, 8).Value = "" Then
If Cells(i, 9).Value = "" Then
Rows(i).EntireRow.Delete
End If
End If
Next i

das ="" durch "", also

intLZ = ActiveWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = intLZ To 9 Step -1
If Cells(i, 8).Value  "" Then
If Cells(i, 9).Value  "" Then
Rows(i).EntireRow.Delete
End If
End If
Next i
Grüße, Bernd
Anzeige
AW: Zeilen kopieren mit Makro...
10.11.2016 15:08:10
HaBe
Hallo Bernd,
perfekt...funktioniert super.
Das hätte ich ohne Deine Hilfe nicht hinbekommen, da ich in Sachen Makros, VBA usw. wirklich blutiger Anfänger bin.
Erst einmal vielen Dank für Deine Hilfe.
Jetzt habe ich noch eine allerletzte Frage.
Damit ich das Makro bequem aufrufen kann habe ich im Tabellenblatt eine Schaltfläche eingefügt und das Makro hinterlegt. Nun wird beim Kopieren der Daten auch diese Schaltfläche (mit Makro) in die neue Datei mitkopiert. Gibt es da irgendeinen Befehl damit die Schaltfläche nicht mitkopiert wird?
Danke
Habe
AW: Zeilen kopieren mit Makro...
10.11.2016 17:24:31
Bernd
Servus,
dazu solltest du vor der drittletzten Zeile diese Codezeile einsetzen:
ActiveWorkbook.Sheets("Tabelle1").Buttons("Name der Schaltfläche").Delete ' Name ändern!!!

also in deinem Fall

Sub CopyZeilen()
ActiveWorkbook.Sheets("Tabelle1").Buttons("Name der Schaltfläche").Delete ' Name ändern!!!
ActiveWorkbook.SaveAs sPath
Application.DisplayAlerts = True
End Sub

Grüße, Bernd
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige