Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellenbereich kopieren wenn Bedingung

Zellenbereich kopieren wenn Bedingung
05.01.2007 08:37:35
Daniel
Hallo!
Ich möchter per VBA( andere Lösungen kommen nicht in Frage) die Zellen A-H vom Blatt "Quelle" zum Blatt "Ziel" kopieren, aber nur wenn in L oder M eine 1 steht.
In "Ziel" sollen die Einträge fortlaufend stehen, also immer in der nächsten Zeile und es sollen nur Inhalte kopiert werden.
Wie muss so ein Makro aussehen. Habe davon leider wenig Ahnung.
Danke für Hilfe!
Daniel
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellenbereich kopieren wenn Bedingung
05.01.2007 09:43:41
Erich
Hallo Daniel,
wenn die Spalte N in "Quelle" frei ist und verwendet werden kann und wenn es keinen Autofilter gibt,
ginge das z. B. so:
Option Explicit
Sub Bestimmte_Saetze_kopieren()
' Quellspalten A bis M müssen in Zeile 1 Überschriften haben (ohne Lücken)
' Kopiert werden die Quellspalten 1 bis 8 der Zeilen,
'    in denen in Spalte L oder M (12 oder 13) die Zahl 1 steht.
' Quellspalte N (14) wird gelöscht.
Dim lngZ As Long
With Sheets("Quelle")
lngZ = .Cells(Rows.Count, 12).End(xlUp).Row
If lngZ < .Cells(Rows.Count, 13).End(xlUp).Row Then _
lngZ = .Cells(Rows.Count, 13).End(xlUp).Row
.Columns(14).Clear
.Cells(1, 14) = "xxx"
Range(.Cells(2, 14), .Cells(lngZ, 14)).FormulaR1C1 = "=((RC[-2]=1)+(RC[-1]=1))>0"
.Columns(14).AutoFilter
.Columns(14).AutoFilter Field:=1, Criteria1:=True
Range(.Cells(2, 1), .Cells(lngZ, 8)).Copy
End With
With Sheets("Ziel")
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lngZ, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
With Sheets("Quelle")
.Columns(14).AutoFilter
.Columns(14).Clear
End With
End Sub
Rückmeldung wäre nett! - Erich aus Kamp-Lintfort wünscht allen einen guten Start ins neue Jahr!
Anzeige
AW: Zellenbereich kopieren wenn Bedingung
05.01.2007 09:48:55
Daniel
Hallo Erich,
einen Filter will ich nicht benutzen. Die Struktur des Blatts und die Reihenfolge der Daten muss unbedingt beibehalten werden.
Die Spalte I ist außerdem leer.
Danke,
Daniel
AW: Zellenbereich kopieren wenn Bedingung
05.01.2007 09:54:40
Ramses
Hallo
Hast du den Beitrag von Erich überhaupt richtig gelesen ?
Ich empfehle:
Ausprobieren - Nachdenken - Dann Beitrag schreiben
Gruss Rainer
Anzeige
AW: Zellenbereich kopieren wenn Bedingung
05.01.2007 10:02:16
Daniel
Hallo Rainer, hallo Erich!
Ich bitte vielmals um Entschuldigung. Ich hatte das falsch verstanden und daher nicht ausprobiert.
Es geht aber wie gewünscht!!!
Vielen, Vielen Dank daher!
Daniel
Danke für Rückmeldung - und neue Version
05.01.2007 14:10:23
Erich
Hallo Daniel,
der Code war nur ein "Schön-Wetter"-Code - er läuft richtig, wenn in Spalte L oder M eine 1 steht, sonst produziert er Unsinn.
Deshalb hier eine verbesserte Version:
Option Explicit
Sub Bestimmte_Saetze_kopieren()
' Quellspalten A bis M müssen in Zeile 1 Überschriften haben (ohne Lücken)
' Kopiert werden die Quellspalten A-H (1-8) der Zeilen,
'    in denen in Spalte L oder M (12 oder 13) die Zahl 1 steht.
' Quellspalte N (14) wird gelöscht.
Dim lngZ As Long
With Sheets("Quelle")
lngZ = .Cells(Rows.Count, 12).End(xlUp).Row
If lngZ < .Cells(Rows.Count, 13).End(xlUp).Row Then _
lngZ = .Cells(Rows.Count, 13).End(xlUp).Row
If lngZ <= 1 Then Exit Sub
If WorksheetFunction.SumIf(Range(.Cells(2, 12), .Cells(lngZ, 13)), 1) = 0 Then Exit Sub
.Columns(14).Clear
.Cells(1, 14) = "xxx"
Range(.Cells(2, 14), .Cells(lngZ, 14)).FormulaR1C1 = "=1*(((RC[-2]=1)+(RC[-1]=1))>0)"
.Columns(14).AutoFilter
.Columns(14).AutoFilter Field:=1, Criteria1:=1
Range(.Cells(2, 1), .Cells(lngZ, 8)).Copy
End With
With Sheets("Ziel")
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lngZ, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
Sheets("Quelle").Columns(14).Clear
Sheets("Quelle").Columns(14).Clear
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige