Thema Datum  Von Nutzer Rating
Antwort
Rot Virtuelle tabellen automatisch gelöscht -.-'
01.07.2009 10:19:53 Célline
NotSolved
01.07.2009 13:03:22 Holger
NotSolved
02.07.2009 10:38:30 Holger
NotSolved
02.07.2009 07:58:20 Céline
NotSolved
02.07.2009 11:11:03 Céline
NotSolved
04.07.2009 11:28:46 Holger
NotSolved

Ansicht des Beitrags:
Von:
Célline
Datum:
01.07.2009 10:19:53
Views:
2484
Rating: Antwort:
  Ja
Thema:
Virtuelle tabellen automatisch gelöscht -.-'
Guten morgen zusammen,

Als erste entschuldige ich mich für die Deutschfehler, ich bin französin.
Ich habe ein kleines Problem mit meinem vba code.
Ich habe eine Buchungsliste gemacht, in meiner excel datei habe ich einen Kalender mit jeweils jeden Tag für die Spalten und in den Zeilen sind die Zeiten, von 8h bis 16h30.
In dieser Tabelle werden sich mitarbeiter in den verschiedenen Tagen und Zeiten eintragen.
Ich habe auch immer eine maximale anzahl an Mitarbeiter die sich in der selben Zeit eintragen können.
Dies variert, immer zwischen max 2 bis max 6 mitarbeiter.
Deshalb habe ich 6 virtuelle Tabellen erstellt, wo ich jeweils die Informationen der mitarbeiter abspeicher kann.
Ich mach mal ein stück code rein, dann ist es leichter zu verstehen (hoffe ich)


Select Case Right(Cells(Zeile + 24, Tag), 1) '<---Es handelt sich hier um die maximale anzahl, dass gibt der Teamleiter ein.

Case Is < 2
nom1(Zeile - 8, Tag - 2) = "" 'die zeile und der tag wird ausgerechnet. der mitarbeiter gibt in einen Userform ein von-bis-datum-name er arbeiten will
nom2(Zeile - 8, Tag - 2) = "belegt" 'mein Kalender fängt bei Zeile 8 an, deswegen mache ich bei meinen virtuellen Tablle die bei 0 anfangen -8
nom3(Zeile - 8, Tag - 2) = "belegt"
nom4(Zeile - 8, Tag - 2) = "belegt"
nom5(Zeile - 8, Tag - 2) = "belegt"
nom6(Zeile - 8, Tag - 2) = "belegt"

Case Is < 3

nom1(Zeile - 8, Tag - 2) = ""
nom2(Zeile - 8, Tag - 2) = ""
nom3(Zeile - 8, Tag - 2) = "belegt"
nom4(Zeile - 8, Tag - 2) = "belegt"
nom5(Zeile - 8, Tag - 2) = "belegt"
nom6(Zeile - 8, Tag - 2) = "belegt"


Case Is < 4

nom1(Zeile - 8, Tag - 2) = ""
nom2(Zeile - 8, Tag - 2) = ""
nom3(Zeile - 8, Tag - 2) = ""
nom4(Zeile - 8, Tag - 2) = "belegt"
nom5(Zeile - 8, Tag - 2) = "belegt"
nom6(Zeile - 8, Tag - 2) = "belegt"

Case Is < 5

nom1(Zeile - 8, Tag - 2) = ""
nom2(Zeile - 8, Tag - 2) = ""
nom3(Zeile - 8, Tag - 2) = ""
nom4(Zeile - 8, Tag - 2) = ""
nom5(Zeile - 8, Tag - 2) = "belegt"
nom6(Zeile - 8, Tag - 2) = "belegt"


Case Is < 6
nom1(Zeile - 8, Tag - 2) = ""
nom2(Zeile - 8, Tag - 2) = ""
nom3(Zeile - 8, Tag - 2) = ""
nom4(Zeile - 8, Tag - 2) = ""
nom5(Zeile - 8, Tag - 2) = ""
nom6(Zeile - 8, Tag - 2) = "belegt"

Case Is = 6


