Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

Bräuchte Hilfe bei automatischer Spaltenverschiebung
#1
Wink 
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 . Huh

Ich bedanke mich schonmal tausendfach

Beste Grüße
Jörg


.xlsx   Beta Version.xlsx (Größe: 18,25 KB / Downloads: 10)
Top
#2
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
Top
#3
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
Top
#4
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
[-] Folgende(r) 2 Nutzer sagen Danke an Kuwer für diesen Beitrag:
  • Frogger1986, joepin7
Top
#5
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
Top
#6
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

ABCDEFGHIJKL
12KW 424344454647484950Wöchenenliche Stunden Vorgabe Arbeitstage
Formeln der Tabelle
ZelleFormel
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:
  • joepin7
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste