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

Bestimmte Zellen kopieren nach Überprüfung

Bestimmte Zellen kopieren nach Überprüfung
23.03.2016 08:31:36
Bekks
Hallo zusammen :)
Ich habe im Internet für mein Problem schon folgenden Code gefunden.
Sub pruefen()
ende = ActiveSheet.UsedRange.Rows.Count
For Each zelle In Tabelle1.Range("B1:B" & ende)
On Error Resume Next
If Not IsEmpty(zelle) Then
zelle.EntireRow.Select
Selection.Copy
Rows(ActiveSheet.UsedRange.Rows.Count + 1).Select
ActiveSheet.Paste
Tabelle1.Cells(ActiveSheet.UsedRange.Rows.Count, 1).Value = zelle.Value
Tabelle1.Cells(ActiveSheet.UsedRange.Rows.Count, 2).Value = ""
End If
Next zelle
End Sub
Ich würde Ihn aber gerne noch anpassen und das klappt leider nicht so :(
Ich habe Tabelle 1 als Ausgangsdaten und
Tabelle 2 soll mit Daten aus Tabelle 1 gefüllt werden.
Dazu soll in Tabelle 1 in der Spalte E ab Zeile 2 überprüft werden ob diese Zelle nicht leer ist.
Ist die Zelle gefüllt soll der Kopiervorgang gestartet werden.
Diese Überprüfung soll mit allen Daten geschehen,
die Kopierten Werte sollen in Tabelle 2 aber untereinander also ohne Lücke eingefügt werden.
Der Kopiervorgang soll wie folgt aussehen:
Aus der ausgewählten Zeile sollen Spalte B,C und D der Tabelle 1 in die Spalten D, E und F der Tabelle 2 kopiert werden.
Spalte E der Tabelle 1 soll in Spalte G der Tabelle 2.
Da ich später ein zweites Arbeitsblatt machen möchte sollte E "Variabel" sein, da dort dann auf G geprüft werden soll und G der Tabelle 1 dann in G der Tabelle 2 geschrieben werden soll.
Als Zusatz wäre noch meine Frage ob es möglich ist beim Kopieren nach einer bestimmten Anzahl, sagen wir z.B. 30 Stück, eine Zeile leer zu lassen und den Kopiervorgang erst in der nächsten Zeile wieder fortzuführen?
Danke im Voraus :)
LG Bekks!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW:Bsp.-Mappe hochladen
23.03.2016 09:28:46
hary
Moin
Lad mal eine Bsp.-mappe(mit einigen Dummywerten) hoch. Das kann man evtl. besser mit Filter loesen.
gruss hary

AW: AW:Bsp.-Mappe hochladen
23.03.2016 09:53:49
Bekks
Hallo,
hier findet ihr die Beispiel Mappe https://www.herber.de/bbs/user/104550.xlsx
Ich habe in Tabelle 1 fiktive Daten eingetragen.
In Tabelle 2 sollen nun durch klicken eines Buttons (Diesen habe ich im Beispiel vergessen einzufügen)folgendes passieren:
Überprüfen ob in Tabelle 1 in Spalte E etwas steht.
Wenn Ja soll dieser Wert in Tabelle 2 in Spalte G eingefügt werden.
Wenn Nein, soll nächste Zeile geprüft werden.
Beim Kopieren in Tabelle 2 sollen keine leeren Zeilen entstehen.
Zusätzlich zu dem überprüften und wiedergegebenen Wert sollen folgende Daten kopiert werden -
Tabelle 1 Spalte B,C und D in Tabelle 2 D, E und F.
Falls möglich wäre der Zusatz auch noch ziemlich interessant.
Ich habe in Tabelle 2 in Zeile 4 eine leer Zeile eingefügt,
kann diese beim Kopieren übersprungen werden ?
Danke! Bekks

