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

mit Button Zahl hoch bzw. runter zählen

Discussion in 'Office-Programme' started by onanon, Jan 16, 2008.

Thread Status:
Not open for further replies.
  1. onanon

    onanon Byte

    hallo,
    suche in excel nach einem formular bzw. tool, dass in einer zelle per button (hoch + bzw. runter -) einfach durch drücken eine zahl hoch bzw. runter zählen kann. also einfach die zahl in dieser zelle +1 bzw. -1.

    wie kann ich dies am leichtesten bewerkstäligen?
     
  2. Urs2

    Urs2 Megabyte

    Die Mappe öffnen > VisualBasic-Editor öffnen > +VBAProject(NameDeinerMappe) öffnen > dort diesen Code eingeben >
    Code:
    Sub addiert()
    zellWert = Sheets("Tabelle2").Range("C11").Value
        Sheets("Tabelle2").Range("C11").Value = zellWert + 1
    End Sub
    
    Sub subtrahiert()
    zellWert = Sheets("Tabelle2").Range("C11").Value
        Sheets("Tabelle2").Range("C11").Value = zellWert - 1
    End Sub
    
    "Tabelle2" und "C11" müssen natürlich an Deinen Blattnamen und an Deine Zelle, die bearbeitet werden soll, angepasst werden.

    In Excel zwei Buttons erstellen für Auf und Ab > entsprechendes Makro zuweisen.

    Gruss Urs
     
  3. Beverly

    Beverly Halbes Megabyte

    Hi,

    verwende anstelle von 2 Button eine Drehfeld (Spinbutton) aus der Steuerelement-Toolbox und hinterlege im Codemodul der betreffenden Tabelle diesen Code

    Code:
    Private Sub SpinButton1_SpinDown()
        Range("A1") = Range("A1") - 1
    End Sub
    
    Private Sub SpinButton1_SpinUp()
        Range("A1") = Range("A1") + 1
    End Sub
    
    Zelle bitte anpassen.
     
  4. Urs2

    Urs2 Megabyte

    @Beverly
    Ich hatte nachher auch die Idee, dass der TO wohl ein Steuerelement aus deren Toolbox gemeint haben könnte (Excel2003)... aber dann war mein Provider leider ausgestiegen, bis vorhin...

    Ich weiss nicht was der TO machen will, aber aus persönlichem Interesse hatte ich das ausprobiert. Und festgestellt...

    > Schnelles Klicken, so schnell wie ich die Spieler manchmal klicken sehe, überfordert das Makro. Es werden einfach Klicks übergangen. Auch wenn ich das Makro ohne Variable in einer Zeile, oder entweder mit Autoformen oder den Elementen aus der Steuerelement-Toolbox, starten lasse. Mit was hängt das zusammen >

    - mit meinem schon eher betagten System? Was wäre dann der Verlangsamungsgrund? Die Grafik, die CPU...?

    - ist einfach der Weg in Office-Makros zu langsam? Müsste dafür systemnäher programmiert werden?

    Gruss Urs
     
  5. Beverly

    Beverly Halbes Megabyte

    @Urs,

    ja, manchmal können einem die Provider schon ganz schön einen Strich durch die Rechnung machen - kenne ich auch aus eigener Erfahrung gut genug. :rolleyes:

    Naja, die Steuerelement-Toolbox gab es auch schon in Excel97. Man könnte natürlich auch ein Drehfeld aus der Formular-Symbolleiste nehmen, aber da ist das Problem, dass man den Eintrag in der Zellverknüpfung noch entsprechend auswerten müsste, insbesondere wenn vielleicht Minuswerte erwünscht sind, denn das Minimum bei einem solchen Element beträgt 0 und lässt ohne diese Manipulation halt keinen Minuswert zu.

    Das Problem mit der Schnelligkeit des Makros - meinst du da die CommandButton oder den SpinButton? Der Vorteil des SpinButtons besteht ja darin, dass man ihn nicht immer wieder neu drücken sondern einfach nur die Maustaste halten muss. Wenn ein Code langsam ist, dann hängt das sicher nicht mit dem Code an sich zusammen, insbesondere bei einem solch relativ kurzen. Ich würde das doch eher mit der Grafikkarte in Verbindung bringen. In vielen Fällen hilft dann allerdings, dass man die Codezeile Do Events einfügt, die die Steuerung kurzzeitig wieder an das System abgibt.
     
  6. Urs2

    Urs2 Megabyte

    @Beverly

    Ich hatte mit Makrozuweisen an ein Autoform und dem CommandButton aus der Steuerelemt-Toolbox versucht > immer gleiches Resultat >

    > bei beiden Elementen reagiert der Button blitzschnell, er blinkt oder verändert seine Anzeige, nur das Makro kommt nicht nach mit dem Zählen.

    Zu arbeiten gibt es für die CPU hier ja tatsächlich nicht so viel, dann wird wohl meine ältliche Grafik nicht mitmachen wollen...

    Danke für die Information und Gruss, Urs
     
  7. Urs2

    Urs2 Megabyte

    @Beverly .....dass mein treuer PC eine so lahme Ente sein soll, hatte mich schon geärgert...

    Mit einem SpinButton und dem Einzeiler > Range("C11").Value = SpinButton1.Value
    geht auch bei schnellstmöglichen Einzelklicks kein einziger Klick verloren!

    Vielleicht wird er irgendwann einmal meinen, es sei ein Dauerdrücken, aber so schnell bin ich nicht.
    Und für Minuswerte braucht es natürlich mehr als nur eine Zeile.

    Der Geschwindigkeitsunterschied wird wohl damit zusammenhängen, dass der SpinButton die Ausgangszahl "in sich selbst speichert", während die anderen zwei diese erst aus der Zelle einlesen müssen.

    Gruss Urs
     
  8. Hascheff

    Hascheff Moderator

    Hallo Urs,
    nimm mal die Schaltfläche aus der Formular-Symbolleiste, die ist schneller.
    BTW tut's auch hier ein Einzeiler, wie von Beverly beim Spinbutton geschrieben. Eine Variable ist nicht erforderlich.
    Spinbutton hab ich in Excel 2000 nicht.
     
  9. Beverly

    Beverly Halbes Megabyte

    Hi Hascheff,

    doch, den SpinButton findest du als "Drehfeld" (s. meinen ersten Beitrag)
     
  10. Urs2

    Urs2 Megabyte

    ..Einzeiler schon, aber zwei davon in je einem eigenen Sub.
    Das wäre natürlich belanglos, ich wollte nur schauen ob meine lahme Ente vielleicht doch noch fliegen könnte - sie kann!
    Wie üblich, wenn ich schon keinen aktuellen Bedarf habe, will ich wenigstens wissen, wie die Funktion innen drin aussieht.

    Vielleicht kommt ja jemand mit der Suche nach SpinButton oder Drehfeld einmal hier vorbei >

    Der SpinButton speichert die aktuell gültige Zahl "in sich selbst". Allerdings darf er per default nur Zahlen von 0 bis +100 speichern, was ausserhalb liegt, ignoriert er. Beverlys Code benutzt ja auch nicht sein Zahlengedächtnis, sondern die Aktion der Maus.

    Mit der einmaligen Betätigung eines zusätzlichen CommandButtons "Zelle C11 als Ausgangsbasis nehmen", kann auch mein einzelner Einzeiler direkt addieren und subtrahieren. > Mit diesen Zeilen...
    Code:
    Private Sub CommandButton3_Click()
        SpinButton1.Max = 1000000000
        SpinButton1.Min = -1000000000
        SpinButton1.Value = Range("C11").Value
    End Sub
    
    ...wird bei dem in Zelle C11 eingetippten Wert mit dem Zählen begonnen. Alle Zahlen von minus bis plus einer Milliarde kann SpinButton jetzt "in sich selbst" speichern.
    Die MinMax-Werte und die Zahl bleiben im SpinButton erhalten, auch nach einem Neustart von Excel.

    Ich müsste mir jetzt nur noch eine Verwendung dieser Erkenntnis ausdenken...

    Gruss Urs
     
  11. Hascheff

    Hascheff Moderator

    :dumm: Klar! Ich hab wohl nicht richtig gesucht.
    Und er läuft fix.

    Das halte ich für sinnvoll. Die Möglichkeit der Änderung wird eher darauf abzielen, mal einen Bereich von 0 bis 200 oder 255 zu nehmen. Denn wer lässt wohl den Finger bis 10000 oder gar 1 Mrd drauf. Da ist man mit Tastatureingabe schneller. Dann leg lieber für jede Ziffer einen Spinbutton an.
    Die Kommandos lassen sich sicher an einem anderen Ort ablegen.
     
  12. onanon

    onanon Byte



    also, ich kenn mich mit vb garnicht aus!
    wo finde ich die Steuerelement-Toolbox?

    in excel oder vb?
     
  13. Urs2

    Urs2 Megabyte

    Im Excel-Tabellenblatt, wo der Button hin soll >

    - Menü Ansicht > Symbolleisten > Steuerelement-Toolbox > Drehfeld-Button auswählen/einfügen und formatieren
    - Doppelclick auf den Button >> jetzt öffnet der VB-Editor an der richtigen Stelle
    - die 2 vorhandenen Zeilen löschen und dort den Code von Beverly einfügen

    - damit es funktioniert, in der Toolbox oben links auf "Entwurfsmodus beenden" clicken

    Gruss Urs
     
  14. onanon

    onanon Byte

    wunderbar es funktioniert!

    aber nur wenn ich die makro sicherheit auf mittel stelle!
    auf hoch kommt eine fehlermeldung. ist das ok wenn ich es auf mittel lasse oder ist das nicht so gut?
     
  15. Hascheff

    Hascheff Moderator

    Wenn dich die Meldungen nicht nerven, ist es ok.
     
  16. Urs2

    Urs2 Megabyte

    Die Sicherheitsstufen sind gedacht für fremde Exceldateien die Du auf Deinem PC öffnen willst. Es geht dabei vor allem um Auto-Makros, die beim Oeffnen der Datei direkt starten.Selbst bösartige Makros erstellen willst Du hoffentlich nicht...

    Ueber die Sicherheit auf dem PC kann nur sein Besitzer entscheiden. Ich schreibe nur, wie ich es für mich halte >

    - Sicherheitsstufe Mittel, manchmal muss ich sie auf Niedrig setzen... und vergesse sie dann dort...
    - Excel > Extras > Makro > Sicherheit > Vertrauenswürdige Herausgeber >> beide Kästchen aktiviert
    - Ich öffne keine Excel-Dateien, wenn ich nicht die Herkunft UND den Inhalt kenne. Der beste Freund ist eine unsichere Quelle, wenn er die Datei selbst von einer solchen erhalten hatte.
    - Wenn ich trotzdem eine seltsame Datei ansehen muss, öffne ich sie mit dem MS Office Excel Viewer. Dort können keine Makros ausgeführt werden >
    >>> http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=c8378bf4-996c-4569-b547-75edbd03aaf0
    ...und nachher dessen Sicherheitsupdate >
    >>>http://www.microsoft.com/downloads/details.aspx?familyid=50A22D11-7CC6-4C3A-B3EC-A9EA4E39E28E&displaylang=de

    Gruss Urs
     
  17. Beverly

    Beverly Halbes Megabyte

    Hi,

    wenn dich die Warnung stört, dann schau mal in der Hilfe zum Stichwort "Digitales Zertifikat".
     
  18. onanon

    onanon Byte

    ne,
    die stören nicht!

    DANKE EUCH....
     
Thread Status:
Not open for further replies.

Share This Page