Excel VBA Problem

Dieses Thema im Forum "Office Software" wurde erstellt von Master Pod, 15.01.2007.

  1. Master Pod

    Master Pod Thread Starter MacUser Mitglied

    Beiträge:
    2.775
    Zustimmungen:
    14
    MacUser seit:
    31.01.2005
    Hallo Leute,

    obwohl es Windows Excel ist starte ich mal einen Versuch:

    Ich möchte über einen Button mir folgendes ausrechnen lassen:
    Ich habe die t-Daten ( A1-A60)
    In den Spalten B1-B60 soll folgende Formel berechnet werden:
    =0,5*9,81*t^2
    Jede 0,1 Realsekunden soll ein Wert in die Spalte B eingetragen werden, bis t=60 ist.

    Jetzt habe ich folgenden Programmcode:
    Doch er gibt mir keine Daten aus. Kann mir jemand sagen, wo mein Fehler liegt?

    Danke,

    MP
     
  2. Erebus

    Erebus MacUser Mitglied

    Beiträge:
    1
    Zustimmungen:
    0
    MacUser seit:
    01.02.2007
    Hallo
    Deine Aufgabenstellung ist mir unklar, wofür die definierte Eingabezeit ?

    Versuch mal das hier:


    'Alles ohne Zeitaspekt, das wird alles schlicht abgearbeitet!


    Option Explicit
    Sub test()
    Dim i As Integer
    For i = 1 To 60
    'trägt immer die gleiche Formel in Spalte B ein:
    Range("B1:B60").Formula = "=$A$1 * " & CStr(i) & " ^ 2"
    'trägt aufsteigend in Spalte C ein:
    Cells(i, 3).Formula = "=$A$1 * " & CStr(i) & " ^ 2"
    Next i
    End Sub
     
  3. NorbertH

    NorbertH MacUser Mitglied

    Beiträge:
    623
    Zustimmungen:
    17
    MacUser seit:
    24.02.2006
    Was mir beim Lesen deiner Formel aufgefallen ist.

    Deine Formel :

    DIM t as integer

    For t = 1 To t = 60............................................. Falsch
    Range("B1:B60").Formula = "=$A1" * t ^ 2

    Next i............................................................... Falsch


    For t = 1 To 60
    Dein Befehl
    Next t

    Habe deine Formel nicht Getestet, habe die Fehler nur beim Lesen desehen.
     
  4. Jabba

    Jabba MacUser Mitglied

    Beiträge:
    4.465
    Zustimmungen:
    109
    MacUser seit:
    21.11.2003
    Hai!

    Viel zu kompliziert:
    Ich gehe davon aus, dass t in Spalte B1 bis 60 immer das gleiche t ist bzw. den gleichen Wert hat und sich für alle gleichzeitig (!) bis 60 hochzählt und somit das Formelergebnis entsprechend verändert.

    Somit ist mit einer Schleife ein Gleichzeitiges Ändern der Werte in Spalte B nicht möglich. Machs doch einfacher:
    Schreibe die Formel in Spalte B für alle Zeile rein. Setzte statt t eine Zelle ein, z.B. D1

    =0,5*9,81*D1^2

    So, und jetzt brauchst Du nur noch ein Simples Makro, was in Zelle D1 die Werte 1 bis 60 im 0,1 Sekundenabstand eingibt und alle B-Zellen ändern sich simultan.

    Wenn wir schon dabei sind:

    Sub hochzaehlen()
    For i = 1 To 60
    Range("D1").Value = i
    waittime = (Now + TimeValue("0:00:01"))
    Application.Wait waittime
    Next i
    End Sub

    Uups, geht wohl nur im Sekundenabstand... Excel ist im Hundertstel Sekundenbereich Zickig. Vielleicht fällt mir dazu auch noch was ein...

    :)
     
    Zuletzt bearbeitet: 01.02.2007
  5. Master Pod

    Master Pod Thread Starter MacUser Mitglied

    Beiträge:
    2.775
    Zustimmungen:
    14
    MacUser seit:
    31.01.2005
    Wow supi!!!

    Mein Problem war, dass ich immer etwas zu Visual Basic like denke...



    MP
     
Die Seite wird geladen...

Diese Seite empfehlen