Anzeige
AW: AW:Bsp.-Mappe hochladen
23.03.2016 11:08:00
Bekks
Mit Filter weiß ich nicht genau was du meinst :(
Ich möchte die Daten erstmal nur rüber Kopieren, wenn dort ein Wert steht.
Das Sortieren mache ich später über einen anderen Befehl.
Ich habe im Internet mal weiter geschaut, und versucht das anzupassen. Aber das macht alles zusammen noch keinen so wirklichen richtigen Weg.
Sub Kopieren()
Dim i As Integer    'Zeilenzähler in der Ursprungsspalte
Dim y As Integer    'Zeilenzähler der Zielspalte
y = 4
With ThisWorkbook.Worksheets("Tabelle1")
For i = 2 To anstatt einer Zahl müsste hier ja bis Ende hin 
If .Cells(i, 5).Text = "" Then
Else
y = y + 1
.Cells(i, 3).Copy .Cells(y, 1)
End If
Next i
End With
End Sub
Freu mich auf eure Ideen!
LG Bekks

Anzeige
AW: AW:Bsp.-Mappe hochladen
23.03.2016 13:02:11
Bekks
Hallo Foris :)
Mir fällt gerade auf, wenn ich die Warteliste mit drin haben möchte. Muss ich schon beim Eintragen nach dem Anmeldungsdatum sortieren.
Das geht aber nicht in Tabelle 1 direkt, da dort ja noch mehr Ausflüge hinterlegt sind :(
Über Tipps zur umsetzung würde ich mich echt freuen!
LG Bekks

AW:Bsp. mit Filter
24.03.2016 06:56:18
hary
Moin
Hab im Momment wenig Zeit. Hier mal als Ansatz mit Filter. Die verbundenen Zeilen musste ich rausnehmen.
Das sortieren kannst du mit dem Makrorecorder aufnehmen. Schwierig wird es mit dem Datum und Uhrzeit in einer Zelle. Da such mal im Archiv.
https://www.herber.de/bbs/user/104582.xlsm
vlt. hilft es dir weiter.
gruss hary

Anzeige
AW: AW:Bsp. mit Filter
24.03.2016 09:54:25
Bekks
Hallo Hary,
deine Lösung ist super.
Das mit dem Sortieren und der Warteliste habe ich hinbekommen.
Ich möchte gerne deinen Code nochmal anpassen.
Sub rueber()
Dim zeilen As Long, i As Long, trennen As Long
zeilen = 3
With Worksheets("Tabelle1").Range("A1").CurrentRegion
.AutoFilter Field:=5, Criteria1:=""
i = Intersect(.SpecialCells(xlVisible), .Columns(1)).Count - 1
If i > 0 Then
Worksheets("Tabelle1").Range("B2:E" & Worksheets("Tabelle1").Cells(Rows.Count, 1).End( _
xlUp).Row).SpecialCells(xlVisible).Copy
Worksheets("Tabelle2").Range("D2").PasteSpecial Paste:=xlValue
End If
Application.CutCopyMode = False
.AutoFilter
End With
End Sub
Und zwar dass jetzt nicht in Field 5 (E) sondern in Field 7 (G) geschaut wird.
Dies hat zur Folge, dass nicht mehr B2:E aus Tabelle 1 kopiert werden sollen, sondern B2:D und G.
Da ich mit dem Runter Counten noch keine Ahnung habe, weiß ich nicht genau, wie ich den Code Teil dazu anpassen kann.
Meine Versuche mit Änderungen haben alle Fehler ausgegeben :(
Würde mich freuen wenn jemand dazu ein Ratschlag hätte :)
LG Bekks

Anzeige
AW: AW:Bsp. mit Filter
24.03.2016 10:07:24
hary
Moin
Sub rueber2()
Dim zeilen As Long, i As Long, trennen As Long
Application.ScreenUpdating = False
zeilen = 3
With Worksheets("Tabelle1").Range("A1").CurrentRegion
.AutoFilter Field:=7, Criteria1:=""
i = Intersect(.SpecialCells(xlVisible), .Columns(1)).Count - 1
If i > 0 Then
Worksheets("Tabelle1").Range("B2:D" & Worksheets("Tabelle1").Cells(Rows.Count, 1).End( _
xlUp).Row).SpecialCells(xlVisible).Copy
Worksheets("Tabelle2").Range("D2").PasteSpecial Paste:=xlValue
Worksheets("Tabelle1").Range("G2:G" & Worksheets("Tabelle1").Cells(Rows.Count, 1).End( _
xlUp).Row).SpecialCells(xlVisible).Copy
Worksheets("Tabelle2").Range("G2").PasteSpecial Paste:=xlValue
End If
Application.CutCopyMode = False
.AutoFilter
End With
Application.ScreenUpdating = True
End Sub

gruss hary

Anzeige
AW: AW:Bsp. mit Filter
24.03.2016 11:02:36
Bekks
Hallo Hary,
ich habe die ganze Zeit Versucht die Zellen zu verschachteln.
Macht natürlich viel mehr Sinn, die Befehle nach einander einzugeben.
Es dankt Dir Bekks!

AW: "verschachtel"...
25.03.2016 05:57:35
hary
Moin Bekks
..geht mit Union.
Sub rueber2()
Dim i As Long, trennen As Long, letzte As Long
Dim wksQ As Worksheet, wksZ As Worksheet
Set wksQ = Worksheets("Tabelle1")
Set wksZ = Worksheets("Tabelle2")
Application.ScreenUpdating = False
letzte = wksQ.Cells(Rows.Count, 1).End(xlUp).Row
With wksQ.Range("A1").CurrentRegion
.AutoFilter Field:=7, Criteria1:=""
i = Intersect(.SpecialCells(xlVisible), .Columns(1)).Count - 1
If i > 0 Then
Union(wksQ.Range("B2:D" & letzte).SpecialCells(xlVisible), wksQ.Range("G2:G" & letzte). _
SpecialCells(xlVisible)).Copy
wksZ.Range("D2").PasteSpecial Paste:=xlValue
End If
Application.CutCopyMode = False
.AutoFilter
End With
Application.ScreenUpdating = True
End Sub

gruss hary
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige