PDA

Vollständige Version anzeigen : Wochentage anzeigen und ausrechnen


Nenad
06.07.2015, 16:52
Hallo

Ich Suche eine Möglichkeit bestimmte Tage in der Woche bzw. im Monat sich Anzeigen zu lassen und gleichzeitig auch auszurechnen.

z.B. für den Monat "März" soll jeder "Montag, Mittwoch, Freitag" anzeigt werden mit Datum und zum Schluss soll dann ausrechnet werden wie viele Tage das insgesamt sind.

Ist das möglich?

pefeu
06.07.2015, 20:58
Hallo Nenad,

sicher geht das - hier ein kleines einfaches Beispiel, für den von dir genannten März und die darin gesuchten Tage.
Option Explicit

Public Sub Wochentage()

Dim dDatum As Date
Dim iTag As Integer
Dim iAnzahl As Integer
Dim sText As String
Dim sMonat As String

dDatum = "01.03.2015"

sMonat = Format(dDatum, "MMMM")

For iTag = 1 To TageProMonat(dDatum)
If Weekday(dDatum) = 2 Or _
Weekday(dDatum) = 4 Or _
Weekday(dDatum) = 6 Then
iAnzahl = iAnzahl + 1
If sText = "" Then
sText = dDatum & " " & Format(dDatum, "DDDD")
Else
sText = sText & vbLf & dDatum & " " & Format(dDatum, "DDDD")
End If
End If
dDatum = dDatum + 1
Next iTag

MsgBox "Im Monat " & sMonat & " gab es folgende Tage." & vbLf & vbLf & sText & _
vbLf & vbLf & " und das waren " & iAnzahl & " Tage."

End Sub

Function TageProMonat(Datum As Date)

TageProMonat = Day(DateSerial(Year(Datum), Month(Datum) + 1, 0))

End Function
Gruß Peter

Nenad
06.07.2015, 21:04
Hmmm, das ist aber jetzt keine Formel, oder?
Wo füge ich das denn ein?

GMG-CC
06.07.2015, 22:05
Hmmm, das ist aber jetzt keine Formel, oder?
Wo füge ich das denn ein?

Nein, das ist ein Makro (VBA).
Das einfügen kannst du bei Excel-ist-sexy (http://www.excel-ist-sexy.de/sub-prozedur-einfuegen/) nachlesen ... :)

Nenad
07.07.2015, 05:54
Vielen Dank für deine Hilfe

Hat funktioniert
aber wie füge ich das jetzt in meiner Excel Tabelle ein?
Wenn ich es Teste kommt immer ein Popup wo das drin steht

ich brauche das aber in der Tabelle

z.B. von Zelle D15 bis D30
und wie führe ich das aus damit das automatisch in die Zelle übernommen wird?

Ich brauche das nämlich für jeden Monat neu.
Muss ich dann immer in das Markro rein gehen mit ALT + F11 und das Datum Manual ändern oder geht das auch anderst?

pefeu
07.07.2015, 12:04
Hallo Nenad,

in deinem Beitrag war die Frage Ist das möglich?

Die habe ich dir mit meinem kleinen Beispiel beantwortet.
Jetzt kommst du aber mit neuen Wünschen auf den Markt.
Du solltest also erstmal genau überlegen, was du benötigst, das zusammenfassen und eine erneut detaillierte Frage posten.

Muss ich oder ein anderer Helfer mir jetzt überlegen, wo und wie du den Monat auswählen möchtest?
Muss ich jetzt herausfinden, wo und wie du die zu suchenden Wochentage auswählen willst?
Muss ich jetzt ahnen, wo die Summe der gefundenen Tage stehen soll?

Gruß Peter

GMG-CC
07.07.2015, 13:15
@Peter:
Das sieht ganz so aus, als wenn es eine "Never ending story" wird und dazu noch eine Komplettlösung zum Nulltarif. Offensichtlich hat der TE keinerlei Kenntnisse in Sachen VBA. - Ich mag auch diese Nachschlag-Forderungen (http://www.excel-ist-sexy.de/forenhilfe/nachschlag-bitte/) nicht und klinke mich bei solchen Vorkommnissen meistens komplett aus.

pefeu
07.07.2015, 13:36
Hallo Günther,

du hast offensichtlich Recht, mit deiner Vermutung.
Ich habe den Frager Nenad nur noch darauf hinweisen wollen, was er falsch gemacht hat, denn auf seine anfängliche Frage hatte ich ja ausreichend geantwortet - auch wenn es keine Formel war, die ich gepostet habe.

Gruß Peter

Nenad
07.07.2015, 15:32
Tut mir leid wenn ich mich vielleicht falsch formuliert habe oder ihr mich falsch verstanden habt.

Klar wollte ich wissen ob es möglich ist und da es möglich ist wollte ich natürlich das umsetzen.

Mit VBA kenne ich mich absolut nicht aus und ist Neuland für mich.
Das es so kompliziert ist hätte ich jetzt nicht gerechnet.
Dachte es gibt dafür auch eine Formel so wie ich es gewohnt bin.

Ich wollte einfach eine Tabelle haben wo ich die Tage aufgelistet bekomme in einer Tabelle von oben nach unten und dann das Ergebnis und damit was Rechnen

Sorry für die Frage

Frank Furter
07.07.2015, 15:39
hallo, ist doch alles gut, vielleicht postest du mal (d)eine (beispiel)datei, wie du dir das vorstellst..?

chris-kaiser
07.07.2015, 16:37
HI,

ob da die Formellösung einfacher ist als VBA?
:D :D
Geht aber erst ab Excel 2010!

Frank Furter
07.07.2015, 17:35
HI,

ob da die Formellösung einfacher ist als VBA?
:D :D
Geht aber erst ab Excel 2010!

hallo Chris, für mich schon... ... mein vorschlag funzt auch vor XL2010..:

<table border='1' cellspacing='0' cellpadding='2' valign='middle' colspan='4' style='font-family:Arial; color:#000000; background-color:#FFFFFF; font-size:11px; font-weight:normal; font-style:normal; '><colgroup><col width='28pt'><col width='66pt'><col width='66pt'><col width='66pt'></colgroup><tr style='background-color:#FAFAFA'><td align='middle' colspan='4'>Arbeitsblatt mit dem Namen 'Tabelle1'</td></tr><tr style='background-color:#cacaca'><td>*</td><td align='middle'>A</td><td align='middle'>B</td><td align='middle'>C</td></tr><tr><td style='background-color:#cacaca' align='middle'>1</td><td align='left' >Februar</td><td align='right' >*</td><td align='right' >*</td></tr><tr><td style='background-color:#cacaca' align='middle'>2</td><td align='right' >*</td><td align='right' >02.02.2015</td><td align='right' >Montag</td></tr><tr><td style='background-color:#cacaca' align='middle'>3</td><td align='right' >12</td><td align='right' >04.02.2015</td><td align='right' >Mittwoch</td></tr><tr><td style='background-color:#cacaca' align='middle'>4</td><td align='right' >*</td><td align='right' >06.02.2015</td><td align='right' >Freitag</td></tr><tr><td style='background-color:#cacaca' align='middle'>5</td><td align='right' >*</td><td align='right' >09.02.2015</td><td align='right' >Montag</td></tr><tr><td style='background-color:#cacaca' align='middle'>6</td><td align='right' >*</td><td align='right' >11.02.2015</td><td align='right' >Mittwoch</td></tr><tr><td style='background-color:#cacaca' align='middle'>7</td><td align='right' >*</td><td align='right' >13.02.2015</td><td align='right' >Freitag</td></tr><tr><td style='background-color:#cacaca' align='middle'>8</td><td align='right' >*</td><td align='right' >16.02.2015</td><td align='right' >Montag</td></tr><tr><td style='background-color:#cacaca' align='middle'>9</td><td align='right' >*</td><td align='right' >18.02.2015</td><td align='right' >Mittwoch</td></tr><tr><td style='background-color:#cacaca' align='middle'>10</td><td align='right' >*</td><td align='right' >20.02.2015</td><td align='right' >Freitag</td></tr><tr><td style='background-color:#cacaca' align='middle'>11</td><td align='right' >*</td><td align='right' >23.02.2015</td><td align='right' >Montag</td></tr><tr><td style='background-color:#cacaca' align='middle'>12</td><td align='right' >*</td><td align='right' >25.02.2015</td><td align='right' >Mittwoch</td></tr><tr><td style='background-color:#cacaca' align='middle'>13</td><td align='right' >*</td><td align='right' >27.02.2015</td><td align='right' >Freitag</td></tr></table><br><table border='3' cellspacing='0' cellpadding='2' valign='middle' colspan='2' style='table-layout:auto; color:#000000; background-color:#FFFFFF; font-family:Arial; font-size:10px;'><colgroup><col width='40pt'><col></colgroup><tr style='background-color:#eeaaaa'><td>Zelle</td><td>Formel</td></tr><tr><td>B2</td><td><Span style='color:#222222'>=MIN</Span><Span style='color:#0000DD'>(</Span><Span style='color:#222222'>("1."&A1)</Span><Span style='color:#0000DD'>-REST</Span><Span style='color:#222222'>(</Span><Span style='color:#0000DD'>("1."&A1)</Span><Span style='color:#222222'>-2-1;7)</Span><Span style='color:#0000DD'>+7*1-1;</Span><Span style='color:#222222'>("1."&A1)</Span><Span style='color:#0000DD'>-REST</Span><Span style='color:#222222'>(</Span><Span style='color:#0000DD'>("1."&A1)</Span><Span style='color:#222222'>-2-3;7)</Span><Span style='color:#0000DD'>+7*1-1;</Span><Span style='color:#222222'>("1."&A1)</Span><Span style='color:#0000DD'>-REST</Span><Span style='color:#222222'>(</Span><Span style='color:#0000DD'>("1."&A1)</Span><Span style='color:#222222'>-2-5;7)</Span><Span style='color:#0000DD'>+7*1-1)</Span><Span style='color:#222222'></Span></td></tr><tr><td>C2</td><td><Span style='color:#222222'>=B2</Span></td></tr><tr><td>A3</td><td><Span style='color:#222222'>=SUMME</Span><Span style='color:#0000DD'>(RUNDEN</Span><Span style='color:#222222'>(</Span><Span style='color:#0000DD'>(REST</Span><Span style='color:#222222'>(--</Span><Span style='color:#0000DD'>(1&A1)</Span><Span style='color:#222222'>-{2.4.6}-1;7)</Span><Span style='color:#0000DD'>+DATUM</Span><Span style='color:#222222'>(JAHR</Span><Span style='color:#0000DD'>(--</Span><Span style='color:#222222'>(1&A1)</Span><Span style='color:#0000DD'>)</Span><Span style='color:#222222'>;MONAT</Span><Span style='color:#0000DD'>(--</Span><Span style='color:#222222'>(1&A1)</Span><Span style='color:#0000DD'>)</Span><Span style='color:#222222'>+1;0)</Span><Span style='color:#0000DD'>-</Span><Span style='color:#222222'>(1&A1)</Span><Span style='color:#0000DD'>-2)</Span><Span style='color:#222222'>/7;)</Span><Span style='color:#0000DD'>)</Span><Span style='color:#222222'></Span></td></tr><tr><td>B3</td><td><Span style='color:#222222'>=WENN</Span><Span style='color:#0000DD'>(ZEILE</Span><Span style='color:#222222'>(A2)</Span><Span style='color:#0000DD'>>$A$3;"";B2+WAHL</Span><Span style='color:#222222'>(WOCHENTAG</Span><Span style='color:#0000DD'>(B2;2)</Span><Span style='color:#222222'>;2;;2;;3)</Span><Span style='color:#0000DD'>)</Span><Span style='color:#222222'></Span></td></tr><tr><td>C3</td><td><Span style='color:#222222'>=B3</Span></td></tr><tr><td>B4</td><td><Span style='color:#222222'>=WENN</Span><Span style='color:#0000DD'>(ZEILE</Span><Span style='color:#222222'>(A3)</Span><Span style='color:#0000DD'>>$A$3;"";B3+WAHL</Span><Span style='color:#222222'>(WOCHENTAG</Span><Span style='color:#0000DD'>(B3;2)</Span><Span style='color:#222222'>;2;;2;;3)</Span><Span style='color:#0000DD'>)</Span><Span style='color:#222222'></Span></td></tr><tr><td>C4</td><td><Span style='color:#222222'>=B4</Span></td></tr></table><table style='font-family:Arial; font-size:7pt'><tr><td style='color:#333333'>Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg</td></tr></table>

Nenad
07.07.2015, 18:58
Danke Frank Furter
Ich habe noch kein Beispiel sondern mehr eine Vorstellung
Ich habe bis jetzt nur eine leere Excel Datei un die habe ich mit Alt+F11 geöffnet und dann den Code von "pefeu" rein kopiert.
Dann das ganze mit Alt+F4 geschlossen und dann über Extas>Marko>Ausführen
gestartet.
Gefällt mir soweit ganz gut. Bloß das sich halt ein Popup Fenster öffnet statt wie bei deinem Bespiel direkt in die Tabelle.
Ich habe mal deine Formel Kopiert und bei mir Eingefügt, funktioniert irgendwie nicht bei mir :-(

@chris-kaiser
Danke, aber ich benutzte leider immer noch Excel 2003

Frank Furter
07.07.2015, 19:14
Danke Frank Furter
Ich habe noch kein Beispiel sondern mehr eine Vorstellung
...
Ich habe mal deine Formel Kopiert und bei mir Eingefügt, funktioniert irgendwie nicht bei mir :-(



hallo "funktioniert irgendwie nicht", was soll man damit anfangen..? du kannst (d)eine (beispile)datei mit händisch eingetragene ergebnissen doch posten, auch wenn da nicht viel drin ist... ... auch könntest du damit zeigen, was du wo reinkopiert hast... ... also es liegt bei dir...

pefeu
07.07.2015, 20:48
Hallo Nenad,

hier noch eine Lösung per VBA, bei der du die freie Auswahl der Monate und der Tage (immer im lfd. Jahr) hast.

Gruß Peter

chris-kaiser
08.07.2015, 07:49
Hi,

ok hier noch in einer Kurzfassung :)
müsste auch in 2003 funktionieren.

Nenad
08.07.2015, 09:39
@pefeu
Wow, vielen vielen Dank
Genau so wollte ich es haben
Tausend Dank

@chris-kaiser
auch deins alt alternative ist Super. Vielen vielen Dank :-)

Kann ich da auch die Tage ändern wie beim "pefeu"?
Also statt Mo, Mi, Fr z.B. auf Di, Do. Sa?

=MIN((1&D1)-REST((1&D1)-2-{1.3.5};7)+7*1-1)
habe es mal so probiert
=MIN((1&D1)-REST((1&D1)-2-{2.4.6};7)+7*1-1)

pefeu
08.07.2015, 10:27
Hallo Nenad,

hier noch eine Version, bei der du das Jahr ebenfalls variable auswählen kannst.
Ein Jahr zurück, das aktelle und das nächste Jahr.

Gruß Peter

chris-kaiser
08.07.2015, 11:22
Hi, :)

mal ganz ohne VBA 2003 fähig mit Auswahl der Tage.
edit noch mit Jahr versehen...

Nenad
08.07.2015, 17:47
Vielen lieben Dank für eure Hilfe
Weiß gar nicht welche ich nehmen soll, sind beide toll :-)

@pefeu
hast du die Schaltfläche "UserFormular" selber gezeichnet oder über die vorhandene Steuerelemte genommen?

edit: hat sich erledigt, habe es gefunden :)

Anna Rebecca
09.07.2015, 06:08
Hallo und guten Morgen
Ich bin Neu hier und habe gleich mal eine frage zum folgenden Thema

Dieses Beispiel mit Marko und Steuerelemente gefällt mir sehr gut.
Nach so was ähnlichen Suche ich auch.

Allerdings Suche ich etwas wo man die Tage, also das Datum und Monat bzw. auch das Jahr Auswählt und anklickt, und das mehrfach und dann Einfügt.

Hoffe ich habe mich richtig ausgedrückt das ihr mich versteht was ich meine.

In Office Steuerelemente ist ja schon eine Kalenderfunktion erhalten.
Allerdings kann man da immer nur ein Datum Auswählen und dann Einfügen

Ich brauche etwas wo man zum Beispiel im Monat mehrere Tage Markiert, z.B. im Monat "Mai" den "3,5,6.12.15" usw. und dann mit einem Klick in die Tabelle einfügt statt jedes mal immer das einzeln machen zu müssen.

Kann man das machen?

pefeu
09.07.2015, 13:28
Hallo Anna Rebecca,

sieh dir einmal das Tabellenblatt 2 in der beigefügten Mappe an
Wenn ich dich richtig verstanden habe, sollte es das sein, was du suchst.

im ersten Schritt kannst du den Monat und das Jahr auswählen.
wenn du dann auf den Button "Tage im Monat anzeigen" klickst, wird die ListBox mit den Tagen des Monats gefüllt.
nun kanns du deine Auswahl treffen und mit dem Button "Wochentage anzeigen" die Auswahl in das Tabellenblatt übernehmen.

Gruß Peter

Frank Furter
09.07.2015, 13:40
hi Peter, ich habe ein 16:9 monitor, da wirkt die UF zu groß - ich kann mit nur mühe "Tage im Monat" anzeigen lassen und sie dann auswählen, aber einfügen kann ich sie nicht..:

http://www11.pic-upload.de/09.07.15/211mzrq9eeps.jpg (http://www.pic-upload.de/view-27626736/uf.jpg.html)

pefeu
09.07.2015, 14:06
Hallo Frank Furter,

dann wähle im UserForm_Initialize für die ListBox anstelle von Font.Size 12 eine kleiner Größe und verkürze die ListBox wunschgemäß.
Maximal 31 Tage eines Monats sollten anzeigbar bleiben.

die darunter gestellten Controls muss du dann ebenfalls 'hochschieben'

Gruß Peter

Frank Furter
09.07.2015, 14:10
@ Peter, danke...

Anna Rebecca
09.07.2015, 16:12
@Peter

Danke Peter für deine Mühe.
Habe da noch ein Anliegen
Welche Zeile muss ich addieren wenn ich auch die Tage Anzeigt haben möchte im Auswahl Menü?
Ich habe die Box jetzt etwas breiter gemacht
Ich nehme mal an das es diese Zeile ist, lege ich da richtig?
ListBox1.AddItem dDatum
dDatum = dDatum + 1

und

Hallo Frank Furter,

dann wähle im UserForm_Initialize für die ListBox anstelle von Font.Size 12 eine kleiner Größe und verkürze die ListBox wunschgemäß.
Maximal 31 Tage eines Monats sollten anzeigbar bleiben.

die darunter gestellten Controls muss du dann ebenfalls 'hochschieben'

Gruß Peter

Ist es nicht Einfacher die Box zu Verkleinern, anpassen und in der ListBox eine Scroll Bar zu machen?

pefeu
09.07.2015, 16:42
Hallo Anna Rebecca,

ich weiß leider nicht, welche Zeile du addieren möchtest, um welche Tage angezeigt zu bekommen?

Um das UserForm(ular) kleiner zu machen, gibt es sicher diverse Varianten.
Ich würde die Schriftgröße der ListBox und dann die ListBox in der Höhe verkleinern, um die max. 31 Tage eines Monats komplett anzuzeigen

Gruß Peter

Anna Rebecca
09.07.2015, 17:36
Hallo Peter
Ich meine wenn man auf USERFORMLAR2 Klickt und danach auf TAGE IM MONAT ANZEIGEN dann wird ja der ganze Monat Angezeigt

Ich möchte neben den Datum das noch der Tag da steht.
Also Montag, Dienstag usw

So wie wenn man Bestätigt und es dann in der Tabelle da steht
Da ist es ja so

Weißt du jetzt was ich meine?

pefeu
09.07.2015, 20:55
Hallo Anna Rebecca,

dann versuche es mit der beigefügten Version.

Gruß Peter

chris-kaiser
10.07.2015, 10:57
HI,

Anbei ein Versuch von mir, zum Testen freigegeben


Jahr kann gewählt werden
Monat bzw. wenn gewünscht Monate
gezielt nur bestimmte Wochentage
die Daten werden als Datum in der gewählten Zelle(n) ausgegeben
Feiertage sind optisch eingebaut (im Moment österreichische ^^) können auf Blatt2 geändert werden.


edit:noch als Add-in
ab Version 2010 ausgelegt!
Datei extrahieren -> Excel öffnen -> Datei -> Optionen -> Add-ins -> gehe zu -> durchsuchen -> Datei auswählen -> dann gibt es ein Icon (ganz rechts) in Start wo die Eingabe gestartet werden kann.

pefeu
10.07.2015, 11:36
Hallo Anna Rebecca,

hier noch die neueste Version, in der die Controls neu geordnet sind.
Die waren durch die Anforderungen etwas seltsam positioniert, was jetzt behoben sein sollte.

Gruß Peter

Nenad
10.07.2015, 15:16
Hallo Peter

Ich habe mal eine Frage
Ich habe meine Excel Tabelle Teils Geschützt (Blatt Schutz) außer da wo die Daten rein geschrieben werden
Allerdings funktioniert dann das Einfügen nicht mehr. Ich muss dann das Blatt Schutz komplett raus machen.

Kann man das irgendwie so machen das es mit Blatt Schutz geht?

Anna Rebecca
10.07.2015, 15:20
Hi Peter

Danke :-)

Jetzt funktioniert es aber nicht mehr
Wenn ich die Tage Auswähle und auf "Wochentage Anzeigen" Klicke, tut sich nichts :-(

pefeu
10.07.2015, 20:53
Hallo Anna Rebecca,

da ich deine Mappe nicht sehe, kann ich nur vermuten, dass du nicht die aktuelle version heruntergeladenn hast.
Bei mir gibt es keinerlei Probleme.

Gruß Peter

PS: Du hast recht, wenn du das UserForm3 genommen hast, da bezog sich die Ausgabe auf Tabelle2 und nicht auf Tabelle3.
Das tut mir leid.

Anna Rebecca
05.10.2015, 15:06
Hallo Leute

Ich brauche nochmal drigend hilfe von euch
Ich bräuchte eine erweiterbare "Wochentage im Monat" wo ich nicht nur das Datum von einem Monat auswählen kann sondern von mehreren Monaten.
Kann mir jemand weiter helfen?

chris-kaiser
05.10.2015, 15:14
Hi,

http://www.ms-office-forum.de/forum/showpost.php?p=1682484&postcount=30

hatte ich ja schon drinnen...

Anna Rebecca
05.10.2015, 15:21
Vielen Dank
Aber das kann ich nicht öffnen
Ich benutzte immer noch Excel 2003

chris-kaiser
05.10.2015, 15:25
Hi,

ok, obwohl https://www.microsoft.com/de-at/download/details.aspx?id=3

;)

Anna Rebecca
05.10.2015, 15:43
Respekt!
Super Arbeit
Gefällt mir ganz gut.

Was aber noch fehlt finde ich,
Wenn man zb einmal ein Monat generiert hat und anschließen neu generiert und die Tage weniger sind dann werden die alten nicht gelöscht sondern bleiben immer noch drin stehen
Das sollte man noch erweitern finde ich

chris-kaiser
05.10.2015, 15:56
Hi,

aber gerne doch

Anna Rebecca
05.10.2015, 16:10
Super
Danke dir