Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
268to272
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
268to272
268to272
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortieren in mehreren Blätter, im Hintergrund mögl

Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 13:14:49
Karsten J.
Hallo

Ich bin Excel-Anfänger.

Ich habe ein Macro geschrieben, das aus meherern Blättern etwas sucht und auf einer weiteres Blatt einträgt.

Beim Sortieren und suchen sieht das ganz schön wild aus.

Nun zu meiner Frage:

Ist es möglich diese Suchen und Sortierungen "im Hintergrund" laufen zu lassen und nur das Ausgabeblatt anzeigen zu lassen, wo dann ein Wert nach dem anderen Auftaucht???????

Vielen Dank im vorraus.

Karsten J.


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

Betreff
Datum
Anwender
Anzeige
Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 13:19:28
L.Vira

Lass mal deinen Code sehen.
Das geht alles ohne select und activate.


Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 13:22:59
Karsten J.

bitte nicht gleich schlagen. Ist meine erstes Macro und sicher besser zu schreiben, aber es funktioniert.

Sub Schaltfläche1_BeiKlick()
'
' Schaltfläche1_BeiKlick Makro
' Makro am 03.06.2003 von JUNGKA aufgezeichnet
'
aa = 0
bb = 3
dd = 0

Maschine:
For thequarter = 1 To 42
cc = 1
aa = aa + 1
Sheets("Besetzung").Select
Cells(aa, 3).Select
st = ActiveCell.Value
If st = 0 Then Cells(aa, 1).Select
If st = 1 Then Cells(aa, 2).Select
If st = 1 Then ActiveCell.FormulaR1C1 = "nicht besetzt"
If st = 1 Then GoTo ENDE
wert2 = ActiveCell.Value

Mitarbeiter:
cc = cc + 1
If cc = 52 Then GoTo ENDE
Sheets("Mitarbeiter").Select
Cells(cc, 3).Select
wert3 = ActiveCell.Value
If wert2 = wert3 Then Cells(cc, 2).Select
If wert2 <> wert3 Then GoTo Mitarbeiter
wert4 = ActiveCell.Value
Sheets("Besetzung").Select
Cells(aa, 2).Select
ActiveCell.FormulaR1C1 = wert4
Sheets("Mitarbeiter").Select
Cells(cc, 1).Select
ActiveCell.Value = False

ENDE:
Next thequarter
xx = 0
x = 4
For x = 4 To 12

NACHSORTIEREN:
xx = xx + 1
If xx = 43 Then GoTo ENDE1
Sheets("Besetzung").Select
Cells(xx, 2).Select
ts = ActiveCell.Value
If ts = 0 Then GoTo ZELLE
If ts <> 0 Then GoTo NACHSORTIEREN

ZELLE:
Cells(xx, 1).Select
wert2 = ActiveCell.Value
cc = 1

ERSATZ:
cc = cc + 1
If cc = 52 Then GoTo NACHSORTIEREN
Sheets("Mitarbeiter").Select
Cells(cc, x).Select
wert3 = ActiveCell.Value
If wert2 = wert3 Then Cells(cc, 2).Select
If wert2 <> wert3 Then GoTo ERSATZ
wert4 = ActiveCell.Value
Sheets("Besetzung").Select
Cells(xx, 2).Select
ActiveCell.FormulaR1C1 = wert4
Sheets("Mitarbeiter").Select
Cells(cc, 1).Select
ActiveCell.Value = False

ENDE1:
If xx < 43 Then GoTo NACHSORTIEREN
xx = 0
Next x
cc = 1
xx = 1

SONSTIGE:
cc = cc + 1
If cc = 52 Then GoTo ENDESONSTIGE
Sheets("Mitarbeiter").Select
Cells(cc, 1).Select
If ActiveCell.Value = False Then GoTo SONSTIGE
If ActiveCell.Value = True Then Cells(cc, 2).Select
zu = ActiveCell.Value
xx = xx + 1
Sheets("Besetzung").Select
Cells(xx, 6).Select
ActiveCell.FormulaR1C1 = zu
GoTo SONSTIGE

ENDESONSTIGE:

Sheets("Drucken").Select
Range("a1").Select

End Sub


Anzeige
Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 13:28:52
L.Vira

Hier wird meines Wissens niemand geschlagen.
Ich versuch das mal etwas zu straffen(nach 15:00)schau mal wieder rein.

Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 13:34:16
Karsten J.

Danke im Vorraus

Karsten J.

Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 14:48:54
L.Vira

Sorry, aber das ist dann doch too much, das nachzuvollziehen.
Daher nur etwas Kosmetik:

Option Explicit
Sub DeinMakro()
Dim aa, bb, cc, dd, thequarter, st
Dim wert2, wert3, wert4, x, xx, ts, zu

aa = 0
bb = 3
dd = 0

With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With

For thequarter = 1 To 42
cc = 1
aa = aa + 1
Sheets("Besetzung").Select
Cells(aa, 3).Select
st = ActiveCell.Value
If st = 0 Then Cells(aa, 1).Select
If st = 1 Then Cells(aa, 2).Select
If st = 1 Then ActiveCell.FormulaR1C1 = "nicht besetzt"
If st = 1 Then GoTo ENDE
wert2 = ActiveCell.Value

Mitarbeiter:
cc = cc + 1
If cc = 52 Then GoTo ENDE
Sheets("Mitarbeiter").Select
Cells(cc, 3).Select
wert3 = ActiveCell.Value
If wert2 = wert3 Then Cells(cc, 2).Select
If wert2 <> wert3 Then GoTo Mitarbeiter
wert4 = ActiveCell.Value
Sheets("Besetzung").Select
Cells(aa, 2).Select
ActiveCell.FormulaR1C1 = wert4
Sheets("Mitarbeiter").Select
Cells(cc, 1).Select
ActiveCell.Value = False

ENDE:
Next thequarter
xx = 0
x = 4
For x = 4 To 12

NACHSORTIEREN:
xx = xx + 1
If xx = 43 Then GoTo ENDE1
Sheets("Besetzung").Select
Cells(xx, 2).Select
ts = ActiveCell.Value
If ts = 0 Then GoTo ZELLE
If ts <> 0 Then GoTo NACHSORTIEREN

ZELLE:
Cells(xx, 1).Select
wert2 = ActiveCell.Value
cc = 1

ERSATZ:
cc = cc + 1
If cc = 52 Then GoTo NACHSORTIEREN
Sheets("Mitarbeiter").Select
Cells(cc, x).Select
wert3 = ActiveCell.Value
If wert2 = wert3 Then Cells(cc, 2).Select
If wert2 <> wert3 Then GoTo ERSATZ
wert4 = ActiveCell.Value
Sheets("Besetzung").Select
Cells(xx, 2).Select
ActiveCell.FormulaR1C1 = wert4
Sheets("Mitarbeiter").Select
Cells(cc, 1).Select
ActiveCell.Value = False

ENDE1:
If xx < 43 Then GoTo NACHSORTIEREN
xx = 0
Next x
cc = 1
xx = 1

SONSTIGE:
cc = cc + 1
If cc = 52 Then GoTo ENDESONSTIGE
Sheets("Mitarbeiter").Select
Cells(cc, 1).Select
If ActiveCell.Value = False Then GoTo SONSTIGE
If ActiveCell.Value = True Then Cells(cc, 2).Select
zu = ActiveCell.Value
xx = xx + 1
Sheets("Besetzung").Select
Cells(xx, 6).Select
ActiveCell.FormulaR1C1 = zu
GoTo SONSTIGE

ENDESONSTIGE:

Sheets("Drucken").Select
Range("a1").Select

With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With

End Sub



Anzeige
Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 15:48:23
Karsten J.

Hallo

Danke

Mir hat schon der folgende Befehl gereicht:

With Application
.ScreenUpdating = False
End With

Damit klappt es klasse!

Danke

Karsten J.


Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 16:02:53
L.Vira

Ja, klar, aber die beiden anderen Anweisungen beschleunigen zusätzlich noch etwas.

Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 16:06:15
Karsten J.

Hallo

Ich will dir nicht wiedersprechen, aber dann bekomme ich probleme:

Werte die von TRUE auf FALSE umgestellt werden, haben keine Auswirkungen mehr auf andere Zellen, die auf diesen Inhalt zurückgreifen( TRUE oder FALSE).

Weiß aber nicht welcher.

Muß es noch testen.

MfG

Karsten J.

Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 16:18:46
Karsten J.

Hallo

Alos dieser Befehl macht mir Probleme, so das ich ihn weg lassen muß:

.Calculation = xlCalculationManual

Was ist eigentlich mit dem :

Dim aa, bb, cc, dd, thequarter, st
Dim wert2, wert3, wert4, x, xx, ts, zu

Was bewirken die denn?

MfG

Karsten

Anzeige
Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 16:29:09
L.Vira

Option Explicit erzwingt, dass Variablen deklariert werden.
Werden Sie nicht deklariert und der passende Datentyp gewählt, nimmt VBA automatisch Variant, was zwar funktioniert, aber ungleich mehr Speicher beansprucht. Bei deinem kurzen Code spielt das keine Rolle, aber es soll ja auch Projekte geben, die tausende Zeilen haben. Außerdem hat das den Vorteil, dass bei der Ausführung auf diese Variablen geprüft wird und z.B. bei Schreibfehlern sofort eine Meldung kommt.

Re: Sortieren in mehreren Blätter, im Hintergrund mögl
16.06.2003 16:35:41
Karsten J.

Danke für die Erklärungen.

Habe es mit in meine Skript aufgenommen.

MfG

Karsten J.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige