PDA

Vollständige Version anzeigen : Makro und Spalte einfügen


sonnenschein07
23.07.2012, 10:30
Hallo,

über den Button Raum_Nr zufügen, soll in den Tabellenblätter Montag-Sonntag automatisch
die Spalte "Raum_Nr" hinter „Name“ eingefügt werden.

Jeder Lehrer unterrichtet immer im gleichen Raum (siehe Index).
Aber die Lehrer sind an unterschiedlichen Tagen anwesend.

Mit Makro aufzeichnen habe ich es schon versucht, mir fehlt die Zuordnung Lehrer zum Raum.

VG
Sonnenschein

Hasso
23.07.2012, 12:22
Hallo Sonnenschein,

ich weiß nicht, an welcher Stelle die Raumnummern eingetragen werden sollen, habe das mal so eingebaut, wie ich es verstanden habe.

Beispielmappe anbei.

sonnenschein07
23.07.2012, 13:06
Hallo,

die Tabellen Mo-So werden mit Daten gefüllt, zum Abschluss soll dann über den Button Raum_Nr einfügen, die Lehrer-Raum-Zuordnung erfolgen.

Ich habe jetzt mal das Makro aufgezeichnet, jetzt fehlt mir nur der =SVERWEIS(....) noch im Makro.

VG

Hasso
23.07.2012, 13:24
Warum willst du das partout per VBA machen? Mit der Formel wäre das doch viel einfacher!

sonnenschein07
23.07.2012, 13:39
Hallo,

habs nun gefunden

Sub Makro1()
'
' Makro1 Makro
'

'
Sheets("Montag").Select
Range("H1").Select
ActiveCell.FormulaR1C1 = "Raum"
Range("H2").Select
Sheets("Index").Select
Range("H2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],Index!RC[-6]:R[8]C[-5],2,FALSE)"
Range("H3").Select
Sheets("Montag").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],Index!RC[-6]:R[8]C[-5],2,FALSE)"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H59"), Type:=xlFillDefault
Range("H2:H59").Select
Range("H2:H59").Select
Range("H3").Activate
Sheets("Menü").Select
End Sub


nicht die schönste Lösung, funktioniert aber.

VG

Hasso
23.07.2012, 14:04
Das geht aber reichlich kürzer und für alle Blätter, nicht nur Montag:

Sub Makro1()
'
' Makro1 Makro
'
Dim formel As String
Dim blatt As Integer

For blatt = 3 To 9
formel = "=WENN(ISTLEER(A2);"""";sverweis(A2;Index!$B$2:$C$10;2;FALSCH))"
Sheets(blatt).Range("H1") = "Raum"
Sheets(blatt).Range("H2:H59").FormulaLocal = formel
Next blatt

End Sub


Du solltest übrigens generell ohne SELECT oder ACTIVATE arbeiten, wenn du Eingaben in irgenwelche Zellen vornimmst.

sonnenschein07
18.12.2012, 12:25
Hallo,

gibt es eine Möglichkeit, dass der Belegungsplan_Montag (Daten kommen von Montag) die Lehrer automatisch auf freie Räume verteilt, dass im Vorfeld Überschneidungen vermieden werden?

VG
Sonnenschein

Hasso
19.12.2012, 08:19
Hallo Sonnenschein,

das würde schon gehen. Nur die Kriterien müsste man natürlich wissen, z.B. welcher Raum soll vergeben werden, wenn der erste besetzt ist, was passiert, wenn alle Räume besetzt sind, gibt es Prioritäten für einzelne Lehrer etc.

sonnenschein07
19.12.2012, 13:36
Hallo,

es sollte einfach der nächst freie Raum vergeben werden, klingt einfach nur wie Du schon anmerkst die Kriterien fehlen.

Als erstes sollte immer der Lehrer seinen Raum bekommen, mit der Lehrer_ID lege ich das vorher für jeden Raum fest.

Kriterien:

1. Vorrang immer die Lehrer_ID
2. Zeit -> Beginn

Die Vergabe sollte dann immer auf den nächsten nahen Platz erfolgen. Sind alle Plätze belegt, müsste es farblich hervorgehoben werden.

VG

sonnenschein07
06.01.2013, 10:20
Hallo,

wie kann man SVERWEIS mit mehren Kriterien versehen?

VG

Hasso
06.01.2013, 10:25
Was meinst du genau?

sonnenschein07
06.01.2013, 11:55
Als Kriterium die Lehrer_ID und als zweites die Zeit (Beginn)

Ist der Lehrer geplant mit einer Zeit, soll er in seinem Raum stehen unter Beachtung der Zeit (Beginn).

sonnenschein07
07.01.2013, 10:37
Ich habe die Tabelle noch mal vereinfacht.

..…kurz erklärt, Lehrer 2 und 8 soll automatisch nach rechts verlegt werden, da Lehrer 3 und 5 den Raum links belegen.
Lehrer 3 beginnt um 7:00 und Lehrer 2 um 8:00, da kann Lehrer 2 nicht mehr in den Raum (links) gehen und müsste nach rechts verlegt werden.

Kann man es nicht mit einer Formel vereinfachen?

Tabelle1 liefert die Ausgangswerte für Tabelle2.

Hasso
07.01.2013, 10:47
Hallo sonnenschein,

in deiner neuesten Mappe sehe ich überhaupt keine Räume mehr.

sonnenschein07
07.01.2013, 11:00
Hallo Hasso,

ich versuche es nun vereinfacht aufzubauen, darum erst mal nur mit zwei Räume grün (links) und gelb (rechts).

Vielleicht komme ich so langsam an das Ziel.

VG
sonnenschein