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

Daten übertragen mit Schleife

Daten übertragen mit Schleife
Karen
Hallo Forum,
ich möchte folgenden Sachverhalt in VBA abbilden: (siehe Anhang)
https://www.herber.de/bbs/user/62856.xls
Ich habe im Tabellenblatt "Tabelle1" Werte in den Spalten A und B. Diese Werte sollen in das Tabellenblatt "Tabelle2" übertragen werden, wenn in Spalte C eine 2 steht.
Sie sollen in dem Tabellenblatt "Tabelle2" untereinander fortgeschrieben werden.
Ich habe eine for if Schleife gebaut, es funktioniert aber nicht, da ich die Sytax für das Fortschreiben nicht kenne.
Vielen, vielen Dank für Eure Hilfe im voraus.
Grüße
Karen

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

Betreff
Benutzer
Anzeige
AW: Daten übertragen mit Schleife
01.07.2009 13:18:26
selli
hallo karen,
warum so kompliziert?
benutze den autofilter um nach "2" zu filtern und kopiere dann alles nach "Tabelle2"
gruß selli
per vba
01.07.2009 13:25:52
selli
hallo karen,
hier ist die lösung in vba.

Sub test()
b = 2
For i = 2 To Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
If Sheets("Tabelle1").Cells(i, 3) = 2 Then
Sheets("Tabelle2").Cells(b, 1) = Sheets("Tabelle1").Cells(i, 1)
Sheets("Tabelle2").Cells(b, 2) = Sheets("Tabelle1").Cells(i, 2)
b = b + 1
End If
Next i
End Sub


gruß selli

nochmal per vba
01.07.2009 13:38:10
Erich
Hi Karen und Selli,
der Code, etewas abgeändert und ergänzt:

Option Explicit         ' IMMER ZU EMPFEHLEN
Sub test()
Dim zz As Long, qq As Long
zz = 2
With Sheets("Tabelle1")
For qq = 2 To .Cells(.Rows.Count, 3).End(xlUp).Row
If .Cells(qq, 3) = 2 Then
Sheets("Tabelle2").Cells(zz, 1).Resize(, 2) = .Cells(qq, 1).Resize(, 2)
zz = zz + 1
End If
Next qq
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
nochmal per vba - Korrektur
01.07.2009 13:41:10
Erich
Hi,
da fehlte noch ein .Value:

Option Explicit         ' IMMER ZU EMPFEHLEN
Sub test()
Dim zz As Long, qq As Long
zz = 2
With Sheets("Tabelle1")
For qq = 2 To .Cells(.Rows.Count, 3).End(xlUp).Row
If .Cells(qq, 3) = 2 Then
Sheets("Tabelle2").Cells(zz, 1).Resize(, 2) = _
.Cells(qq, 1).Resize(, 2).Value
zz = zz + 1
End If
Next qq
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: nochmal per vba - Korrektur
01.07.2009 15:32:38
Karen
Hallo Erich,
vielen, vielen Dank für die Unterstützung, klappt leider noch nicht, werde mir das noch genauer ansehen.
Viele Grüße
Karen
Anzeige
AW: Daten übertragen mit Schleife
01.07.2009 13:26:23
David
Hallo Karen,
wenn's auch per Formel sein kann:
Tabelle1
 ABC
1 a b c
2 x y 2
3 c v 1
4 a s 0
5 d f 2
6 t z 1
7 h j 2
8 k l 1

Tabellendarstellung in Foren


als Datenbasis und für das Ergebnis:
Tabelle2
 AB
1 a b
2 x y
3 d f
4 h j

Zelle Formel
A2 {=INDEX(Tabelle1!$A$1:$A$8;KKLEINSTE(WENN(Tabelle1!$C$2:$C$8=2;ZEILE(Tabelle1!$C$2:$C$8);"");ZEILE(A1)))}
B2 {=INDEX(Tabelle1!$B$1:$B$8;KKLEINSTE(WENN(Tabelle1!$C$2:$C$8=2;ZEILE(Tabelle1!$C$2:$C$8);"");ZEILE(B1)))}
A3 {=INDEX(Tabelle1!$A$1:$A$8;KKLEINSTE(WENN(Tabelle1!$C$2:$C$8=2;ZEILE(Tabelle1!$C$2:$C$8);"");ZEILE(A2)))}
B3 {=INDEX(Tabelle1!$B$1:$B$8;KKLEINSTE(WENN(Tabelle1!$C$2:$C$8=2;ZEILE(Tabelle1!$C$2:$C$8);"");ZEILE(B2)))}
A4 {=INDEX(Tabelle1!$A$1:$A$8;KKLEINSTE(WENN(Tabelle1!$C$2:$C$8=2;ZEILE(Tabelle1!$C$2:$C$8);"");ZEILE(A3)))}
B4 {=INDEX(Tabelle1!$B$1:$B$8;KKLEINSTE(WENN(Tabelle1!$C$2:$C$8=2;ZEILE(Tabelle1!$C$2:$C$8);"");ZEILE(B3)))}
{} Matrixformel mit Strg+Umschalt+Enter abschließen

Tabellendarstellung in Foren


Gruß
David
Anzeige
AW: Daten übertragen mit Schleife
01.07.2009 13:28:59
Helmut
Option Explicit

Sub tt()
Dim myCounter As Long
Dim i As Long
Dim myLetzte As Long
With Sheets("Tabelle1")
myLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
End With
myCounter = 1
For i = 2 To myLetzte
If Sheets("Tabelle1").Cells(i, 3).Value  "" Then
myCounter = myCounter + 1
Sheets("Tabelle2").Cells(myCounter, 1).Value = Sheets("Tabelle1").Cells(i, 1).Value
Sheets("Tabelle2").Cells(myCounter, 2).Value = Sheets("Tabelle1").Cells(i, 2).Value
End If
Next i
End Sub


AW: Daten übertragen mit Schleife
01.07.2009 14:36:10
Karen
Hallo Helmut,
vielen, vielen Dank, klappt prima.
Grüße
Karen
Anzeige
sicher?
01.07.2009 16:34:10
Erich
Hi Karen,
klappt das vielleicht gerade deshalb mit diesem Code, weil hier NICHT geprüft wird, ob in Spalte C eine 2 steht?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige