Registriert seit: 20.10.2018
Version(en): 2017
11.11.2018, 19:21
Hallo Leute
Ich bräuchte mal euer wissen und hoffe das ihr mir helfen könnt . Und zwar geht es um die Zellspalten B12/B32 bis J12/J32 .
In der Zeile 12 hasbe ich die Kw Wochen die sich jede Woche um ein Spalte nach links verschieben . Zu mein Problem wie kann ich es fertig bringen das der Zellinhalt darunter sich mit verschiebt ? Also das also was diese Woche F12-F32 , die andere Woche dann E12 - E32 ist ja und so weiter .
Im Anhang könnt ihr es euch anschauen
Hat da einer einer Idee ? Ich bin da mit Excel und schon garnicht mit VBA gut bewandert .
Ich bedanke mich schonmal tausendfach
Beste Grüße
Jörg
Beta Version.xlsx (Größe: 18,25 KB / Downloads: 10)
Registriert seit: 02.12.2017
Version(en): Office 365
Das kannst du prima mit dem Makrorekorder aufzeichnen! Aktiviere den Makrorekorder und füge die Zellen die du brauchst ein und schreibe oben dann deine "KW- Formel" wieder rein ! Danach legst du das Makro auf einen Button! Fertig
Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
Hallo Jörg
Frogger hat eine schöne Idee. Ich frage mich aber wie das gehen soll???
Ich sehe im Beispiel das es noch Daten in den Spalten O bis W gibt. Feiertage und Hilfsspalten von Zeile 2 bis 17 !!
Wenn du ab Zeie 12 alles verschiebst zerstörst du unweigerlich einen Teil von diesem Bereich. Das klappt m.E. so nicht!!
mfg Gast 123
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Jörg,
ich behaupte mal, dass das nur per VBA geht. Mein Vorschlag wäre folgendes:
Füge in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes folgenden Code ein:
Private Sub Worksheet_Calculate()
Dim i As Long
For i = 1 To Range("K2").Value - Range("F12").Value
On Error Resume Next
Application.EnableEvents = False
Range("B13:H32") = Range("C13:I32").Value
Range("I13:I32") = ""
Range("F12").Value = Range("F12").Value + 1
Application.EnableEvents = True
On Error GoTo 0
Next i
End Sub
Anschließend überschreibst Du die Formel in F12 manuell mit dem selben Wert, also der momentanen KW.
Danach speicherst Du die Mappe als Excel-Arbeitsmappe mit Makros (*.xlsm) ab.
Nun verschieben sich die Spalten automatisch, wenn die aktuelle KW in K2 größer ist als in F12.
Gruß Uwe
Registriert seit: 20.10.2018
Version(en): 2017
Hallo Uwe
Vielen Dank dafür , so läuft es ganz gut verschiebt sich wie du es gesagt hast . Nur aus der letzten Spalte J13-J32 sind dann die Formeln weg und die Spalte fühlt sich nicht mehr auf sodas ich dann leere zellen bekomme . Ein weiteres Problem ist der Jahreswechsel dann wäre die Zahl kleiner als in K2 .( ein geringer Übel der sich nur eine woche ist . ) In der Zeilenreihe B12-J12 sind die zellen verformelt sodass dort immer die richtigen Kw Wochen angezeigt werden also nach Kw 52 kommt dann Kw 1 . Kann man dieses nicht nutzten ,wenn sich die zahlen in der 12 er reihe sich verschieben, sich die darunter liegenden zellen die Werte einfach sich mit verschieben ? Der Anhang ist nur ein kleiner teil von ganzem Blatt , nur daran baut alles andere auf . Bis heute verschiebe ich jede woche die Zellen manual , was manchmal zu Fehlern führt und dann eine Menge Zeit wieder in Anspruch nimmt sie wieder zu korigieren . Alles andere läuft so einwandfrei mit Formeln und ohne VBA . Nur hier komme ich einfach nicht weiter .
Nochmals Danke für dieses die Richtung ist schon richtig .
Beste Grüße
Jörg
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Jörg,
(12.11.2018, 11:30)joepin7 schrieb: Nur aus der letzten Spalte J13-J32 sind dann die Formeln weg
das Makro fasst diese Zellen gar nicht an, also lag es nicht an diesem.
Neuer Vorschlag:
Seite 1 | A | B | C | D | E | F | G | H | I | J | K | L |
12 | KW | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | Wöchenenliche Stunden Vorgabe | Arbeitstage |
Formeln der Tabelle |
Zelle | Formel | B12 | =KALENDERWOCHE($H$2-28;21) | C12 | =KALENDERWOCHE($H$2-21;21) | D12 | =KALENDERWOCHE($H$2-14;21) | E12 | =KALENDERWOCHE($H$2-7;21) | G12 | =KALENDERWOCHE($H$2+7;21) | H12 | =KALENDERWOCHE($H$2+14;21) | I12 | =KALENDERWOCHE($H$2+21;21) | J12 | =KALENDERWOCHE($H$2+28;21) |
|
Private Sub Worksheet_Calculate()
Do Until Range("K2").Value = Range("F12").Value
On Error Resume Next
Application.EnableEvents = False
Range("B13:H32") = Range("C13:I32").Value
Range("I13:I32") = ""
Range("F12").Value = Application.WeekNum(7 * Fix(CDate("2-1-" & Year(Range("H2").Value)) / 7 + Range("F12").Value) + 2, 21)
Application.EnableEvents = True
On Error GoTo 0
Loop
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• joepin7