Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1392to1396
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

Makro zu langsam

Makro zu langsam
18.11.2014 17:01:33
Frank
Hallo Zusammen!
Auf einer UF befinden sich 3 TextBoxen, in TextBox1 steht das Datum zu Beginn, in TextBox2 steht das Datum für das Ende, also Einträge werden von bis vorgenommen, aber da die Wochenenden ausgespart wereden sollen wird das Makro sehr langsam.
Hier das Makro:
With frmUrlaubserfassung
If ComboBox1.ListIndex = 1 Then
For lng = 6 To 6579
If Cells(lng, 1).Value > CDate(.TextBox2) Then Exit For
If Cells(lng, 1).Value >= CDate(.TextBox1) Then
Sheets("Urlaubsdaten").Cells(lng, 10) = .TextBox3
End If
If Weekday(Cells(lng, 1)) = 1 Or Weekday(Cells(lng, 1)) = 7 Then
Sheets("Urlaubsdaten").Cells(lng, 10) = ""
End If
Next lng
End If
End With
Kann damit jemand was anfangen und helfen, bitte!
Danke und Gruß Frank H.

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

Betreff
Datum
Anwender
Anzeige
AW: Makro zu langsam
18.11.2014 17:30:50
Tino
Hallo,
weis nicht ob ich alles richtig verstanden habe, kannst mal testen.
Für was ist die Textbox3?
Dim n&, nn&
Dim DateAnf&, DateEnde&
Dim ArDate()
'Datum von und bis in Variable
With frmUrlaubserfassung
DateAnf = CDate(.TextBox1)
DateEnde = CDate(.TextBox2)
End With
'Ist Wochenden?
Do While Weekday(DateAnf, vbMonday) > 5
DateAnf = DateAnf + 1
Loop
'Ist Wochenden?
Do While Weekday(DateEnde, vbMonday) > 5
DateEnde = DateEnde - 1
Loop
'Array für Daten groß genug erstellen
ReDim Preserve ArDate(1 To DateEnde - DateAnf + 1)
For n = DateAnf To DateEnde
If Weekday(n, vbMonday) 
Gruß Tino

Anzeige
Upload ...
18.11.2014 17:31:56
Matthias
Hallo Frank
Kannst Du ein Bsp hochladen?
Hab keine Lust zum Nachbauen.
Evtl. reicht aber auch schon zu Beginn ein:
Application.ScreenUpdating =False
Gruß Matthias

AW: Upload ...
18.11.2014 18:00:34
Frank
Hallo Ihr Zwei!
Der Code beginnt mit Application.ScreenUpdating =False, das habe ich vorhin weggelassen.
Mit dem Vorschlag von Tino bin ich wohl ein wenig überfordert. Meine Datei ist für ein Upload zu groß.
In Spalte 1 stehen untereinander Datumswerte, von 01.01.2014 - 31.12.2031. Die Daten aus TextBox3 werden immer in Spalte 10, hinter das Datum von bis (TextBox1 - TextBox2) eingetragen, aber eben nicht an Wochenenden. Vielleicht kann jetzt einer helfen. Danke!
Gruß Frank H.

Anzeige
müsste doch funktionieren (bei mir 0,04 Sek.)...
18.11.2014 18:46:23
Tino
Hallo,
denke habe alles beachtet.
Dim n&, nn&
Dim DateAnf&, DateEnde&
Dim ArDate()
Dim sText$
'Datum von und bis in Variable
With frmUrlaubserfassung
DateAnf = CDate(.TextBox1)
DateEnde = CDate(.TextBox2)
sText = .TextBox3
End With
'Ist Wochenden?
Do While Weekday(DateAnf, vbMonday) > 5
DateAnf = DateAnf + 1
Loop
'Ist Wochenden?
Do While Weekday(DateEnde, vbMonday) > 5
DateEnde = DateEnde - 1
Loop
'Array für Daten groß genug erstellen
ReDim Preserve ArDate(1 To DateEnde - DateAnf + 1)
For n = DateAnf To DateEnde
If Weekday(n, vbMonday) 
Gruß Tino

Anzeige
AW: Manno, jetzt hab ich doch nachgebaut ...
18.11.2014 19:06:21
Frank
Hallo Ihr Zwei!
Funzt beides! Ihr seid Spitze, allerherzlichsten Dank!
Gruß Frank H.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige