1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Hilfe bei Auswertungs Tabelle in Excel

Discussion in 'Office-Programme' started by -FirePhoenix-, Feb 1, 2010.

Thread Status:
Not open for further replies.
  1. Hallo
    Ich bin dabei eine Ergebnisstatistik fürs Bogenschießen zu erstellen

    Hier meine Fragen:
    1. Ist es möglich ein Drop-Down Menü (Kombinationsfeld) mit Inhalt zufüllen, der nicht in der Tabelle steht?
    2. Wie kann man Filter erstellen, dass z.B. nur die Ergebnisse angezeigt werden die auf 70m geschossen wurden angezeigt werden. Im Diagramm sollten dann auch nur die Ergebnisse die auf 70m geschossen wurden angezeigt werden.
    3. Ich will das ganze so automatisieren, dass man nachher nur noch die Daten oben eingeben muss und dann unten sofort in die Tabelle Eingefügt werden. Gibt es irgendeinen VBA Befehl, dass das Gitternetz sich automatisch mit nach unten geht, wenn man einen neuen Eintrag macht
    oder geht das auch ohne VBA?


    Das waren meine Fragen wenn ich mich irgendwie unverständlich ausgedrückt habe dann versuch ichs mit Bildern zu erklären.

    Ich freue mich über Jede Antwort!

    Tim
     
    Last edited: Feb 1, 2010
  2. Beverly

    Beverly Halbes Megabyte

    Hi Tim,

    zu Frage 1: wenn du mit "Kombinationsfeld" ein Dropdown-Listenfeld aus Daten Gültigkeit meinst - man kann die Daten direkt bei Quelle angeben, getrennt durch Semikolon. Beziehst du dich auf ein Kombinationsfeld aus der Formular-Symbolleiste oder aus der Steuerelemente-Toolbox, kann man die Daten per VBA zuweisen. Die Verfahrensweise ist jedoch abhängig von der Art des verwendeten Kombinationsfeldes.

    zu Frage 2: verwende eine zusätzliche Spalte, in der du die Distanz eingibst und filtere dann mittels Autofilter auf diese Spalte. Im Diagramm werden nur die sichtbaren Zeilen angezeigt, wenn du das Diagramm markierst -> Extras -> Optionen -> Diagramm und dort "Nur sichtbare Zellen zeichnen" aktivieren

    zu Frage 3: Gitternetzlinien sind die Linien, die Excel automatisch setzt und müssen deshalb nicht erweitert werden. Wenn du dagegen von Hand gesetzte Rahmen meinst - Rahmen werden automatisch "weitergeführt", wenn man eine Zeile vor der letzten Zeile mit Rahmen einfügt.
    Es wäre gut, wenn du deine Arbeitsmappe hochladen würdest - andernfalls ist es etwas schwierig, genaueres zur Verfahrensweise im Hinblik auf das Übertragen der Eingaben in die Tabelle zu sagen.
     
  3. Hallo

    Ich habe jetzt mal einen Screenshot gemacht.
    [​IMG]
    So ähnlich soll es aussehen wenn es fertig ist.
    In dem Drop-Down Menü, welches von dem rotem Pfeil markiert ist, soll man zwischen Kreismeisterschaft, Bezirksmeisterschaft, ...., Erweitert.
    Wenn das Drop-Down Menü auf "Erweitert" steht soll hinter "Datum" ein Drop-Down Menü erscheinen wo man die Anzahl der Durchgänge eingeben kann.
    Des weiteren soll dann hinter jedem Durchgang ein Drop-Down Menü erscheinen mit der Entfernung für den jeweiligen Durchgang.

    Wenn man auf "Eintrag hinzufügen" klickt soll der Eintrag automatisch unten in die Liste eingetragen werden.

    Diese Filter müssen dann sicherlich in der unteren Tabelle oben Eingefügt werden.

    Ich hab die Datei hoch geladen :
    http://diepk.di.funpic.de/Bogenschie%dfen%20ergebnisse.xls

    Die Datei enthält Steuerelemente die schon teilweise mit VBA Programmiert worden sind.
    Danke für die Antwort, Karin
     
    Last edited: Feb 2, 2010
  4. Beverly

    Beverly Halbes Megabyte

    Hi Tim,

    die ComboBoxen würde ich beim Öffnen der Arbeitsmappe füllen:
    Code:
    Private Sub Workbook_Open()
        With Worksheets("Ergebnisse Turnier").ComboBox1
            .AddItem "Kreismeisterschaft"
            .AddItem "Bezierksmeisterschaft"
            .AddItem "Landesmeisterschaft"
            .AddItem "Sonstiges"
        End With
        With Worksheets("Ergebnisse Turnier").ComboBox2
            .AddItem "70"
            .AddItem "18"
        End With
    End Sub
    Den Rest musst du dir noch einmal genau überdenken, denn ich sehe da derzeit folgende Ungereimtheiten:
    1. am Ende sollen doch die ausgewählten Daten in die Tabelle eingetragen werden. Wenn du nun dort "Erweitert" (in deiner derzeitigen Mappe heißt es wohl "Sonstiges") auswählst um die restlichen Steuerelemente einzublenden, würde beim Eintragen dann in Spalte C nicht "Kreismeisterschaft", "Bezirksmeisterschaft" usw. stehen, sondern "Erweitert". Wenn du also die Zusatzeinträge gemacht hast, müsstest du dann noch enmal in die Combobox gehen und den eigentlichen Begriff auswählen - das würde ich als umständlich betrachten, da man die erneute Auswhal vergessen könnte

    2. welche Einträge soll denn die ComboBox für die Anzahl der Durchgänge enthalten? Sind es immer maximal 2 oder können es auch mehr sein? Wenn es mehr sein können: wie soll sich das dann in der unteren Tabelle wiederspiegeln? Da müsste die Tabelle dcoh wesentlich mehr Spalten haben.
     
  5. Hi

    Ich hab jetzt noch mal ein wenig an der Datei gebastelt.

    In die leeren Spalten kommt noch die Überschrift Auflagen Größe

    Sie siehts jetzt so aus:
    [​IMG]

    Das mit dem Workbook_open Funktioniert nicht.

    Ich es gibt Zwar Turniere mit mehr als 4 Durchgängen aber das würde von der Breite nicht passen.

    Bei diesen Autofiltern Entsteht auch noch so ein DropDown Menü. Kann man den Pfeil da so Ausblenden, dass er nur Erscheint, wenn man da drauf klickt?(Sonst wird die Tabelle zu breit.)

    Ich kann irgendwie nur einen Auto-Filter machen.

    Wie kann ich die Ergebnisse unten in die Liste einfügen?

    Edit: Die größe des Diagramms verändert sich bei der Verwendung des Filters
     
    Last edited: Feb 4, 2010
  6. Beverly

    Beverly Halbes Megabyte

    Und was funktioniert nicht?

    Wer soll denn deine Arbeitsmappe nachbauen? Ein Nachbau ist nicht das Original - deshalb kann dort vieles funktionieren was im Original dann nicht passt. Außerdem hast du ja schon Zeit investiert.

    Beim Autofilter kannst du die Dropdown-Pfeile (per vBA) zwar ausblenden, aber dann ist es kein Autofilter mehr und es kann folglich auch nichts gefiltert werden.
     
  7. Das hier ist der Sub für die Comboxen durch das "Workbook_open()" in der ersten Zeile nicht auch der Sub ausgeführt werden, wenn ich die xls Datei öffne?
    Wenn ich Workbook durch Worksheet ersetze und open durch activate, dann funktionierts aber dann muss ich immer erst in eine andere Tabelle gehen.
    Code:
    Private Sub Workbook_open()
        'Turnier Items
        With Worksheets("Ergebnisse Turnier").ComboBox1
            .AddItem "Vereinsmeisterschaft"
            .AddItem "Kreismeisterschaft"
            .AddItem "Bezierksmeisterschaft"
            .AddItem "Landesmeisterschaft"
            .AddItem "Deutschemeisterschaft"
            .AddItem "Erweitert"
        End With
        'Durchg.1 Items Entfernung
        With Worksheets("Ergebnisse Turnier").ComboBox2
            .AddItem "70"
            .AddItem "60"
            .AddItem "50"
            .AddItem "40"
            .AddItem "30"
            .AddItem "25"
            .AddItem "18"
        End With
        'Durchg.2 Items Entfernung
        With Worksheets("Ergebnisse Turnier").ComboBox3
            .AddItem "70"
            .AddItem "60"
            .AddItem "50"
            .AddItem "40"
            .AddItem "30"
            .AddItem "25"
            .AddItem "18"
        End With
        'Durchg.3 Items Entfernung
        With Worksheets("Ergebnisse Turnier").ComboBox4
            .AddItem "70"
            .AddItem "60"
            .AddItem "50"
            .AddItem "40"
            .AddItem "30"
            .AddItem "25"
            .AddItem "18"
        End With
        'Durchg.4 Items Entfernung
        With Worksheets("Ergebnisse Turnier").ComboBox5
            .AddItem "70"
            .AddItem "60"
            .AddItem "50"
            .AddItem "40"
            .AddItem "30"
            .AddItem "25"
            .AddItem "18"
        End With
        'Durchg.1 Items Auflagengröße
        With Worksheets("Ergebnisse Turnier").ComboBox6
            .AddItem "Spot"
            .AddItem "40"
            .AddItem "60"
            .AddItem "80"
            .AddItem "122"
        End With
        'Durchg.2 Items Auflagengröße
        With Worksheets("Ergebnisse Turnier").ComboBox7
            .AddItem "Spot"
            .AddItem "40"
            .AddItem "60"
            .AddItem "80"
            .AddItem "122"
        End With
        'Durchg.3 Items Auflagengröße
        With Worksheets("Ergebnisse Turnier").ComboBox8
            .AddItem "Spot"
            .AddItem "40"
            .AddItem "60"
            .AddItem "80"
            .AddItem "122"
        End With
        'Durchg.4 Items Auflagengröße
        With Worksheets("Ergebnisse Turnier").ComboBox9
            .AddItem "Spot"
            .AddItem "40"
            .AddItem "60"
            .AddItem "80"
            .AddItem "122"
        End With
    
    End Sub
    Wie bekomme ich es hin, dass der Inhalt der Comboboxen unten in der Liste ausgegeben werden?Das soll ja immer unten angefügt werden und nicht alles wieder überschreiben. Das ist eigentlich momentan mein Hauptproblem.

    DANKE schon mal für deine Hilfe:)
     
    Last edited: Feb 5, 2010
  8. Beverly

    Beverly Halbes Megabyte

    Hi Tim,

    du hast den Code auch ins Codemodul von DieseArbeitsmappe geschrieben? Dort gehört das Workbook_Open Ereignis hin.

    Die letzte benutzte Zelle in einer Spalte (im Beispiel Spalte A) kann man mit diesem Code ermitteln:

    Code:
        Dim loLetzte As Long
        loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
    
    loLetzte + 1 ist dann die 1. freie Zelle.
     
  9. Hallo ,Karin
    Ne hab ich nicht, hätt ich auch selbst drauf kommen können:aua:


    Muss loLetzte + 1 in den False Part?
    Wie ich das jetzt verstanden habe wird dadurch nur die letzte Zeile ermittelt und wie ist der Befehl für das Ausgeben für die Comboboxen?

    Danke

    Tim
     
  10. Beverly

    Beverly Halbes Megabyte

    Hi Tim,

    loLetzte + 1 ist für den Code, den du mit dem Schalter ausführst um die Werte in die erste freie Zeile der Tabelle einzutragen - so in der Form:

    Code:
    Cells(loLetzte + 1, 1) = ComboBox1 
     
  11. Hallo

    Code:
    Private Sub Ausgeben()
    
    Dim Turnier As Long
    
    Turnier = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.cout, 3).End(x1up).Row, Rows.Count)
        Cells(Turnier + 1, 3) = ComboBox1
    
    End Sub
    Da kommt folgende Fehlermeldung:
    [​IMG]
     
  12. Beverly

    Beverly Halbes Megabyte

    Hi Tim,

    dein Code für die Ermittlung der letzten belegten Zeile ist falsch - vergleiche ihn nochmal mit meinem.
     
  13. Hascheff

    Hascheff Moderator

    Hallo Tim,
    die Programmeditoren bieten Hilfen an, um Tippfehler zu vermeiden. Wenn man nach einem Objekt einen Punkt setzt, erscheint oft eine Liste mit den unterstützten Eigenschaften und Methoden. Wenn sie zu lang ist, kann man die ersten Buchstaben noch eintippen, dann wird sie gefiltert. Wählt man dann mit Cursor oder Maus das Schlüsselwort, ist es garantiert fehlerfrei.
    Wenn ich in VBA ein Schlüsselwort selbst eintippe, schreibe ich es absichtlich klein und beobachte beim Verlassen der Zeile, ob es groß wird. Dann wurde es vom Interpreter als Schlüsselwort erkannt.

    Es ist ein kleiner zusätzlicher Zeitaufwand. Dass er sich lohnt merkt man nicht, denn man macht ja keine Fehler.

    Gruß
    Hascheff
     
  14. Vielen Dank
    Das Programm funktioniert jetzt :)
     
Thread Status:
Not open for further replies.

Share This Page