Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehlender Lösungsansatz

Fehlender Lösungsansatz
30.06.2007 02:30:07
Heiner
Hallo zusammen,
ich hoffe ihr könnt mir weiter Helfen beim folgenden Problem:
Auf arbeit hat ein Kollege eine Urlaubsübersicht erstellt, soweit so gut. Nun brauche ich eine zweite Tabelle wo ich ein Datum eintragen kann und EXEL eine Liste erstellt mit dem Eingegebenen Datum und weiteren 14 Tage, darunter die Mitarbeiter aufgelistet die an diesen Tagen urlaub haben.
Aufbau der Urlaubsübersicht
In
Spalte A steht die Nummer des Mitarbeiters
Spalte B steht der Name des Mitarbeiters
Spalte C steht die Abkürzung für den Arbeitsplatz des Mitarbeiters
Folgende Spalten Kalender
Mitarbeiter die Urlaub haben, bekommen ein "X" in die Cellen
Ich überlege schon eine weile aber habe noch nicht mal einen richtigen Lösungsansatz.
Ich dachte SVERWEIS -Suchkriterium "X" dies funktioniert nicht.
Jetzt bastel ich an einen Makro aber ich weiß nicht wie man die Suche in den gegebenen (gesuchten) Datumsbereich nach cellen die das "X" haben realisiert! Die Ergebnisse (Gefundene Mitarbeiter + Datum) in eine Listenbox eintragen lassen oder in ein Tabellenblatt das ist egal!!
Ich hoffe ihr habt einen Lösungsansatz für mich!
Vielen Dank!!!!

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlender Lösungsansatz
30.06.2007 09:00:22
Matthias
Hallo Heiner,

Aufbau der Urlaubsübersicht
In
Spalte A steht die Nummer des Mitarbeiters
Spalte B steht der Name des Mitarbeiters
Spalte C steht die Abkürzung für den Arbeitsplatz des Mitarbeiters

Das ist mir jetzt nicht klar... nur ein Mitarbeiter?
Folgende Spalten Kalender
Mitarbeiter die Urlaub haben, bekommen ein "X" in die Cellen

In welche Zellen? In ein anderes Tabellenblatt?
Gruß Matthias

AW: Fehlender Lösungsansatz
30.06.2007 09:41:00
Chaos
servus,
schon lösbar, aber poste mal die Datei oder wenigstens das Tabellenblatt, damit man eine Vorstellung kriegt wie z.B. der kalender aussieht.
Gruß
Chaos

Anzeige
Fehlender Lösungsansatz
30.06.2007 12:13:38
Heiner
Sorry das ich es etwas umständlich geschrieben habe!!
Es sind viele Mitarbeiter nicht nur einer!!
Diesen Kalender hat ein Kollege in einem normalen Tabellenblatt erstellt kann es leider nicht posten, weil dieser auf dem Firmenrechner ist, frühsten montag!
Ich versuche es trotzdem nochmal zu erklären!!
Spalte / Inhalt
A / Nr. (Beginnt ca. bei A8 mit den Nr. 1,2,3 usw.)
B/ Namen der Mitarbeiter (ca. 100)
C/Position des Arbeitsplatzes (KR oder ZG usw.)
D,E,F/Leer
G6 bis AJ6 -- Zellen verbunden / Juni 2007
G7/1 (d.h. diese Spalte symbolisiert den 01.Juni.2007)
H7/2 (d.h. diese Spalte symbolisiert den 02.juni.2007)
usw.
Bin neu hier wie kann man eigentlich Posten, ich stelle den Kalender mal nach?
Danke für euere hilfe!!

Anzeige
AW: offen (muss jetzt weg) - o.T.
30.06.2007 12:15:00
Matthias
-

AW: Fehlender Lösungsansatz
30.06.2007 14:07:00
Chaos
Servus,
posten ist ganz einfach. Über dem Beitragsfenster steht in blauer Schrift " Hier gehts zum File-Upload".
Da drauf drücken E-Mail und Passwort eingeben, Datei hochladen und Link kopieren, dann wieder zurück zur Maske.
O.k. wenn die Spalten ab G also die Tage symbolisieren könnte die Lösung einfach sein.
Poste morgen mal die Datei, dann schau ich mir das an.
Gruß
Chaos

Anzeige
Fehlender Lösungsansatz
30.06.2007 15:55:36
Heiner
Nochmal vielen Dank für eure Hilfe!!!! :-)
So habe mal schnell den Kalender nachgestellt!
Das "X" symbolisiert ein Kreuz und heißt, dieser Mitarbeiter hat an diesen Tag Urlaub!
Hier nun der Urlaubsplaner!!

Die Datei https://www.herber.de/bbs/user/43716.xls wurde aus Datenschutzgründen gelöscht


AW: Fehlender Lösungsansatz
30.06.2007 19:59:07
Chaos
Servus Heiner,
hab mal was für dich gemacht.
https://www.herber.de/bbs/user/43722.xls
gilt aber nur für Juni, bei anderen Monaten muß das entsprechend erweitert werden und hat noch keine Löschfunktion für das Tabellenblatt 2,(alte Werte!), kann ich dir aber nachliefern, wenn das jetzt so für dich passt.
Gruß
Chaos

Anzeige
Fehlender Lösungsansatz
01.07.2007 11:58:00
Heiner
Hi Chaos das ist cool!!
So habe ich mir das vorgestellt!!
Nun da ich mich im VBA mehr schlecht als recht aus kenne wäre es echt super, wenn du den Code etwas erläutern könntest damit auch ich das verstehe und lerne!!
Folgende Probleme:
gleich am Anfang (ByVal Target As Range) ---- was erreichst du damit?
dann ; Target.address = ...... ?
Die For to next - , select case- und with- anweisung habe ich noch nicht richtig verstanden!
Rund um fast alles!
Das was unter with.... geschrieben hast versteh ich garnicht, darüber den Inhalten konnte ich folgen!
Die Proble die ich hier aufgeführt habe, versuche ich schon länge zulösen habe im Internet gesucht auch mehrmals die Hilfe durch gelesen aber so richtig klick hat es noch nicht gemacht!!!
Wäre dir ganz doll dankbar, wenn du mir diese Probleme anhand des Urlaubplaners etwas näher bringen könntest!!
Vielen Danken!!
Grüße Heiner!!

Anzeige
AW: Fehlender Lösungsansatz
01.07.2007 14:53:00
Chaos
Servus Heiner,
anbei nochmal komplett deklarierte Makros(Kommentare in den Makrozeilen, grün) und überarbeitete Datei.
Ich hab durch ein paar Änderungen die Datei so ummodifiziert, dass ihr für jedes Jahr und für jeden Monat ein- und dasselbe Tabellenblatt benutzen könnt, sogar Schaltjahre bis 2060 sind berücksichtigt. Will heißen :
Du gibst in Urlaubsplaner dein Monatsanfangsdatum ein und die Tabelle erstellt sich für diesen Monat entsprehend mit den Wochentagen und Monatstagen.
Wenn du in Tabelle 2 dein Datum eingibst, holt sich die Tabelle die Daten aus Urlaubsplaner, wenn die Monate übereinstimmen, ansonsten passiert nichts.
kann man natürlich noch verfeinern, aber ist eigentlich nur Spielerei mit MsgBox und sonstigem.
https://www.herber.de/bbs/user/43735.xls
Falls du etwas nicht verstehen solltest, meld dich halt nochmal.
Gruß
Chaos

Anzeige
AW: Fehlender Lösungsansatz
01.07.2007 17:54:00
Chaos
Servus Heiner,
hier noch eine bessere Version.
Jetzt liest das Makro die Zeilen in Urlaubsplaner automatisch aus, es muss also die Zeilenvariable im Makro nicht geändert werden, egal wie viele Mitarbeiter in der Liste stehen.
Nicht wundern, ist reiner Zeitvertreib für mich, wenn ich so rumprogrammiere.
https://www.herber.de/bbs/user/43740.xls
Viel Spass
Gruß
Chaos

AW: Fehlender Lösungsansatz
01.07.2007 18:19:59
Chaos
Servus Heiner,
ich glaube fast, dass die Beschreibung im Makro nicht genügend Erklärung für dich bietet (Hab das, was du geschrieben hast nochmal genau gelesen), da nur beschrieben wird, was im Makro passiert, deswegen nochmal allgemein.
(ByVal Target As Range) hier wird im Change-Ereignis die Variable festgelegt, hier Target As Range, Target ist die Variable.
Target.Address = , hier wird der Variable eine Zelle zugewiesen z.B "$A$1", was letztendlich Range("A1") heißt.
For z = x To y Step 1 (oder Step -1, von unten) heißt z ist die Variable, die die Werte von x bis y annimmt.
Bsp. für zeile 1 bis 100
For z = 1 To 100 Step 3 in Dreierschritten wird von 1 bis 100 die Zelle in der aktuellen zeile, z mit X beschrieben, 1 steht für Spalte 1, also A
Cells(z, 1).Value = "X"
Next z
das geht auch von unten nach oben,
dann:
For z = 100 To 1 Step -1
Cells(z, 1).EntireRow.Delete ' ganze Zeile löschen in Einserschritten von zeile 100 bis 1
Next z
Select Case ist sowas wie If... Then
End if
Du beziehst dich mit Select Case auf irgeneine Zellwert z.B. Range("A1").Value, dieser soll bei verschiedenen Werten, unterschiedliche Dinge tun, also wenn der Wert das und das ist, dann mach das, sonst, wenn der Wert was anderes ist, dann mach was anderes.
With
End with
benutzt man, wenn man z.B. mit diesem Makro auf Werte in einem anderen Tabellenblatt zugreifen will, weil ja Range("xy"), nur für das aktuelle Blatt gilt, also musst du Excel sagen, welchen Wert du meinst.
With Sheets(1)
Sheets(1).Range("A1").Copy
End with
Das braucht man nicht unbedingt, kommt drauf an, was man erreichen will, aber im Regelfall setzt man das bei Prozeduren ein, die in einem anderen Tabellenblatt ablaufen sollen.
Hoffe, dir hilft das weiter.
Gruß
Chaos

Anzeige
AW: Fehlender Lösungsansatz
01.07.2007 18:27:06
Chaos
Servus Heiner,
nochmal ich.
Was im ersten Makro unter With steht ist eine Suchfunktion (es gibt verschiedene Arten sowas zu lösen)
With Sheet("xy")
LngLastRow = Sheet("xy").Cells.Find(what:= "*",....).Row ' liest die Zeilenzahl der letzten beschriebenen Zelle im ganzen Blatt aus
Sheets("xy").Range("$A$1:$B$" & lngLastRow).Select ' Markiert den Bereich A1: B letzte Zeile (z.B. 100, wenn da der letzte Wert steht)
End with
Interior.ColorIndex = x färbt die Zellen ein, hier = 15 (hellgrau)
Gruß
Chaos

Fehlender Lösungsansatz
01.07.2007 19:11:00
Heiner
Servus Chaos!!!
Das ist ja wahnsinn!! :-) Ich bin happy!!
Nun muss ich mich heut und morgen erstmal hin setzen und das durch arbeiten und verstehen!!!
Ich weiß garnicht wie ich dir danken soll, vielen vielen Dank für deine super schnelle und Profesionelle Hilfe!!
Werde mich morgen abenden wieder melden!! Wie und was ich verstanden habe und was nicht!
Ich wünsche dir noch einen schönen sonntag abend!!!
Bis morgen!!
Grüße Heiner

Anzeige
Fehlender Lösungsansatz
02.07.2007 20:14:00
Heiner
Hi chaos!!
hier sende ich dir mal den Original plan!!(ohne Namen)
Den letzten den du erstellt hast ist echt super nur leider kann man da die Urlaubstag (die "X") nicht speichern, oder habe ich was falsch gemacht!!
Habe das glaube ich zumindest, soweit verstanden!! werde mich nun hinsetzen und das auchmal schreiben passend zum Originalen Kalender!! da ich tagsüber arbeiten muss kann das eins zwei tage dauern!!

Die Datei https://www.herber.de/bbs/user/43758.xls wurde aus Datenschutzgründen gelöscht


Aber würde mich echt freuen, wenn du das dann mal kontrollieren könntest was ich so geschrieben habe!!!
Grüße Heiner

Anzeige
AW: Fehlender Lösungsansatz
02.07.2007 21:31:00
Chaos
Servus Heiner,
speichern geht ganz normal, solange du nichts änderst, müsste das eigentlich funktionieren.
Ich schau mir die Datei mal an.
Gruß
Chaos

AW: Fehlender Lösungsansatz
02.07.2007 21:37:56
Chaos
Servus Heiner,
das Original macht Schwierigkeiten, da die x nicht in die Zellen eingetragenn sind, sondern ich glaube als Grafik hinterlegt sind.
Das müsste man dann entsprechend ändern.
Aber beschreib vielleicht nochmal dein Problem mit den X, das hab ich nicht so richtig verstanden.
Gruß
Chaos

AW: Fehlender Lösungsansatz
02.07.2007 22:30:00
Heiner
Hi,
das mit den "X" hat der Kollege über Celle -- Formatieren --- und Rahmen gemacht aber das kann man ja auch mit normal "X" machen kein Problem!
Was ich meinte, dein Aktuellste Datei die du erstellt hast, da kann man im Tabellen Blatt "Urlaubsplaner" auf A2 die Monate durch gehen! Richtig?
Nun rufe bsp. Juni auf und trage mit "X" die Urlaubstage ein und nun wechsel ich in Celle A2 auf August und gehe wieder zurück auf Juni so sind meine eingegebenen Urlaubstage "X" nicht mehr da!
Mache ich was falsch?
Verstehst du mein Problem?
Im Urlaubsplaner müssen die Urlaubstage gespeichert sein!!
Grüße

AW: Fehlender Lösungsansatz
02.07.2007 23:10:08
Chaos
Servus Heiner,
da machst du nichts falsch. Das Problem ist, das das ein und dasselbe Tabellenblatt ist und wenn du August einträgst, wenn du vorher Juni oder Juli, u.s.w. drin hattest, dann werden die Inhalte der vorhergehnden Eintragungen gelöscht, weil das eben dasselbe Tabellenblatt ist.
Wenn du das umgehen willst, dann musst du für jeden Monat ein eigenes Tabellenblatt anlegen und jeweils das Makro aus Urlaubsplaner hinterlegen, außerdem muss das AuswerteMakro angepasst werden.
Oder wir legen die Monate untereinander, dann geht es auch. aber dann hast du immer die ganze MitarbeiterListe vorn dran (100 Mitarbeiter, ergo 12 * 100, 1200 Zeilen)
Das ist schon ein bisschen mehr Arbeit.
Das geht so wie es jetzt ist nur monatsweise.
Gruß
Chaos

AW: Fehlender Lösungsansatz
02.07.2007 23:22:00
Chaos
Servus,
ich hab da noch ne Frage.
Warum geht der Kalender nur über das halbe Jahr?
Ich mein damit kann man auch arbeiten und die Makros entsprechend umbauen, aber braucht ihr das nicht für 12 Monate ?
Gruß
Chaos

AW: Fehlender Lösungsansatz
03.07.2007 12:00:37
Chaos
Servus Heiner,
hab die datei etwas umgestrickt, ich glaube, das ist, was du wolltest.
Für Januar bis Mai musst du halt Tabelle1 umstricken und evtl t = t+ ? anpassen
Jeweils in den zellen, wo ein datum drin steht, das datum eingeben (Tabelle2), bei Tabelle1 steht das Anfangsdatum 01.06.2007 drin (gilt nur von 01.06.-31.12), jahr ist egal.
https://www.herber.de/bbs/user/43780.xls
Gruß
Chaos

Lösung
03.07.2007 20:43:00
Heiner
Super so ist optimal!!
wo hast du das gelernt, so zu programmieren? Selbst angeeignet?
Vielen Dank für alles!!
Bin beim selber schrieben auf ein Problem gestoßen, kann man bereiche die über range angesprochen werden mit Variable definieren?
d.h. normal ......range("D1:E5"),
meine Frage ......range("x:y")
wobei x und y eine Variable ist die bsp. den Wert D1 und E5 liefern!
wenn das so funktioniert wie muss ich die Variable deklarieren (mit String)?
Grüße

AW: Lösung
03.07.2007 22:33:45
Chaos
Servus Heiner,
das habe ich mir selbst angeeignet. Z.B. durch das Forum hier. Learning by Doing.
Manchmal muss man ein wenig rumprogrammieren und schauen, was dabei rauskommt. Irgendwann geht's dann relativ einfach.
Das mit der Variablen ist so:
Wenn du der Variablen einen zellwert zuweist, oder etwas Ähnliches dann kannst du auch schreiben:
Range( x & ":" & y)
x = variable und y = Variable
z.B.:
x = Range("A1") oder Cells(1, 1) und y = Range("C3")
d.h.: Range( x & ":" & y) = Range("A1:C3")
wichtig bei dieser Schreibweise ist das & und dass die Variablen ohne Anführungszeichen stehen, aber der Doppelpunkt mit.
Man kann auch so was schreiben:
Range("A1:A" & x) , wobei x dann ein ZeilenIndex ist, z.B: x = Range("A65536").End(xl(Up).Offset(0,0).Row
letzte beschriebene Zelle in Spalte A.
Welche Variablenzuweisung du vornimmst, ob String oder Byte oder Integer, oder Long, Double, u.s.w. hängt davon ab, was du mit diesem Wert machen willst.
Meist genügt es Integer zu wählen , z.B. bei Schleifen, manchmal reicht auch String oder Byte.
Bei solchen Geschichten wie mit .Row nehme ich meistens Integer oder evtl. Long, da Byte bei zu großer Datenmenge zum Überlauf führt. Bei InputBoxen oder Variablenübergaben z.B. eher String. Aber das ist wie gesagt manchmal auch Ausprobieren.
Viel Spass mit der Datei und beim weiteren Programmieren.
Gruß
Chaos

DANKE!!!
04.07.2007 22:54:03
Heiner
Ich danke nochmal!!
Wünsche dir auch vielspaß weiterhin, wenn ich mal wieder ein Problem habe melde ich mich!!
Gruß
Heiner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige