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

VBA Kalenderwoche Berechen

VBA Kalenderwoche Berechen
12.08.2018 13:53:03
MaRc
Hola liebes Forum =D
ich habe mal wieder eine Frage und zwar möchte ich gerne per Button die Kalenderwoche berechnen.
In der Spalte G steht das Datum das ca. 100.000 Zeilen nach unten geht mal mehr mal weniger. Jetzt würde ich gerne wissen welche Kalenderwoche das ist und dies in der Spalte I ausgeben. Ich kann das natürlich mit einer Forum in der Zelle daneben berechnen "=Kalenderwoche()", aber da regelmäßig Zeilen gelöscht oder hinzukommen müsste ich die Formel immer wieder neu runterziehen deswegen hätte ich das gerne per Button gelöst.
Kann und würde mir da bitte jemand weiterhelfen?

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Kalenderwoche Berechen
12.08.2018 14:15:28
Werner
Hallo,
dann schreib dir doch die Formel per Makro in die Spalte I
Public Sub Kalenderwoche()
Dim loLetzte As Long, raBereich As Range
With Worksheets("Tabelle1") 'Blattnam anpassen
loLetzte = .Cells(.Rows.Count, 7).End(xlUp).Row
Set raBereich = .Range(.Cells(1, 9), .Cells(loLetzte, 9))
raBereich.FormulaLocal = "=KALENDERWOCHE(G1;2)"
End With
End Sub
Gruß Werner
AW: VBA Kalenderwoche Berechen
12.08.2018 14:34:51
MaRc
Danke Werner, aber bei 100.000 Zeilen rechnet sich doch Excel einen Wolf oder? Kann man nicht per Button das einmal abfragen und das Ergebnis in die jeweilige Zelle schreiben sowie bei dem Code Teil von mir:
    With Sheets("Tabelle1")
For z = 6 To .Cells(.Rows.Count, 4).End(xlUp).Row
Cells(z, 55).Value = Application.WorksheetFunction.Sum(Range(Cells(z, 7), Cells(z,  _
30)))
Cells(z, 56).Value = Application.WorksheetFunction.Sum(Range(Cells(z, 31), Cells(z,  _
54)))
Cells(z, 57) = Cells(z, 55) - Cells(z, 56)
Next z
End With

Anzeige
AW: ca. 1 Sekunde bei mehr als 100.000 Zeilen
12.08.2018 14:45:54
Dieter(Drummer)
Hallo MaRc,
habe mmal den Code von Werner probiert und es dauert ca. 1 Sekunde bei meht als 100.000 Zeilen.
Gruß, Dieter(Drummer)
Danke Werner und Dieter
12.08.2018 14:55:52
MaRc
Ich habe es auch gerade getestet und du hast recht das geht recht fix. Sorry das ich so skeptisch war. Irgendwie hat das damals bei einer ähnlichen Anwendung viel länger gedauert^^
Gerne u. Danke für die Rückmeldung und...
12.08.2018 15:59:12
Werner
Hallo,
...zukünftig erst testen und dann schreiben.
Gruß Werner
Immer mehrmals testen, denn ...
12.08.2018 16:06:59
lupo1
... manchmal werden vor dem Ersttest erst bestimmte Codeteile geladen!
Beim zweiten Mal sind sie vorhanden, und die Messung ist günstiger.
Außerdem: Es darf keine andere Datei geöffnet sein, und es sollte auch keine weiteren Tabellen (falls nicht mit Gegenstand der Messung) in der Datei geben. Außerdem sollten alle nicht zugehörigen Elemente gelöscht sein.
Anzeige
AW: ca. 1 Sekunde bei mehr als 100.000 Zeilen
12.08.2018 15:00:39
MaRc
Der Code von Werner beginnt schon in der ersten Zeile, wie sag ich dem denn das es erst in Zeile 6 losgehen soll
statt Cells(1, halt 6.....unglaubliche Frage.....
12.08.2018 15:19:21
robert
oder einfach per Doppelklick aufs Datum ...
12.08.2018 14:55:58
Matthias
Hallo
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If IsDate(ActiveCell) Then
MsgBox "KW " & Application.WorksheetFunction.IsoWeekNum(ActiveCell)
End If
End Sub
Gruß Matthias
AW: oder einfach per Doppelklick aufs Datum ...
12.08.2018 14:58:59
MaRc
Ui das ist eine nette Lösung Matthias die muss ich mir mal speichern. Ich kann zwar dafür nicht gebrauchen aber für die Zukunft ist das sicher mal gut =)
Ich benötige nur die KW Woche in der Spalte aber für alle Zeilen, weile diese greife ich dann wieder in einem Diagramm ab.
Aber trotzdem danke
Anzeige
AW: VBA Kalenderwoche Berechen
15.08.2018 10:20:47
Marcus
Okay, das funktioniert insoweit ich alle Felder befülle. Wenn ich die Felder J3/K3 nicht befülle, passiert leider nichts, Zeit gleich 0.
Leider ist es bei uns nicht immer gesagt das beide Zeitfelder befüllt sind. Es kann auch sein das man nur einmal gerufen wird.
AW: VBA Kalenderwoche Berechen
15.08.2018 12:34:31
Hajo_Zi
warum setzt Du den Beitrag von "MaRc" auf offen.
Für Deine Probleme solltest Du einen eigenen Beitrag eröffnen.
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige