matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenTabellenkalkulationenExcel
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
Forum "Tabellenkalkulationen" - Excel
Excel < Tabellenkalkulationen < Anwendungsprogramme < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Tabellenkalkulationen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Excel: Daten sortieren
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 21:56 Mo 02.07.2007
Autor: pamela

Hallo,bitte um Hilfe!!

ich soll ein Pysik Experiment(Luftkissenbahn) implementieren, was die gemessenen Werte (Weg und Zeit bei einer Bewegung) sortiert, dannach soll das Pogramm noch die Geschwindigkeit und gegebenenfalls die Beschleunigung berechnen. Weiterhin soll die mittlere Geschwindigkeit, sowie die Standartabweichung der Geschwindigkeit berechnet werden.
Zum Schluss sollen die Werte in einem Weg/Zeit Diagramm dargestellt werden.
Vielen Dank für eure Hilfe

Dateianhänge:
Anhang Nr. 1 (Typ: xls) [nicht öffentlich]
Anhang Nr. 2 (Typ: xls) [nicht öffentlich]
        
Bezug
Excel: Rückfrage
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:50 Mo 09.07.2007
Autor: Walty

Hallo pamela

sollst Du ein VB - Makro schreiben, das die beschriebene Aufgabe löst, oder reicht es das mit Excel von Hand durchzuführen?

Die zweitere Lösung ist einfacher:
Bereich der Werte markieren, Daten>Sortieren..., in Spalte C Formel (C6)"=$A6/$B6" nach unten kopieren/füllen; in Spalte D Formel (D7)"=($C7-$C6)/($A7-$A6)" ebenfalls nach unten füllen.
Die Erstellung des Diagramms ist wohl etwas komplizierter zu beschreiben.

Für das VBA_MAkro bedien' Dich doch an den in den Makros in der 2.Datei enthaltenen Funktionen, die die Spalten füllen.
Ansonsten kannst Du Dich auch sn dem oben beschriebenen Lösungseweg entlanghangeln...

Bezug
                
Bezug
Excel: zur Nachfrage
Status: (Frage) beantwortet Status 
Datum: 23:20 Mo 09.07.2007
Autor: pamela

Also ich muss das in VBA programmieren, also aus der Datei2, die ich schon geschrieben habe, soll ich ein Weg-Zeit-Diagramm machen, nur jenachdem welche Anfangswerte man dort eingibt verändert man die Tabellenlänge, und das Programm soll die Länge selbst erkennen und dazu das Diagramm zeichnen. Also ein Buttom mit Diagramm dort soll man einfach nur draufklicken, das Programm sucht sich die Daten und erstellt dazu das Diagramm.

Bezug
                        
Bezug
Excel: Antwort
Status: (Antwort) fertig Status 
Datum: 20:35 Di 10.07.2007
Autor: Walty


> Also ich muss das in VBA programmieren, also aus der
> Datei2, die ich schon geschrieben habe, soll ich ein
> Weg-Zeit-Diagramm machen, nur jenachdem welche Anfangswerte
> man dort eingibt verändert man die Tabellenlänge, und das
> Programm soll die Länge selbst erkennen und dazu das
> Diagramm zeichnen. Also ein Buttom mit Diagramm dort soll
> man einfach nur draufklicken, das Programm sucht sich die
> Daten und erstellt dazu das Diagramm.

achso,

ich bin kein VBA-crack, daher suche ich immer die Unterstützung des Makro-Recorders
- da muss man zumindest nicht mehr aufwändig nach den Objekten, Methoden und
wichtigen Eigenschaften suchen...

zuerst würde ich das Ende der Daten in Spalte B suchen

1: for i=6 to 65000
2:   if (!activeWorksheet.cells(i,2) ) '# Rückgabewert war leer
3:     intLetzteZeile = i-1            '# Zeilennummer der letzten Zelle speichern
4:     Exit For                        '# Schleife verlassen
5:   end if
6: Next


Dann liefert mir das Makro folgenden Code:
1:     Charts.Add
2:     ActiveChart.ChartType = xlXYScatterLines
3:     ActiveChart.SeriesCollection(1).XValues = "=Tabelle1!R6C4:R36C4"
4:     ActiveChart.SeriesCollection(1).Values = "=Tabelle1!R6C2:R36C2"
5:     ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1"

um das ganze etwas "bezüglicher" zu machen hab ichs 'n bischen umgeschriebt
1: Set MyChartObj = ActiveWorkbook.Charts.Add
2: MyChartObj.ChartType = xlXYScatterLines
3: MyChartObj.Activate.

bei meiner version werden aber anscheinend keine Datenreihen angelegt,
das ist aber auch gut so, da weiss ich wenigstens was da ist:
1: MyChartObj.SeriesCollection.NewSeries
2: MyChartObj.SeriesCollection(1).Values = Worksheets(1).Range(Worksheets(1).Cells(6, 2), _
3: Worksheets(1).Cells(intLetzteZeile, 2)) 'Range-Objekt, Spalte B, der Weg, die Y-Werte
4: MyChartObj.SeriesCollection(1).XValues = Worksheets(1).Range(Worksheets(1).Cells(6, 4), _
5:  Worksheets(1).Cells(intLetzteZeile, 4)) 'Range-Objekt, Spalte D, die Zeit, die X-Werte

Wenn ich jetzt kein extra Tabellenblatt für das Diagramm haben will,
dann verschiebe ich das Diagramm mit der "location"-Methode in das Tabellenblatt 1:
1:
2:  MyChartObj.Location Where:=xlLocationAsObject, Name:="Tabelle1" 

leider geht durch Seiteneffekte dabei mein Kontext/Objekt irgendwie verloren,
also hole ich ihn mir wieder zurück:
1:
2:  Set MyChartObj = ActiveChart 


für die Eigenschaften des Diagramms kannst Du dann mit dem Makrorecorder
und dem Diagramm-Assistenten rumspielen, bis Du das Gewünschte gefunden hast

hier nochmal vollständig:
1: Sub Makro_make_Diagramm()
2: Dim i, intLetzteZeile As Long
3: Dim MyChartsObj As Object
4:
5: Worksheets("Tabelle1").Activate
6:
7: For i = 6 To 65000
8:   If (ActiveSheet.Cells(i, 2) = "") Then '#Rückgabewert leer
9:      intLetzteZeile = i - 1              '#Zeilennumerder letzten Zeile speichern
10:      Exit For                            '#damit nicht bis zum Ende geloopt wird
11:   End If
12: Next
13:
14: Set MyChartObj = ActiveWorkbook.Charts.Add
15: MyChartObj.ChartType = xlXYScatterLines
16: MyChartObj.Activate
17: MyChartObj.SeriesCollection.NewSeries
18: MyChartObj.SeriesCollection(1).Values = Worksheets(1).Range(Worksheets(1).Cells(6, 2), Worksheets(1).Cells(intLetzteZeile, 2))
19: MyChartObj.SeriesCollection(1).XValues = Worksheets(1).Range(Worksheets(1).Cells(6, 4), Worksheets(1).Cells(intLetzteZeile, 4))
20:
21: 'ActiveChart.SeriesCollection(1).Name =
22: MyChartObj.Location Where:=xlLocationAsObject, Name:="Tabelle1"
23: Set MyChartObj = ActiveChart
24: With MyChartObj
25:         .HasTitle = True
26:         .ChartTitle.Characters.Text = "WegZeit Diagramm"
27:         .Axes(xlCategory, xlPrimary).HasTitle = True
28:         .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "t in s"
29:         .Axes(xlValue, xlPrimary).HasTitle = True
30:         .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "s in m"
31:     End With
32:     With MyChartObj
33:         .HasAxis(xlCategory, xlPrimary) = True
34:         .HasAxis(xlValue, xlPrimary) = True
35:     End With
36:     MyChartObj.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
37:     With MyChartObj.Axes(xlCategory)
38:         .HasMajorGridlines = False
39:         .HasMinorGridlines = True
40:     End With
41:     With MyChartObj.Axes(xlValue)
42:         .HasMajorGridlines = True
43:         .HasMinorGridlines = False
44:     End With
45: last = ActiveSheet.Shapes.Count '# zugriff auf Positionierung hat man über "shape"-Objekt aus der
46:                                 ' shapes-Auflistung - die letzte dazugekommene shape muss mein
47:                                 ' Diagramm sein - und das will ich nach rechts verscheiben
48: ActiveSheet.Shapes(last).Left = ActiveSheet.Columns(15).Left 
49: ' dieser kram entfällt, genau wie oben die ".location"-Methode, wenn man das Diagramm auf einem eigenen Arbeitsblatt stehen lässt.
50: End Sub



hth, (ein Hoch auf den Makrorecorder !!!)
Gruß Walty

btw: wennjemand sich mit der Objekthierarchie auskennt, kanner das bestimmt noch schöner machen, diese Lösung ist mehr oder weniger aus dem MR abgeschrieben.
Btw2: du solltes deine Makros Auto1 und 2 nochmal genau Ansehen, da stimmt irgendwas nicht mit der Zuordnung zu Arbeitsblättern, und die Abfragen sehen auch nicht in Ordnung aus, ohne dass ich Dir das jetzt konkret sagen kann... (z.B negative Geschwindigkeit wird nicht abgefangen)

Bezug
                                
Bezug
Excel: Danke
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:44 Mi 11.07.2007
Autor: pamela

Hi Walty, danke erst mal für deine Hilfe, hoffe ich kann das auch mit dem Recorder, probier es gleich mal aus. Danke!!!!!  :)

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Tabellenkalkulationen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]