nom1(Zeile - 8, Tag - 2) = ""
nom2(Zeile - 8, Tag - 2) = ""
nom3(Zeile - 8, Tag - 2) = ""
nom4(Zeile - 8, Tag - 2) = ""
nom5(Zeile - 8, Tag - 2) = ""
nom6(Zeile - 8, Tag - 2) = ""


End Select


If nom6(Zeile - 8, Tag - 2) = "" Then
nom6(Zeile - 8, Tag - 2) = TextBox4.Value 'textbox4 ist der name des mitarbeiters
Cells(Zeile, Tag) = Cells(Zeile, Tag).Value & "/" & TextBox4.Value 'Hier trägt es in die richtige Zeit un tag ein
Else
If nom5(Zeile - 8, Tag - 2) = "" Then
Cells(Zeile, Tag) = Cells(Zeile, Tag).Value & "/" & TextBox4.Value
nom5(Zeile - 8, Tag - 2) = TextBox4.Value
Else
If nom4(Zeile - 8, Tag - 2) = "" Then
Cells(Zeile, Tag) = Cells(Zeile, Tag).Value & "/" & TextBox4.Value
nom4(Zeile - 8, Tag - 2) = TextBox4.Value
Else
If nom3(Zeile - 8, Tag - 2) = "" Then
Cells(Zeile, Tag) = Cells(Zeile, Tag).Value & "/" & TextBox4.Value
nom3(Zeile - 8, Tag - 2) = TextBox4.Value
Else
If nom2(Zeile - 8, Tag - 2) = "" Then
Cells(Zeile, Tag) = Cells(Zeile, Tag).Value & "/" & TextBox4.Value
nom2(Zeile - 8, Tag - 2) = TextBox4.Value
Else
If nom1(Zeile - 8, Tag - 2) = "" Then
Cells(Zeile, Tag) = Cells(Zeile, Tag).Value & "/" & TextBox4.Value
nom1(Zeile - 8, Tag - 2) = TextBox4.Value
Else

MsgBox ("Es sind schon zuviele eingetragen maximum : " & Right(Cells(Zeile + 24, Tag), 1) & " Personen um : " & z(i) & "Uhr")
End If
End If
End If
End If
End If
End If
Mein Problem ist dass die daten leider nicht in den virtuellen Tabellen bleiben, und man sieht dann nicht ob sich schon jemand anderes eingetragen hat.
Deshalb habe ich die 6 tabellen in 6 Tabellenblätter in excel gespeichert.
von dem code kommt :

For a = 0 To 30
For b = 0 To 17

nom1(b, a) = Tabelle1.Cells(b + 2, a + 2)
nom2(b, a) = Tabelle2.Cells(b + 2, a + 2)
nom3(b, a) = Tabelle3.Cells(b + 2, a + 2)
nom4(b, a) = Tabelle4.Cells(b + 2, a + 2)
nom5(b, a) = Tabelle5.Cells(b + 2, a + 2)
nom6(b, a) = Tabelle6.Cells(b + 2, a + 2)
Next b
Next a



Und am schluss

For a = 0 To 30
For b = 0 To 17
Tabelle1.Cells(b + 2, a + 2) = nom1(b, a)
Tabelle2.Cells(b + 2, a + 2) = nom2(b, a)
Tabelle3.Cells(b + 2, a + 2) = nom3(b, a)
Tabelle4.Cells(b + 2, a + 2) = nom4(b, a)
Tabelle5.Cells(b + 2, a + 2) = nom5(b, a)
Tabelle6.Cells(b + 2, a + 2) = nom6(b, a)
Next b
Next a

Aber wenn ich dass im einzelschritt durchlaufen lasse habe ich ein problem, es löscht alles wieder aus meinem Kalender raus wenn ich die Tabellenblätter wieder fülle..
Kann mir da jemand helfen? Hat jemand eine andere lösung.?

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Virtuelle tabellen automatisch gelöscht -.-'
01.07.2009 10:19:53 Célline
NotSolved
01.07.2009 13:03:22 Holger
NotSolved
02.07.2009 10:38:30 Holger
NotSolved
02.07.2009 07:58:20 Céline
NotSolved
02.07.2009 11:11:03 Céline
NotSolved
04.07.2009 11:28:46 Holger
NotSolved