Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

ListBox aber wie???





Frage

Moin allerseits, brauche nochmal Hilfe von einem Exel – Experten. Ich habe mir eine Jahrestabelle für einen Arbeitsplan erstellt,in der ich per Makro Kalenderwochen für das ganze Jahr eintrage und zwar in dieser Form „ 30.5-5.6“ (das ist zB.die 22.Woche 2005) Da ich für jedes Jahr (von 2005 – 2015) ein Makro erstellt habe, die über ein Command-Button ausgeführt wird ,habe ich rund um meiner Tabelle auch 11 Schaltflächen verteilt. Es funktioniert zwar alles sieht aber nicht sehr elegant aus. Ich hätte gern nur eine Schaltfläche mit der ich eine Listbox oder so aufrufe, in der die Jahreszahlen von 2005-2015 untereinander aufgelistet sind. Man soll dann eine Zahl anklicken und damit das entsprechende Makro ausführen. Das Makro für 2005 sieht so aus: Sub Einfügen_KW_2005() Antwort = MsgBox("Möchten Sie wirklich die Wochen für das Jahr 2005 einfügen?", vbYesNo) If Antwort = 7 Then Exit Sub Sheets("Tabelle2").Select Range("B3:AA3").Select ´Tabelle2 bis 26 Woche Selection.Copy Sheets("Tabelle1").Select Range("D3:AC3").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Tabelle2").Select Range("AB3:BA3").Select ´Tabelle2 von 27-52 Woche Selection.Copy Range("A1").Select Sheets("Tabelle1").Select Range("D14:AC14").Select ActiveSheet.Paste Application.CutCopyMode = False Range("D3:AC3,D14:AC14").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 90 .AddIndent = False .ShrinkToFit = False .MergeCells = False End With Range("B4").Select ActiveCell.FormulaR1C1 = "2005" Range("B4").Select Selection.Copy Range("B15").Select ActiveSheet.Paste Range("K1").Select ActiveCell.FormulaR1C1 = "2005/2006" Range("B26").Select ActiveCell.FormulaR1C1 = "2006" Application.CutCopyMode = False Range("AD14:AD23").Select Selection.Clear Range("A1").Select MsgBox "Passen Sie den Inhalt der Tabelle an das neue Jahr an! (Bereitschaft,Urlaub,Vertretung,Ferientermine)" End Sub Die anderen Makros sehen genauso aus ,sind dann aber in den Jahreszahlen und Zellen angepasst. Ist dieser Wunsch realisierbar ? Bin mal gespannt und Danke im voraus. PS: Oben in der Listbox soll der Hinweis stehen: „ Das Jahr durch Anklicken auswählen“

Antwort 1 von schnallgonz

N´abend Anno2005,

Du erstellst am Besten eine Userform mit Optionbuttons.
Diese Userform startest Du später mit einem Klick auf den Button in Deiner Tabelle.

Layout und Bezeichnungen kann man sich mit Drag and Drop im VBA-Editor zurechtbasteln.

Für den CommandButton (OK-Button) schreibst Du dann nach folgendem Muster:

Private Sub CommandButton1_Click()
Dim jahr As UserForm
Set jahr = UserForm1
If jahr.OptionButton1.Value = True Then Einfügen_KW_2005
If jahr.OptionButton2.Value = True Then Einfügen_KW_2006
End Sub


Wenn Du schon mit Userforms gearbeitet hast, solltest Du damit klar kommen, wenn nicht, muß man noch´n paar Sachen erklären.


MfG
schnallgonz

Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt

Antwort 2 von Anno2005

Hallo schnallgonz,

erstmal ein Dankeschön für deine Bemühungen
Dein Angebot noch ein paar Sachen zu erklären ,würde ich gern in Anspruch nehmen.
Meine Kenntnisse in Sachen VBA sind leider sehr begrenzt.
Ist mit OK-Button eine ganz normale Befehlsschaltfläche (Command-Button1) gemeint???

Antwort 3 von Thomas

Zitat:
Ist mit OK-Button eine ganz normale Befehlsschaltfläche (Command-Button1) gemeint???


so ist es.

Gruß

Thomas

Antwort 4 von Anno2005

Kann mir jemand genau erklären wie ich so eine Userform zusammen setzen muss und wo sie eingebaut werden muss Modul , Tabelle ...

Antwort 5 von schnallgonz

N´abend,

  • mit ALT+F11 in die VBA-Umgebung
  • im linken oberen Fenster Dein Mappe auswählen
  • mit dem 2.Symbol von links kannst Du eine leere Userform aufrufen;
    es erscheint die "Werkzeugsammlung";
    Markierung über Symbol parken = Hinweistext
    Klick auf gewünschtes Symbol, dann die Maus in Userform bringen und Button dort zur gewünschten Größe und Position ziehen
  • Feinabstimmung der Werte im unteren linken Fenster
    Mit etwas Probieren sollte man das dort hinkriegen.
  • Wenn die Userform steht, geht´s weiter mit einem Doppelklick auf die zukünftige OK-Schaltfläche. In aufpoppenden Fenster trägst Du meinen Code aus Antwort 1 ein.
  • Zum Schluss ein Modul anlegen und dort als einzigen Code z.B.
    Sub KaWo()
     UserForm1.Show
    End Sub

    Diese Modul weist Du einem Button in Deiner Tabelle zu, fertig.
    Bei Problemen melde Dich nochmal.

    MfG
    schnallgonz

    Fanatismus ist die Begeisterung der Beschränktheit.
    Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt


  • Antwort 6 von schnallgonz

    Moin Uwe,

    in Sachen Userform guckst Du hier
    Ist ´ne schöne bebilderte Anleitung.

    MfG
    schnallgonz

    Ein Erfahrener ist besser als 10 Gelehrte.
    Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt


    Antwort 7 von Anno2005

    Hallo
    Hat alles funktioniert
    Danke nochma!

    Bis demnächst

    Antwort 8 von schnallgonz

    Moin Anno2005,

    Danke für die Rückmeldung.

    MfG
    schnallgonz

    Ein Erfahrener ist besser als 10 Gelehrte.
    Signatur und Textformatierungen wurden mit SNTool V1.1.12 erstellt


    Ich möchte kostenlos eine Frage an die Mitglieder stellen:


    Ähnliche Themen:


    Suche in allen vorhandenen Beiträgen: