Abfrage und Ausgabe über CommandButton und anschließend schreiben dieser Daten ebenfalls per CommandButton in andere Tabelle

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von DarthIllJay.

    Abfrage und Ausgabe über CommandButton und anschließend schreiben dieser Daten ebenfalls per CommandButton in andere Tabelle

    Hallo zusammen,

    ich habe ein Problem, bei dem ich nicht weiter komme.

    Ich bin noch ein ziemlicher Anfänger was das Thema VBA betrifft. Ich stehe vor folgender Aufgabe:

    In Spalte B der Tabelle 1 stehen Daten (das sind Fragen bezüglich eines Projekts).

    In Tabelle 2 befinden sich 2 CommandButtons. Bei Klick auf CommandButton1 sollen die Daten aus B3 der Tabelle 1 in der Zelle E7 der Tabelle 2 erscheinen (diese Zelle ist immer die selbe, die andern sollen dynamisch sein). Nun entscheide ich ob ich diese Daten in Tabelle 3 in Zelle A1 schreiben möchte. Wenn ja, dann klicke ich auf CommandButton2, wenn nicht klicke ich auf CommandButton1 und es soll dann der Wert aus Zelle B4 aus Tabelle 1 ausgegeben werden.

    Das soll so passieren, bis Daten aus Spalte B der Tabelle 1 abgefragt wurden. Wichtig ist, dass die Daten die ich in Tabelle 3 schreibe immer untereinander gereiht werden und keine leeren Zellen dazwischen bleiben.

    Ich hoffe, ich hab mich deutlich genug ausgedrückt. Es ist kein Problem für mich den Wert einer bestimmten (festen) Zelle in eine andere bestimmte (feste) Zelle zu schreiben aber die Anforderung oben stellt mich schon vor Probleme.

    Im Anhang hab ich die Datei angehängt um die es geht, vllt wird es dann klarer.
    Dateien
    • Fragen.xls

      (52,22 kB, 187 mal heruntergeladen, zuletzt: )
    Schau dir mal die Datei an. Ich habe den Quellcode kommentiert. Hoffentlich hilft das weiter.
    Sicherlich gibt es noch andere Lösungsmethoden, denn beispielsweise kann man unterschiedlich auf eine bestimmte Zelle zugreifen etc...

    Visual Basic-Quellcode

    1. 'Deklarieren von "Öffentlichen" also von überall aus manipulierbaren Zählvariablen
    2. Public fragenummer As Integer
    3. Public antwortnummer As Integer
    4. Private Sub CommandButton1_Click()
    5. 'Entsperre JA Button
    6. CommandButton2.Enabled = True
    7. 'Zeigt die Frage von 1 bis unendlich in Tabelle 2 an
    8. Worksheets("Tabelle2").Cells(7, 5) = Worksheets("Tabelle1").Cells(fragenummer + 3, 2)
    9. 'Nächste Frage, also Erhöhung der Zählvariablen
    10. fragenummer = fragenummer + 1
    11. End Sub
    12. Private Sub CommandButton2_Click()
    13. 'Zählvariable erhöhen
    14. antwortnummer = antwortnummer + 1
    15. 'Frage aus Tabelle 1 übernehmen und in Tabelle 3 schreiben
    16. Worksheets("Tabelle3").Cells(antwortnummer, 1) = Worksheets("Tabelle1").Cells(fragenummer + 2, 2)
    17. End Sub
    18. Private Sub CommandButton3_Click()
    19. 'Setze die Zählvariablen zurück
    20. fragenummer = 0
    21. antwortnummer = 0
    22. 'lösche den Anzeigekasten in Tabelle 2
    23. Worksheets("Tabelle2").Cells(7, 5) = "Zum Starten auf " & Chr(34) & "nächste Frage" & Chr(34) & " drücken"
    24. 'chr(34) ist das Anführungszeichen, eingefügt als Sonderzeichen
    25. 'leere die Antwortspalte in Tabelle 3
    26. Worksheets("Tabelle3").Columns(1).ClearContents
    27. 'sperrt den JA Button
    28. CommandButton2.Enabled = False
    29. End Sub
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DarthIllJay“ ()

    Multiplikation mehrerer Zellen miteinander

    Beispiel siehe erweiterte Datei im Anhang. Vom Prinzip habe ich es so gelöst:
    Du fängst mit der Variable "ergebnis" =1 an und multiplizierst diese nacheinander, in diesem Fall über eine Schleife, mit sämtlichen Zellen deiner Wahl.

    Visual Basic-Quellcode

    1. 'Deklarieren der öffentlichen Variable ergebnis
    2. Public ergebnis As Double
    3. Private Sub CommandButton1_Click()
    4. 'Da der PC von 0 anfängt zu zählen und eine Multiplikation mit 0 = 0 ist wird die Variable mit 1 initialisiert
    5. ergebnis = 1
    6. 'Schleife die gewisse Zellen nacheinander reinmultipliziert
    7. For i = 6 To 9
    8. ergebnis = ergebnis * Worksheets("Tabelle4").Cells(1, i)
    9. Next i
    10. 'Ergebnis der Multiplikation die Zelle reinschreiben
    11. Worksheets("Tabelle4").Cells(3, 9) = ergebnis
    12. End Sub
    Dateien