Thema Datum  Von Nutzer Rating
Antwort
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
Blau Aw:Aw:Virtuelle tabellen automatisch gelöscht
04.07.2009 11:28:46 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
04.07.2009 11:28:46
Views:
1308
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Virtuelle tabellen automatisch gelöscht
Hallo Céline,
ich habe eben erst deine Antwort entdeckt. Meistens steht deer neueste Beitrag am Ende der Auflistung, so dass ich deine Antwort übersah.
Ich vermute, dein Problem ist, dass nach einer Kopie der Werte aus den Tabellen mögliche bisherige Einträge in den Arrays durch die Anweisungen hinter Select Case gelöscht werden.
Ich habe dein Makro etwas umgestellt und gestrafft. Gegenüber 6 Arrays nom1-6 erspart ein dreidimensionales Array nom(i,a,b) Schreibarbeit, so dass ich dieses eingeführt habe.
Ich würde die Daten nicht in Tabellen1-6, sondern in einer Datei, z.B. "Kalenderdatei", speichern.
Ferner prüfe ich, ob das Makro an einem Tag schon verwendet wurde. Dazu speichere ich auch das Datum in der Datei. Nur wenn es noch nicht verwendet wurde, wird die Initialisierung des Kalenders gestartet.
Müsstest du dabei nicht alle Zeitzeilen deiner Tabelle durchlaufen? Dann kannst du "'" vor "for b=..." und "next b" entfernen.
Ablauf:
1. Einlesen der bisherigen Daten, sofern es solche gibt
2. An einem neuen Tag Initialisieren aller Zeitzeilen des Kalenders, sonst Beibehalten der alten Daten
3. Rückschreiben der nom-Werte für den Tag in die Kalendertabelle
4. Übernahme des Eintrags eines Mitarbeiters
5. Speichern der Werte
Ich konnte meinen Vorschlag nicht testen. Daher kann es sein, dass ich etwas übersehen habe oder dass ich auch dein Ziel nicht vollständig ableiten konnte.

'1.
Kalenderdatei = "C:\...\Kalenderdaten.dat" 'Pfad ergänzen!
Set Fso = CreateObject("Scripting.FileSystemObject") 'Zugriff auf das Dateiensystem
If Fso.FileExists(Kalenderdatei) Then 'wenn es die Datei schon gibt, werden die Daten eingelesen
Set Fso = Nothing
f = FreeFile
Open Kalenderdatei For Input As #f
Input #f, Datum
For i = 1 To 6
For a = 0 To 30
For b = 0 To 17
Input #f, nom(i, b, a)
Next b
Next a
Next i
Close #f
End If
'2.
If Datum kleiner größer Date Then 'Zeichen einsetzen
'for b=0 to 17'? Initialisierung aller Zeitzeilen des Tages
b = zeile - 8 'falls du Zeile schon vorher festgelegt hast, will ich den Wert nicht für den Laufindex ändern
For i = 1 To Val(Right(Cells(zeile + 24, Tag), 1))
nom(i, b, Tag - 2) = ""
Next i
For i = Val(Right(Cells(zeile + 24, Tag), 1)) + 1 To 6
nom(i, b, Tag - 2) = "belegt" 'mein Kalender fängt bei Zeile 8 an, deswegen mache ich bei meinen virtuellen Tablle die bei 0 anfangen -8
Next i
'next b'?
Datum = Date
End If
'3.
For i=1 to 6
For b = 8 To 25
if nom(i, b - 8, Tag - 2) kleiner größer "belegt" then Cells(b, Tag) = Cells(b, Tag)+" / "nom(i, b - 8, Tag - 2)
Next b
next i
'4.
For i = 6 To 1 Step -1
If nom(i, zeile - 8, Tag - 2) = "" Then
nom(i, 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
Exit For
End If
Next i
If i = 0 Then MsgBox ("Es sind schon zuviele eingetragen maximum : " & Right(Cells(zeile + 24, Tag), 1) & " Personen um : " & z(i) & "Uhr")
'5.
f = FreeFile
Open Kalenderdatei For Output As #f
Write #f, Datum
For i = 1 To 6
For a = 0 To 30
For b = 0 To 17
Write #f, nom(i, b, a)
Next b
Next a
Next i
Close #f

Gruß
Holger


Céline schrieb am 02.07.2009 11:11:03:

So habe mal mehrere sachen probiert.. wie Du gesagt hast, habe ich dass mit den If gemacht .. soweit gut...
mit den tabelle klappt es, es trägt schön ein.
Doch im Kalender wird gar nichts eingetragen.. ich versteh es nciht mehr bin zum dumm für vba glaube ich^^

Wenn ich den Teil am schluss des codes weglasse :

Es trägt Die Namen schön im Kalender ein, (Ist ein extra tabellenblatt ("Januar"). Aber ich kann leider soviele mitarbeiter eintragen wie ich will.. die 6 Tabellen werden da nicht mehr benuzt...

Danke für deine Mühe.. :-)+

Grüße

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
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
Blau Aw:Aw:Virtuelle tabellen automatisch gelöscht
04.07.2009 11:28:46 Holger
NotSolved