Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spalten und zellen Schleife?
#1
Hallo,
siehe bitte im Anhang eine Beispiel Tabelle an.
möchte mein Wochenplan erleichtern.Ist das möglich mit Button?

z.B. diese Woche
Blaue Gruppe 1 mit den Uhren haben Frühschicht Artikel Angebot 1 bis Angebot 25.
Grüne Gruppe 2 mit den Fotos haben Spätschicht Artikel Angebot 26 bis Angebot 50.
Orange Gruppe 3 mit den Handy haben Nachtschicht Artikel Angebot 51 bis Angebot 75.

nächste Woche:
hat Gruppe 1 Nachtschicht
Gruppe 2 Frühschicht
Gruppe 3 Spätschicht

jede Woche im wechsel also Gruppen Rhythmus ist immer Frühschicht Nachtschicht Spätschicht.

kann ich das auf drücken einer Button ermöglichen?

also A1 bis A29 (früh) zu C1 bis C29 (Nacht)
C1 bis C29 (Nacht) zu B1 bis B29 (Spät)
B1 bis B29 (Spät) zu A1 bis A29 (Früh)

jede Woche in dieser Schleife



hoffe das ich das einigermaßen erklärt zu haben.


mfg
kaptan


Angehängte Dateien
.xlsx   Microsoft Excel-Arbeitsblatt (neu).xlsx (Größe: 10,53 KB / Downloads: 5)
Antworten Top
#2
Hallo Kaptan,

das geht auch per Formel, wenn bestimmte Vorgaben erfüllt sind.

Du hast Deine Daten in anderen Spalten fest eingegeben:

Arbeitsblatt mit dem Namen 'Tabelle1'
 FGH
1Gruppe 1Gruppe 2Gruppe 3
2UhrenFotosHandy
3   
4Angebot 1Angebot 26Angebot 51
5Angebot 2Angebot 27Angebot 52
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Dann werden sie wöchentlich so per Formel automatisch angepast:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABC
1FrühSpätNacht
2Gruppe 3Gruppe 1Gruppe 2
3HandyUhrenFotos
4   
5Angebot 51Angebot 1Angebot 26
6Angebot 52Angebot 2Angebot 27

ZelleFormel
A2=INDEX($F$1:$H$1;;REST(HEUTE()+SPALTE(C1)*7+2-REST(HEUTE();7);3)+1)
A3=INDEX($F$2:$H$2;;REST(HEUTE()+SPALTE(C2)*7+2-REST(HEUTE();7);3)+1)
A5=INDEX($F$4:$H$28;ZEILE(A1);REST(HEUTE()+SPALTE(C1)*7+2-REST(HEUTE();7);3)+1)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • kaptan2002
Antworten Top
#3
Hallo atilla ,
vielen Dank für deine Formel
aber so ist es mir ehrlich gesagt zu kompliziert.Möchte es einfach auf Button klick alles aufgerückt haben.

Gruß
kaptan
Antworten Top
#4
Hallo Kaptan,

Dann teste mal folgenden Code:

Code ins Code Modul der Tabelle einfügen.
Code:
Option Explicit

'also A1 bis A29 (früh) zu C1 bis C29 (Nacht)
'C1 bis C29 (Nacht) zu B1 bis B29 (Spät)
'B1 bis B29 (Spät) zu A1 bis A29 (Früh)
Sub verschieben()
   Dim vntA As Variant
   Dim vntB As Variant
   Dim vntC As Variant
  
   vntA = Range("A1:A29").Value
   vntB = Range("B1:B29").Value
   vntC = Range("C1:C29").Value
   Range("A1:A29").Value = vntC
   Range("B1:B29").Value = vntA
   Range("C1:C29").Value = vntB
  
End Sub

Bei der Formellösung reicht es, wenn Du in A1 folgende Formel eingibst:
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGH
1NachtFrühSpät  FrühSpätNacht
2Gruppe 3Gruppe 1Gruppe 2  Gruppe 1Gruppe 2Gruppe 3
3HandyUhrenFotos  UhrenFotosHandy

ZelleFormel
A1=INDEX($F$1:$H$29;ZEILE();REST(HEUTE()+SPALTE(C$1)*7+2-REST(HEUTE();7);3)+1)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Diese kann nach rechts und nach unten kopiert werden.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • kaptan2002
Antworten Top
#5
nein geht nicht atilla Sad

es muss einfacher gehen, das habe ich schon mal gesehen aber kann mich nicht mehr auf die Tabelle erinnern wo das war.

A1 bis A29 (früh) zu C1 bis C29 (Nacht)
'C1 bis C29 (Nacht) zu B1 bis B29 (Spät)
'B1 bis B29 (Spät) zu A1 bis A29 (Früh)

es sollte immer in dieser Ryhtmus oder schleife weiter gehen.
Antworten Top
#6
ich habe das jetzt so mit Makroaufzeichnung gemacht.
Es klappt aber man kann das besser machen ohne aufzeichnung.

Sub Makro1()
'
' Makro1 Makro
'

'
Range("A2:A29").Select
Selection.Copy
Range("F2").Select
ActiveSheet.Paste
Range("A5").Select
Application.CutCopyMode = False
Range("A2:A29").Select
Selection.ClearContents
Range("B2:B29").Select
Selection.Cut
Range("A2").Select
ActiveSheet.Paste
Range("C2:C29").Select
Selection.Cut
Range("B2").Select
ActiveSheet.Paste
Range("F2:F29").Select
Selection.Cut
Range("C2").Select
ActiveSheet.Paste
Range("F13").Select
End Sub
Antworten Top
#7
Hallo kaplan,

Das Prinzip hast ja gesehen, dann könntest Du eigentlich selber korrigieren.

Der eingestellte Code dann so:

Code:
'also A1 bis A29 (früh) zu C1 bis C29 (Nacht)
'C1 bis C29 (Nacht) zu B1 bis B29 (Spät)
'B1 bis B29 (Spät) zu A1 bis A29 (Früh)
Sub verschieben()
   Dim vntA As Variant
   Dim vntB As Variant
   Dim vntC As Variant
  
   vntA = Range("A2:A29").Value
   vntB = Range("B2:B29").Value
   vntC = Range("C2:C29").Value
   Range("A2:A29").Value = vntB
   Range("B2:B29").Value = vntC
   Range("C2:C29").Value = vntA
  
End Sub

Du schreibst ab A1 aber meinst ab A2, richtig? Macht auch mehr Sinn.

Dann kann man im Code noch 3 Zeilen einsparen, es reicht dann das:

Code:
Sub verschieben2()
   Dim vntA As Variant
   Dim vntB As Variant
  
   vntA = Range("A2:A29").Value
   vntB = Range("B2:C29").Value

   Range("A2:B29").Value = vntB
   Range("C2:C29").Value = vntA
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • kaptan2002
Antworten Top
#8
okay superThumps_up
es klappt nur die Zellen Farben sollen mit wandern geht das auch? kann ich da auch beliebige Zellen Farben auswählen?



vielen Dank atilla
Antworten Top
#9
Hallo Kaplan,

wenn Spalte D frei ist, dann ginge es so:

Code:
Sub verschieben3()
    Range("A4:A29").Cut Destination:=Range("D4:D29")
    Range("B4:D29").Cut Destination:=Range("A4:C29")
End Sub

Sonst müsste man in Spalte D eine weitere Spalte einfügen und diese dann nachträglich löschen.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • kaptan2002
Antworten Top
#10
Hallo kaplan,

Der Bereich natürlich ab A2, so:

Code:
Sub verschieben3()
    Range("A2:A29").Cut Destination:=Range("D2:D29")
    Range("B2:D29").Cut Destination:=Range("A2:C29")
End Sub

und so ohne Bildschirmflackern:

Code:
Sub verschieben3()
   Application.ScreenUpdating = False
    Range("A2:A29").Cut Destination:=Range("D2:D29")
    Range("B2:D29").Cut Destination:=Range("A2:C29")
   Application.ScreenUpdating = True
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • kaptan2002
Antworten Top


Gehe zu:


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