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

Schleife beschleunigen

Schleife beschleunigen
19.11.2013 09:19:39
karl
Guten morgen vba-ler
ich habe hier eine schleife(verschachtelt) mit der ich aus Tabelle1 daten in tabelle2
übertrage.Klappt soweit, dauert aber recht lange.
https://www.herber.de/bbs/user/88147.xls
lässt sich hier was besser oder schneller machen

For c = 8 To 31 Step 2
For a = 2 To 32
For b = 7 To 371
If Sheets("Tabelle2").Cells(c, a).Value = Sheets("Tabelle1").Cells(b, 1).Value Then
Sheets("Tabelle2").Cells(c + 1, a).Value = Sheets("Tabelle1").Cells(b, i).Value
Else
Sheets("Tabelle1").Cells(c + 1, a).Value = ""
End If
Next b
Next a
Next c
Wie immer
rechtherzlichen dank
karl

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife beschleunigen
19.11.2013 10:09:44
ChrisL
Hi Karl
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim ws1Spalte As Byte, ZeileCounter As Integer
Dim iZeile As Integer, iSpalte As Integer
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
ws1Spalte = Application.Match(WS2.Range("D3"), WS1.Rows(6))
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ZeileCounter = 6
For iZeile = 8 To 31 Step 2
For iSpalte = 2 To 32
If WS2.Cells(iZeile, iSpalte) = "" Then
Exit For
Else
ZeileCounter = ZeileCounter + 1
WS1.Cells(ZeileCounter, ws1Spalte).Value = WS2.Cells(iZeile + 1, iSpalte)
End If
Next iSpalte
Next iZeile
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End Sub

cu
Chris

Anzeige
AW: Schleife beschleunigen
19.11.2013 10:25:29
karl
Hallo chris,
habe deinen Code eingesetzt, scheint aber genau anders rum zu laufen
es passiert nichts
In Tabelle 2 sollen die daten von Tabelle 1 geschrieben werden
Habe mal WS1 und WS2 getauscht, aber das ist wohl nicht richtig.
Kannst du nco mal drüber schauen
danke
karl

AW: Schleife beschleunigen
19.11.2013 10:32:43
ChrisL
Hi Karl
Einfach umkehren :)
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim ws1Spalte As Byte, ZeileCounter As Integer
Dim iZeile As Integer, iSpalte As Integer
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
ws1Spalte = Application.Match(WS2.Range("D3"), WS1.Rows(6))
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ZeileCounter = 6
For iZeile = 8 To 31 Step 2
For iSpalte = 2 To 32
If WS2.Cells(iZeile, iSpalte) = "" Then
Exit For
Else
ZeileCounter = ZeileCounter + 1
WS2.Cells(iZeile + 1, iSpalte).Value = WS1.Cells(ZeileCounter, ws1Spalte).Value
End If
Next iSpalte
Next iZeile
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End Sub

cu
Chris

Anzeige
AW: Schleife beschleunigen
19.11.2013 10:35:38
karl
Vielen dank chris
läuft rund
karl

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige