hmm: Visual Basic: Formeln in Sheet "Aktualisieren"

Hi Leute,

ich setze per VBA folgenden Code in einoigen Excel zellen:

            =SUMME(F15:BD15)

Leider muss ich dann Manuell in das Excelblatt klicken und die Formel mit f2 + Enter starten.

Ich wollte f2+enter per vba Skript wie folgt machen:

            Dim zelle2 As Object
            iBlatt.Cells(zeile, 1).Select
            For Each zelle2 In Selection
            SendKeys "{F2}", True
            SendKeys "{ENTER}", True
            Next zelle2

leider geht das nicht, bzw seleciert mir der code nur die zellen nacheinander ohne die sch*** formel auszuführen. könnt ihr mir sagen wie ich das Problem lösen kann?

mfg hmmmmmmmm

  1. Hi hmm,

    ich setze per VBA folgenden Code in einoigen Excel zellen:

                =SUMME(F15:BD15)
    

    Leider muss ich dann Manuell in das Excelblatt klicken und die Formel mit f2 + Enter starten.

    Ich wollte f2+enter per vba Skript wie folgt machen:

                Dim zelle2 As Object
                iBlatt.Cells(zeile, 1).Select
                For Each zelle2 In Selection
                SendKeys "{F2}", True
                SendKeys "{ENTER}", True
                Next zelle2
    

    leider geht das nicht, bzw seleciert mir der code nur die zellen nacheinander ohne die sch*** formel auszuführen. könnt ihr mir sagen wie ich das Problem lösen kann?

    Hilft das sehr leicht über die Suchmaschine deiner Wahl zu findende calculate?

    mfg hmmmmmmmm

    1. ich glaube nicht:

                iBlatt.Cells(zeile, 4) = "=SUMME(F" & zeile & ":" & breiteBuchstabe & zeile & ")"
                          
                iBlatt.Cells(zeile, 4).Calculate
      

      der code führt die formel aufjedenfall nicht aus

      1. Hallo,

        ich habe zwar keine Ahnung von VB-Script, aber dafür einen alten Wälzer über VBA im Regal stehen.

        iBlatt.Cells(zeile, 4) = "=SUMME(F" & zeile & ":" & breiteBuchstabe & zeile & ")"
        

        Hättest du das mal gleich gezeigt. So weist du der ausgewählten Zelle ihren Inhalt als reinen Text zu. Kein Wunder, dass die Formel dann nicht interpretiert wird. Um Formeln auszuwerten, musst du den Wert an iBlatt.Cells(...).FormulaLocal zuweisen (oder alternativ an .Formula, aber dann musst du die englischen Formelbezeichnungen benutzen).

        So long,
         Martin

        --
        Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
        - Douglas Adams, The Hitchhiker's Guide To The Galaxy
        1. Immer diese Parallelpostings. Während mein Alter Ego noch in Excel rumdebuggt, guckst Du die Lösung im Excelwälzer nach :)

          Mich irritiert nur, dass Hmm nichts von dem Name-Fehler gesagt hat, der bei Schreiben auf "Formula" statt "FormulaLocal" auftritt.

          Rolf

      2. Hi hmm,

        ich glaube nicht:

                  iBlatt.Cells(zeile, 4) = "=SUMME(F" & zeile & ":" & breiteBuchstabe & zeile & ")"
                            
                 iBlatt.Cells(zeile, 4).Calculate
        

        der code führt die formel aufjedenfall nicht aus

        Hilft:

        Application.Calculation = xlCalculationAutomatic

        oder

        Application.CalculateFull

        Oder statt Cells() = Formel Cells().FormulaR1C1 = Formel

        ?

        Welche Excelversion?

  2. Hallo hmm,

    welches Excel und wie genau setzt Du die Formel in den Zelle?

    Meine eigenen Versuche mit Excel 2013 haben das von Dir beschriebene Verhalten nicht gezeigt; ich habe ein neues Excelsheet aufgemacht, einen ActiveX Commandbutton draufgesetzt und im Click-Handler die Formel auf zwei verschiedene Arten eingesetzt:

    Private Sub CommandButton1_Click()
      Range("A2").Value = 3
      Range("A3").Value = 4
    
      Range("A1").Value = "=A2+A3"
      ' oder
      Range("A1").Formula = "=A2+A3"
    End Sub
    

    In beiden Varianten wird sofort 7 in A1 angezeigt. berechnet. Selbst dann, wenn die Berechnungsoption auf "Manuell" stand, wurde sofort der Wert berechnet (nur Änderungen an A2 oder A3 schlagen sich dann nicht mehr in A1 nieder).

    Anders ist es, wenn das Zellformat für die Zelle A1 "Text" ist, dann bleibt die Formel als Text stehen. ABER dann hilft auch kein F2 und ENTER.

    D.h. bei Dir ist irgendwas merkwürdig eingestellt oder deine Formelzuweisung ist merkwürdig.

    Gruß Rolf

    1. So, gelöst. Zumindest bei mir. Ob bei Dir - bin gespannt :) Wenn ich der Zelle "=SUMME(A2:A99)" zuweise, bekomme ich einen NAME? Error. Mit F2 und ENTER ist der Weg. Bei Dir auch?

      Problem ist, dass Excel intern englisch zu agieren scheint. Trägt man die Formel per Hand ein und schaut dann im Debugger auf die Zelleigenschaften, dann steht da nicht =SUMME(...), sondern =SUM(...). Es gibt aber ein Property FormulaLocal, das die lokalisierten Formeln verwendet, und darin findest Du =Summe(...).

      Dieses Property kann man auch setzen.

      Entweder generierst Du die englische Formel =SUM(...) oder speicherst die deutsche Schreibung unter FormulaLocal.

      Ist das eine Lösung für Dich?

      M.

  3. danke für die ganzen antworten.

    ich benutze Excel 2010 und irgendwie funktioniert nix von den oben beschriebenen Sachen, ich teste das aber gleich noch etwas genauer.

    und eine zweite frage ob ich auch noch, ich färbe einige zellen mit

        sheet.Cells(11, s).Interior.ColorIndex = 4
    

    krieg ich irgendwie die farbe "blau akzent 1 heller 80%" und "olivgrün akzent 3 heller 60%"?

    1. Hi hmm,

      danke für die ganzen antworten.

      ich benutze Excel 2010 und irgend und eine zweite frage ob ich auch noch, ich färbe einige zellen mit

          sheet.Cells(11, s).Interior.ColorIndex = 4
      

      krieg ich irgendwie die farbe "blau akzent 1 heller 80%" und "olivgrün akzent 3 heller 60%"?

      kennst du den Makro-Recorder und hast dir schon das generierte Ergebnis angesehen, wenn du eine Aufzeichnung startest und alle Schritte manuell durchführst?

      1. Hi hmm,

        danke für die ganzen antworten.

        ich benutze Excel 2010 und irgend und eine zweite frage ob ich auch noch, ich färbe einige zellen mit

            sheet.Cells(11, s).Interior.ColorIndex = 4
        

        krieg ich irgendwie die farbe "blau akzent 1 heller 80%" und "olivgrün akzent 3 heller 60%"?

        kennst du den Makro-Recorder und hast dir schon das generierte Ergebnis angesehen, wenn du eine Aufzeichnung startest und alle Schritte manuell durchführst?

        danke! hätte ich den schon letzte Woche gekannt hätte ich 30 stunden weniger viel zutun gehabt ^^

        1. Hi hmm,

          kennst du den Makro-Recorder und hast dir schon das generierte Ergebnis angesehen, wenn du eine Aufzeichnung startest und alle Schritte manuell durchführst?

          danke! hätte ich den schon letzte Woche gekannt hätte ich 30 stunden weniger viel zutun gehabt ^^

          ich verstehe auch nicht, warum so ein gutes Hilfsmittel völlig versteckt ist. Vorallem für die Zielgruppe ist es praktisch nicht zu finden.

          1. man scheiße

            der folgende code:

             With iBlatt.Cells(zeile, 4)
              .FormulaLocal = "=SUMME(F" & zeile & ":" & breiteBuchstabe & zeile & ")"
              .Formula = .Value
             End With
            

            schreibt mir das ergebniss der summe in die zelle, ich will aber formel und Ergebnisse, halt so als wenn ich summe...blabla manuell eingegeben hätte

            was kann ich tun? und jetzt sagt nicht das ich das auch aufnehmen kann dass teste ich gleich aber ich wette es geht nicht

            dsafudsfiubewfiwaiubeaic <- wutanfall

            1. die lösung ist:

              Range("D15").Select
              ActiveCell.FormulaR1C1 = "=SUM(R[9]C[2]:R[9]C[52])"
              Range("D16").Select
              

              herausgefunden per makro Aufzeichnung

              ich wird das jetzt fertigmachen und im Büro so tun als ob ich noch 10 Wochen damit beschäftigt bin...

              1. Hi hmm,

                die lösung ist:

                herausgefunden per makro Aufzeichnung

                :-)

                Die Erfahrung haben schon viele machen müssen ;-)

                ich wird das jetzt fertigmachen und im Büro so tun als ob ich noch 10 Wochen damit beschäftigt bin...

                :-)

                Das hat bestimmt auch schon jemand gemacht ;-)

                1. wenn ich so mache:

                    iBlatt.Cells(zeile, 4).FormulaR1C1 = "=SUM(F" & zeile & ":" & breiteBuchstabe & zeile & ")"
                  

                  macht Excel so:

                    =SUMME('F15':'BD15')
                  

                  wie krieg ich die '' weg?

          2. Hallo,

            Makro-Recorder

            danke! hätte ich den schon letzte Woche gekannt hätte ich 30 stunden weniger viel zutun gehabt ^^

            ich verstehe auch nicht, warum so ein gutes Hilfsmittel völlig versteckt ist.

            versteckt aber erst, seitdem Microsoft mit dem Wechsel des Bedienkonzepts (Office 2007) die Office-Suite quasi unbedienbar gemacht hat. Vor dieser Verstümmelung war der Macro-Recorder prominent unter Extras/Macro-Recorder im Hauptmenü zu finden.

            Ich habe den schon unter Office 97 gern benutzt.

            So long,
             Martin

            --
            Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
            - Douglas Adams, The Hitchhiker's Guide To The Galaxy
            1. Hi Martin,

              Makro-Recorder

              danke! hätte ich den schon letzte Woche gekannt hätte ich 30 stunden weniger viel zutun gehabt ^^

              ich verstehe auch nicht, warum so ein gutes Hilfsmittel völlig versteckt ist.

              versteckt aber erst, seitdem Microsoft mit dem Wechsel des Bedienkonzepts (Office 2007) die Office-Suite quasi unbedienbar gemacht hat. Vor dieser Verstümmelung war der Macro-Recorder prominent unter Extras/Macro-Recorder im Hauptmenü zu finden.

              Eben. Völlig unverständlich, warum das versteckt wurde.

              Ich habe den schon unter Office 97 gern benutzt.

              Dito. Ist auch heute noch oft hilfreich. Einige Funktionen findet man mit dem Recorder schneller als mit Google und Co

              Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.

              • Douglas Adams, The Hitchhiker's Guide To The Galaxy

              (Schönes) wahres Zitat!

              1. das wurde "umplatziert" weil Microsoft der Meinung ist, dass die alte software dadurch "neu" aussieht. Stichwort Outlook, world, Betriebssystem ... bei jeder neuen Version von irgendwas muss ich den ganzen scheiß neu suchen

                edit:bei Microsoft gilt eine Softwareversion als neues produkt, wenn der Anwender lange braucht um sich zurecht zu finden

                1. Hallo,

                  edit:bei Microsoft gilt eine Softwareversion als neues produkt, wenn der Anwender lange braucht um sich zurecht zu finden

                  sinngemäß so wie hier in vielen großen Firmen: Wenn man die eigene Büro-Telefonnummer und die korrekte Abteilungsbezeichnung spontan auswendig weiß, ist es höchste Zeit für die nächste Umstrukturierung.

                  Mein Vater sagte mal, er habe bei Mercedes in seinen letzten zehn Dienstjahren vier verschiedenen Abteilungen angehört. Aber immer in demselben Büro, mit der gleichen Aufgabe und mit dem gleichen Kollegenteam.

                  So long,
                   Martin

                  --
                  Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                  - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                  1. gut, die korrekte abteilungsbezeichnung bei mir kenn ich nicht, meine Telefonnummer auch nicht und außerdem ist mein Name an der Bürotür falsch geschrieben

                    wie löse ich das Problem das ich oben formuliert habe?

                    1. Hi,

                      gut, die korrekte abteilungsbezeichnung bei mir kenn ich nicht, meine Telefonnummer auch nicht und außerdem ist mein Name an der Bürotür falsch geschrieben

                      wie löse ich das Problem das ich oben formuliert habe?

                      Fristlose Kündigung ;-)

                      cu,
                      Andreas a/k/a MudGuard

              2. Hallo,

                ich verstehe auch nicht, warum so ein gutes Hilfsmittel völlig versteckt ist.

                versteckt aber erst, seitdem Microsoft mit dem Wechsel des Bedienkonzepts (Office 2007) die Office-Suite quasi unbedienbar gemacht hat. Vor dieser Verstümmelung war der Macro-Recorder prominent unter Extras/Macro-Recorder im Hauptmenü zu finden.

                Eben. Völlig unverständlich, warum das versteckt wurde.

                völlig unverständlich, warum Microsoft überhaupt das zweitwichtigste Bedienelement[1] eliminiert hat, dieses unübersichtliche Menüband ist doch echt zum Hühnermelken.

                Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.

                • Douglas Adams, The Hitchhiker's Guide To The Galaxy

                (Schönes) wahres Zitat!

                Ja, Douglas Adams hat in seiner vierteiligen Hitchhiker-Trilogie eine Menge Sprüche, die auf den ersten Blick einfach nur witzig sind, aber dann doch unglaublich viel Tiefgang entwickeln, wenn man sie einen Moment aufmerksam auf sich wirken lässt.

                So long,
                 Martin

                --
                Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                - Douglas Adams, The Hitchhiker's Guide To The Galaxy

                1. Das wichtigste Bedienelement einer Office-Suite ist selbstverständlich die Tastatur. Das zweitwichtigste ist die Menüzeile. ↩︎

  4. wenn ich so mache:

       iBlatt.Cells(zeile, 4).FormulaR1C1 = "=SUM(F" & zeile & ":" & breiteBuchstabe & zeile & ")"
    

    macht Excel so:

       =SUMME('F15':'BD15')
    

    wie krieg ich die '' weg?

    1. wenn ich so mache:

         iBlatt.Cells(zeile, 4).FormulaR1C1 = "=SUM(F" & zeile & ":" & breiteBuchstabe & zeile & ")"
      

      macht Excel so:

         =SUMME('F15':'BD15')
      

      wie krieg ich die '' weg?

      die lösung des Problems lautet: .Formular ohne r1c1