Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
664to668
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
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro hängt in einer Schleife

Makro hängt in einer Schleife
12.09.2005 00:29:58
tat130899
Hallo,
mein Makro hängt kurzzeitig in einer Schleife fest bevor das Makro beendet wird und ist zeitraubend (Ca. 5 sek.). Würde mir bitte jemamd helfen --> hier der Code:
Option Compare Text
Dim bln As Boolean

Private Sub Worksheet_SelectionChange _
(ByVal Target As Excel.Range)
Dim rng As Range
Set rng = Range("B2")
If Target.Address = rng.Address Then bln = True
If bln = True And Target.Address <> rng.Address Then
Call übertragen_aus_Daten
bln = False
End If
End Sub

---------------------------------------------------------
Sub übertragen_aus_Daten()
Dim A, B, C, D, E, F, G, H, I, J, K
Dim zähler
Sheets("Fill In").Select
Range("a1").Select
marke1: For zähler = 1 To 50000
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then
End
Else

If ActiveCell.Value = "A" Then
Exit For
Else
End If
End If
Next
ActiveCell.Offset(0, 1).Select
A = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
B = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
C = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
D = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
E = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
F = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
G = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
H = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
I = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
J = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
K = ActiveCell.Value


Sheets("Data").Activate
Sheets("Data").Visible = True
ActiveCell.Activate
'ActiveCell.Offset(1, 0).Select
ActiveCell.Range("b1").Select
marke2: For zähler = 1 To 50000
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then
Exit For
Else
End If
Next
ActiveCell.Value = A
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = B
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = C
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = D
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = E
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = F
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = G
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = H
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = I
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = J
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = K
ActiveCell.Offset(0, -10).Select
Sheets("Fill In").Select
Range("b2").Select
Sheets("Data").Visible = False
End Sub
Tausend Dank vorab und viele Grüsse
Tobias

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro hängt in einer Schleife
12.09.2005 00:39:48
Uduuh
Hallo,
natürlich dauert das bei den vielen Selects. Da wird doch jedesmal Worksheet_selectionchange ausgeführt. Vermeide Select und sprich die Zellen direkt an.
Gruß aus’m Pott
Udo

AW: Makro hängt in einer Schleife
12.09.2005 01:28:10
tat130899
Hallo,
--"Vermeide Select und sprich die Zellen direkt an"
Aus dem Select habe ich jetzt Activate gemacht.
Der Code hängt immer noch in der Schleife?
Zwar etwas kürzer von der Zeit her, aber die Schleife ist noch da.
Bitte Hilfe.
Tausend Dank
Gruss
Tobias
AW: Makro hängt in einer Schleife
12.09.2005 00:41:46
Ramses
Hallo
Lösche diese zeilen
marke2: For zähler = 1 To 50000
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then
Exit For
Else
End If
Next
Der Rest deines Codes erschliesst sich mir nicht ganz, daher keine weitere Hilfe möglich.
Gruss Rainer
Anzeige
Vergiss den Beitrag...
12.09.2005 00:43:45
Ramses
Hallo
... hat erst jetzt gezündet für was die Schleife gut sein soll. "Kopfschüttel"
Gruss Rainer
AW: Makro hängt in einer Schleife
12.09.2005 01:34:11
Leo
Hi,
das Übel ist Select, geht auch ohne, hab aber keine Lust, das jetz noch nachzuvollziehen:

Private Sub Worksheet_SelectionChange _
(ByVal Target As Excel.Range)
Dim rng As Range
Set rng = Range("B2")
If Target.Address = rng.Address Then bln = True
If bln = True And Target.Address <> rng.Address Then
<b>Application.EnableEvents = False</b>
Call übertragen_aus_Daten
<b>Application.EnableEvents = True</b>
bln = False
End If
End Sub

mfg Leo
Anzeige
AW: Makro hängt in einer Schleife
12.09.2005 01:35:18
Leo
Hi,
klar, ohne pretags:

Private Sub Worksheet_SelectionChange _
(ByVal Target As Excel.Range)
Dim rng As Range
Set rng = Range("B2")
If Target.Address = rng.Address Then bln = True
If bln = True And Target.Address <> rng.Address Then
Application.EnableEvents = False
Call übertragen_aus_Daten
Application.EnableEvents = True
bln = False
End If
End Sub

mfg Leo
AW: Makro hängt in einer Schleife
12.09.2005 01:43:08
tat130899
Hallo Leo,
das war wirklich sehr hilfreich. Weißt Du vielleicht auch noch, warum das Makro nicht am Ende in Zelle B2 stehen bleibt. Mein Befehl
Range("b2").Activate
wird ignoriert.
Vielen Dank und
Gruss
Tobias
Anzeige
AW: Makro hängt in einer Schleife
12.09.2005 01:50:59
Leo
Hi,
kann in dem von dir geposteten Code dies nicht finden?
mfg Leo
AW: Makro hängt in einer Schleife
12.09.2005 02:02:04
Aton
For zähler = 1 To 50000
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then
End
Else
If ActiveCell.Value = "A" Then
Exit For
Else
'hir fehlt etwas
End If
End If
Next
AW: Makro hängt in einer Schleife
12.09.2005 02:45:53
Aton
Hallo
Teste mal ob es Funktioniert.

Sub übertragen_aus_Daten()
Dim A(10) As String
Dim zähler
Dim Sp
Sheets("Fill In").Select
Cells(1, 1).Select
Selection.End(xlDown).Select ' Ans Ende der Zeilen Springen - in Spalte A dürfen keine leere Zellen sein
For zähler = 1 To ActiveCell.Row
Sheets("Fill In").Select
For Sp = 1 To 10
A(Sp - 1) = Cells(zähler, Sp)
Next Sp
Sheets("Data").Select ' Kann sein das das ändern mußt
For Sp = 1 To 10
Cells(zähler, Sp) = A(Sp - 1)
Next Sp
Next zähler
' Warum koppierst die daten nicht mit einem Makro komplett auf 1 mal
End Sub

Gruß Aton
Anzeige
AW: Makro hängt in einer Schleife
12.09.2005 10:39:10
u_
Hallo,
kurz und bündig:

Sub übertragen_aus_Daten()
Dim iZähler As Integer, RngF As Range
Set RngF = Sheets("Fill In").Columns(1).Find(what:="A", after:=Range("A1"))
Sheets("Data").Cells(65536, 1).End(xlUp).Offset(1, 0) = "A"
For iZähler = 1 To 11
RngF.Offset(iZähler, 0).Copy Sheets("Data").Cells(65536, 1).End(xlUp).Offset(1, 0)
Next iZähler
End Sub

Gruß
Geist ist geil!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige