Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Calendar.Value in eigene Spalte im Tabellenblatt

Betrifft: Calendar.Value in eigene Spalte im Tabellenblatt von: Alex S
Geschrieben am: 08.12.2007 21:05:15

Hallo zusammen,

ich habe wieder mal meine kleineren Problemchen mit einem kleinen Excel-VBA Projekt.

Hier die kurze Problembeschreibung: Essenskalkulation

Erstellt habe ich eine Userform die ich von dem ersten Tabellenblatt (=Userform) starte. Nun können darauf in Textboxen Namen, Klasse, und Preis eingegeben werden - diese werden in ein Tabellenblatt "Datenbank" geschrieben und können auch mittels ComboBox wieder ausgewählt und angezeigt werden.

Und nun zu meinem Problem: und zwar möchte ich, wenn ich auf dem Steuerelement Kalender 11 ein Datum anklicke - dass er mir in das Tabellenblatt "Datenbank" in die jeweilige dafür vorgesehene Spalte das Datum hinzufügt. Quasi ab Spalte D (=1.) bis AH (=31.)
Erschwerend hinzu kommt noch dass zuvor der Name in diesem Tabellenblatt gesucht und dann in diese Zeile in den jeweiligen Spalten das Datum eingetragen werden soll.

Könnt ihr mir einen kleinen Denkanstoß geben, wie ich sowas mittels VBA Code lösen kann?

Es scheitert bei mir an dem, dass ich nicht weiß, wie ich den Namen suchen und dann in diese Zeile und dann auch noch in der richtigen Spalte das Datum rein bringe...

Bitte um Hilfestellung der Excel-VBA Genies...

MfG

Alex S.

  

Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenblatt von: chris b
Geschrieben am: 08.12.2007 22:48:06

Hallo verstehe deine frage nicht ganz würde dir gerne helfen .
Du hast das Kalender steuerelement auf deiner userform .
und möchten nach dem du ein datum ausgewählt hast was tun?
und möchtest du das makro laufen lassen sobald du auf dem steuerelement den tag anklickst oder hast du irgendwo auf deiner form noch einen OK button ?
Bitte erklär mal etwas genauer.
in die jeweilige dafür vorgesehene Spalte das Datum hinzufügt.
Was meinst du mit dafür vorgesehen ??? UNd warum ? Hast du eine Spoalte für datums und meinst zeilen oder ???
gruß Chris


  

Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenbla von: Alex S
Geschrieben am: 09.12.2007 03:21:34

Hallo chris,

nachdem ich am Kalender ein Datum ausgewählt habe - möchte ich dass es in das Tabellenblatt "Datenbank" übergeben wird, jedoch in die "richtige" Spalte. Richtige Spalte bedeutet dass ich Spalten für jeden einzelnen Tag habe von 1 bis 31, und da soll dann wenn z.B. heute der 9.12.07 ist das übergebene Calendar.Value in die Spalte L. Spalten A-C = Name, etc. ab Spalte D beginnen dann die "Tagesspalten" 1. bis 31. (=Spalte AH)

Weitergehend soll nämlich dann aus der Tabelle "Datenblatt" eine ListBox gefüllt werden und anhand dieser Daten auch ein Formular mit Werten zum Druck gefüttert werden.

Und die Daten sollen sofort in die Tabelle geschrieben werden, aber eben bei dem richtige ZeilenNummer/Name(wie oben schon erwähnt).

Sheets("Datenbank").Select
Cells(2, 4) = Calendar1.Value


nur eben ist es mit dieser Zuweisung ganz und gar nicht dynamisch so wie ich es benötige...

Hoffe du hast jetzt einen besseren Einblick in das, was ich brauche. :)

Ansonsten bin ich für jeden Tipp offen und dankbar.

MfG
Alex S


  

Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenblatt von: Jens
Geschrieben am: 09.12.2007 03:50:35

Hi Alex

Vielleicht wäre es sinnvoller, wenn Du die Datei mal hochlädst, damit man den Aufbau nachvollziehen kann.
Zudem könnte man das dann sofort an der Datei testen.

Ein paar Dummy-Daten in der Tabelle reichen schon aus dafür.

Gruß aus dem Sauerland

Jens


  

Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenbla von: Alex S
Geschrieben am: 09.12.2007 15:54:18

Hallo Jens,

hier mein Code:

  • Private Sub Calendar1_Click()
                                                       'Hier soll das gewählte Datum in die " _
    richtige" Datumsspalte eingetragen
        Sheets("Datenbank").Select   'werden und dann aufbauend auf diesen Daten eine Statistik  _
    erstellt werden.
                                                                 'Statistik habe ich schon - es  _
    scheitert lediglich an dem, dass ich ein
        If Calendar1.Day = 1 Then               'gewähltes Datum nicht beim zuvor gewählten Namen  _
    und dann auch noch in
        Cells(2, 4) = Calendar1.Value           'diese Zeile beim Namen das Datum hinzufügen kann.
        If Calendar1.Day = 2 Then
        Cells(2, 5) = Calendar1.Value
        If Calendar1.Day = 3 Then
        Cells(2, 6) = Calendar1.Value
        If Calendar1.Day = 4 Then
        Cells(2, 7) = Calendar1.Value
        If Calendar1.Day = 5 Then
        Cells(2, 8) = Calendar1.Value
        If Calendar1.Day = 6 Then
        Cells(2, 9) = Calendar1.Value
        If Calendar1.Day = 7 Then
        Cells(2, 10) = Calendar1.Value
        If Calendar1.Day = 8 Then
        Cells(2, 11) = Calendar1.Value
        If Calendar1.Day = 9 Then
        Cells(2, 12) = Calendar1.Value
        If Calendar1.Day = 10 Then
        Cells(2, 13) = Calendar1.Value
        If Calendar1.Day = 11 Then
        Cells(2, 14) = Calendar1.Value
        If Calendar1.Day = 12 Then
        Cells(2, 15) = Calendar1.Value
        If Calendar1.Day = 13 Then
        Cells(2, 16) = Calendar1.Value
        If Calendar1.Day = 14 Then
        Cells(2, 17) = Calendar1.Value
        If Calendar1.Day = 15 Then
        Cells(2, 18) = Calendar1.Value
        If Calendar1.Day = 16 Then
        Cells(2, 19) = Calendar1.Value
        If Calendar1.Day = 17 Then
        Cells(2, 20) = Calendar1.Value
        If Calendar1.Day = 18 Then
        Cells(2, 21) = Calendar1.Value
        If Calendar1.Day = 19 Then
        Cells(2, 22) = Calendar1.Value
        If Calendar1.Day = 20 Then
        Cells(2, 23) = Calendar1.Value
        If Calendar1.Day = 21 Then
        Cells(2, 24) = Calendar1.Value
        If Calendar1.Day = 22 Then
        Cells(2, 25) = Calendar1.Value
        If Calendar1.Day = 23 Then
        Cells(2, 26) = Calendar1.Value
        If Calendar1.Day = 24 Then
        Cells(2, 27) = Calendar1.Value
        If Calendar1.Day = 25 Then
        Cells(2, 28) = Calendar1.Value
        If Calendar1.Day = 26 Then
        Cells(2, 29) = Calendar1.Value
        If Calendar1.Day = 27 Then
        Cells(2, 30) = Calendar1.Value
        If Calendar1.Day = 28 Then
        Cells(2, 31) = Calendar1.Value
        If Calendar1.Day = 29 Then
        Cells(2, 32) = Calendar1.Value
        If Calendar1.Day = 30 Then
        Cells(2, 33) = Calendar1.Value
        If Calendar1.Day = 31 Then
        Cells(2, 34) = Calendar1.Value
    
    End Sub




  • Bilddateien werden gleich hochgeladen.

    Userform
    Datenbank

    Danke schon mal für Tipps.

    MfG

    Alex S.


      

    Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenbla von: Jens
    Geschrieben am: 09.12.2007 17:59:58

    Hallo Alex

    Die Datei nachzubauen ist mir zu langatmig.
    Lade die gesamte Datei mal hoch oder schick sie mir per Mail an:
    j e n s x l s [at] w e b . d e
    (ohne Leerzeichen dazwischen)

    Den ersten Code kannst Du jedenfalls schon mal kürzen:

    Private Sub Calendar1_Click()
    Worksheets("Datenbank").Cells(2, Calender1.Day +3) = Calender1.Value
    End Sub



    Gruß aus dem Sauerland

    Jens


      

    Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenbla von: Alex S
    Geschrieben am: 10.12.2007 18:00:55

    hallo Jens,

    habe nun deinen Code geschrieben - das funktioniert bestens - frage mich immer warum ich soviel tippe und das ganze dann als Einzeiler das selbe macht.... - aber danke nochmals. :-)

    Nun habe allerdings noch das Problem, dass ich das ganze dynamisch hinbringen muss, sprich wenn in der ComboBox (=CB_Name) ein Name ausgewählt wird - dass dann auch der Datumseintrag bei diesem Namen in der Zeile steht.

    Könntest du dich meiner nochmals annehmen, damit ich nicht wieder Zeile für Zeile tippe und dann drauf komme, dass alles wieder in ein paar Zeilen das selbe macht...

    Thx,

    Alex S.


      

    Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenbla von: Jens
    Geschrieben am: 10.12.2007 18:57:56

    Hi Alex

    Da ich deinen übrigen Code und den Aufbau der Userform nicht kenne, kann ich nur ins Blaue tippen:

    Wenn Deine Namen ab Zeile 2 beginnen, dann versuch es mal so:

    Private Sub Calender1_Click()
    If CB_Name.ListIndex >= 0 Then
    Worksheets("Datenbank").Cells(CB_Name.ListIndex + 2, Calender1.Day + 3) = Calender1.Value
    End If
    End Sub



    Ansonsten müsstest Du mir doch mal die Datei schicken.
    Dann kann ich mir das mal richtig anschauen.

    Gruß aus dem Sauerland

    Jens


      

    Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenbla von: Alex S
    Geschrieben am: 11.12.2007 01:09:13

    Hallo Jens,

    habe dir die Datei schon gestern gesandt - schau doch bitte nochmals ins Postfach - vielleicht ist sie ja im Spamfilter, etc...

    Solltest du es nicht haben - schreib mir kurz hier rein - dann sende ich es nochmals... Habe nämlich noch ein Problem mit dem Sortieren der Daten - so scheint es im Code... wenn du mir da auch noch gleich einen Tipp schreiben könntest - was ich da verkehrt übergebe - wäre super.

    Danke schon mal für die Mühe :)

    mfg

    Alex S.


      

    Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenbla von: Alex S
    Geschrieben am: 12.12.2007 20:05:50

    Möchte mich auf diesem Wege nochmals bei Jens für seinen tatkräftigen Einsatz bedanken :)

    Es ist immer wieder schön zu sehen - dass einem auch fachmännisch im Internet geholfen werden kann.

    DANKE

    MfG
    Alex S.


      

    Betrifft: AW: Calendar.Value in eigene Spalte im Tabellenbla von: Jens
    Geschrieben am: 12.12.2007 23:31:10

    Hi Alex

    Danke für das Lob. *rotwerd*

    Man tut, was man kann. Auch, wenn ich nicht so ein Profi bin, wie manch anderer hier, helfe ich doch sehr gerne, wo ich kann.

    Gruß aus dem Sauerland

    Jens


     

    Beiträge aus den Excel-Beispielen zum Thema "Calendar.Value in eigene Spalte im Tabellenblatt"