Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
304to308
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
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten kopieren mit Schleife (VBA)

Daten kopieren mit Schleife (VBA)
09.09.2003 17:39:12
Martin
Hallo,

ich habe mir ein Makro gebastelt, das in Tabelle1 einen bestimmten Bereich durchläuft und, wenn es einen Wert > 0 findet, die gesamte Reihe in eine andere Tabelle einfügt.

Zumindest sollte es so funktionieren, nur kopiert xl die Daten unregelmässig, mal ja, mal nein!?

Hier das Makro


Sub PrepareMail()
i = Sheets(2).Cells(65536, 1).End(xlUp).Row + 1
Sheets(1).Range("G3").Select
Do Until ActiveCell.Value = "---"
If ActiveCell.Value > 0 Then
Selection.EntireRow.Copy Destination:=Sheets(2).Cells(i, 1)
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub


Wo liegt mein Fehler? Ist die Art, die ich gewählt habe (mit Do Until) gut oder gibt es da was besseres?

Gruss,
Martin

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten kopieren mit Schleife (VBA)
09.09.2003 17:48:47
alex
Hallo Martin.

versuchs mal mit

for i = 1 to sheets(2).cells(65536,1).end(xlUp).row+1 ( ? du willst nur ans Ende ? - - dann reicht 65536)
sheets(1).cells(2+i,7).select

if activecell.value = 0 (oder in deinem Fall "---") then
exit for
end if

if activecell.value > 0 then
Selection.entireRow.copy Destination.....
end if
next i

AW: Daten kopieren mit Schleife (VBA)
09.09.2003 18:01:58
MArtion
klappt noch nicht ganz. Werde hiermit aber mal rumspielen

Danke
Martin
AW: Daten kopieren mit Schleife (VBA)
09.09.2003 17:56:37
Karl-Otto Reimann
Hallo Martin
Ich wurschtel mit solchen Schleifen nicht mer 'rum.
Um größere Bereiche zu bearbeiten, muß Du diese Makros mehrere Male laufen lassen. Viel besser und schneller sind Autofilter z.b.:


Sub FilternUndKopieren()
Application.ScreenUpdating = False
With Range("A1")
.AutoFilter Field:=3, Criteria1:="<10"
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Kleiner10").Range("A1")
.AutoFilter Field:=3, Criteria1:="<50"
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Kleiner50").Range("A1")
.AutoFilter Field:=3, Criteria1:=">=50"
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Andere").Range("A1")
End With
End Sub

Anzeige
AW: Daten kopieren mit Schleife (VBA)
09.09.2003 18:01:23
Martin
also Autofilter ist in meiner Tabelle nicht ohne. Klingt aber dennoch interessant, werde es ausprobieren.

Danke
Martin
AW: Daten kopieren mit Schleife (VBA)
09.09.2003 18:05:26
PeterW
Hallo Martin,

mit ActiveCell schaffst du dir nur Probleme. Versuch mal diesen Code:


Sub PrepareMail()
Dim i As Long
Dim iQuelle As Long
i = Sheets(2).Cells(65536, 1).End(xlUp).Row + 1
iQuelle = 3
Do Until Cells(iQuelle, 7).Value = "---"
If Cells(iQuelle, 7).Value > 0 Then
Rows(iQuelle).Copy Destination:=Sheets(2).Cells(i, 1)
i = i + 1
End If
iQuelle = iQuelle + 1
Loop
End Sub


Gruß
Peter
Anzeige
AW: Daten kopieren mit Schleife (VBA)
09.09.2003 22:30:55
Martin
Perfekt!

Vielen Dank Peter
Gruss,
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige