Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


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)
to 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

Excel 2007
[-] Folgende(r) 1 Benutzer sagt Danke an atilla für diesen Beitrag:
kaptan2002
to 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
to 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

Excel 2007
[-] Folgende(r) 1 Benutzer sagt Danke an atilla für diesen Beitrag:
kaptan2002
to top
#5
nein geht nicht atilla :-(

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.
to 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
to 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

Excel 2007
[-] Folgende(r) 1 Benutzer sagt Danke an atilla für diesen Beitrag:
kaptan2002
to 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
to 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

Excel 2007
[-] Folgende(r) 1 Benutzer sagt Danke an atilla für diesen Beitrag:
kaptan2002
to 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

Excel 2007
[-] Folgende(r) 1 Benutzer sagt Danke an atilla für diesen Beitrag:
kaptan2002
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Variablen füllen mit Schleife mumpel 40 362 07.12.2016, 22:37
Letzter Beitrag: snb
  Quellcode kürzen - mehrere if abfragen durch for Schleife ersetzen? Abitus 4 91 05.12.2016, 07:02
Letzter Beitrag: Abitus
  [VBA] Einfärben von Textboxen über Schleife Rabe 4 88 25.11.2016, 22:04
Letzter Beitrag: schauan
  Bestellung/Spalten: nur bestimmte Spalten kopieren teufelchenbs 14 329 25.11.2016, 20:55
Letzter Beitrag: schauan
  Hilfe beim Code "Schleife von bis" michel34497 2 72 16.11.2016, 17:55
Letzter Beitrag: michel34497
  Hilfe bei Schleife Kash 2 74 17.10.2016, 07:35
Letzter Beitrag: Kash
  Schleife in Makro einbauen Max89 4 228 14.10.2016, 20:44
Letzter Beitrag: Max89
  Stückliste vergleichen: Teilinhalte von Zellen in div. Spalten suchen und einfärben Rabe 8 362 23.08.2016, 12:23
Letzter Beitrag: Rabe
  Schleife für Excel Solver TUBS 4 367 10.07.2016, 12:31
Letzter Beitrag: TUBS
  Stringkonstruktion ohne Schleife möglich? VBATartar 3 270 02.07.2016, 08:03
Letzter Beitrag: RPP63

Gehe zu:


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