PDA

Vollständige Version anzeigen : Excel - SendKeys doch anders als normale? (M$ Office 2003)


jokergermany.de.vu
12.09.2011, 16:26
Die Datie ist zu groß als Anhang:
http://www.megaupload.com/?d=1Y4DRWS9

Erstmal die Vorgeschichte, vielleicht wir auch nen vorproblem gelöst, dann ist das neue Problem nicht mehr so wichtig^^

1.
Ich habe eine Exeldatei mit 14652 Werten pro Zeile.

Zeile 1: Systemzeit
Zeile 2: Zeit des Sensors (unwichtig)
Zeile 3: Temp0
Zeile 4: Luftfeuchte
Zeile 5: Temp7

Unter anderem soll ich ein Diagramm ab dem Serverumzug erstellen.
(Ist etwa ein Quartal)
In der X Achse soll jede Beschriftung eine KW entsprechen und auch so bezeichnet konnte zwar einstellen, dass jede Woche drinsteht, allerdings steht sie mit Datum dadrin. Da soll aber KW stehen...
(Im Sheet Diagramm die Diagramme mit "am Cray-Server-Sensor 2011 seit dem Umzug" im Titel)

2.
Deswegen habe ich eine 6. Zeile mit "Systemzeit KW erstellt", in welcher z.B. mit "=KALENDERWOCHE(A2;2)" die KW festgelegt wird.
Versuche ich dann aus
Systemzeit KW + Temp0 + Temp7 ein Diagramm zu machen werden manche Kalenderwochen doppelt oder dreifach aufgezählt. Vermutlich zu viele Werte.

3.
Deswegen habe ich vor von den Werten von jedem Tag (immer unterschiedlich viele Werte) einmal das Maximum, das Minimum und den Mittelwert zu bestimmen.
Da ich irgendwann sowieso VBA lernen muss (aus der Schulzeit hab ich es schon wieder vergessen -__- ) und ich so etwa 4000 Werte verarbeiten muss, habe ich entschieden das per VBA zu machen.

Ich habe mich erstmal nur an die Basics rangetraut.
Wie wähle ich alle Werte von einem bestimmten Datum (z.B. 7.09.2011) der Spalte A aus?
Da die "Alle Suchen" funktion per Makro nicht funktioniert, wollte ich es per Tasten machen:
Columns("A:A").Select
Application.SendKeys "^f" + "07.09.2011" + "{DOWN}" + "%l" + "^A" + "%{F4}", True

Führt man dies händisch aus, makiert er alle gefundenen einträge und schließt dann suche und Trotzdem bleiben die gefundenen einträge makiert.

Bei dem VBA Script nach dem Beenden leider das makiert, was bei starten des Makros makiert war.

So, ich hoffe ihr könnt mir helfen :)

EarlFred
12.09.2011, 16:47
Hallo Name?,

Die Datie ist zu groß als Anhang:
Ich besuche keine Upload-Sites. Mach die Datei einfach kleiner.

mit "=KALENDERWOCHE(A2;2)" die KW festgelegt wird.
Die Funktion rechnet falsch. Siehe http://www.excelformeln.de/formeln.html?welcher=7

Den Rest verstehe ich nicht.

Dann verstehe ich wieder etwas:
Wie wähle ich alle Werte von einem bestimmten Datum (z.B. 7.09.2011) der Spalte A aus?
Das "Selektieren" ist nie notwendig (die 0,00001% der Fälle, wo es doch notwendig ist, lass ich mal außen vor), also vermutlich auch bei Dir nur ein lästiger, verlangsamender, fehlerprovozierender Zwischenschritt. Also lass ihn doch weg und erklär uns lieber, was Du mit der "Auswahl" anstellen willst.

Mit SendKeys sollte nur gearbeitet werden, wenn alles andere versagt. Vom Versagen sind wir aber in diesem Fall so weit weg wie der Nord- vom Südpol.

Grüße
EarlFred

jokergermany.de.vu
12.09.2011, 17:02
Die Auswahl soll (der übersicht halber am besten ins Sheet "makro") in eine neue zeile kommen.

Im neue Sheet gäbe es dann:
Systemzeit KW: 3* "=KALENDERWOCHE({Einer der Felder aus der Auswahl};2)"
Temp0: "=max(Auswahl, aber anstatt Spalte A soll Spalte C genommen werden)" "=min(Auswahl, aber anstatt Spalte A soll Spalte C genommen werden)" "=Mittelwert(Auswahl, aber anstatt Spalte A soll Spalte C genommen werden)"
Luftfeuchte: "=max(Auswahl, aber anstatt Spalte A soll Spalte D genommen werden)" "=min(Auswahl, aber anstatt Spalte A soll Spalte D genommen werden)" "=Mittelwert(Auswahl, aber anstatt Spalte A soll Spalte D genommen werden)"

Temp7: "=max(Auswahl, aber anstatt Spalte A soll Spalte E genommen werden)" "=min(Auswahl, aber anstatt Spalte A soll Spalte E genommen werden)" "=Mittelwert(Auswahl, aber anstatt Spalte A soll Spalte E genommen werden)"

Also sollen pro Tag 3 Zeilen erstellt werden.
Folgendes soll errechnet werden.
1. Zeile: Mittelwert der 3 Werte
2. Zeile: Max der 3 Werte.
3. Zeile: Min der 3 Werte.

dann müsste noch ein eine Schleife geschrieben werden, die einen Tag hochgeht (inklusive Monatshochzählung) und falls es für einen Tag keine Werte gibt diesen überspringt bis keine Werte mehr da sind.
Und das ab ganze ab Zeile 10890

Ich hoffe es war halbwegs verständlich :depressed

jokergermany.de.vu
12.09.2011, 17:06
Hallo Name?,
Ich besuche keine Upload-Sites. Mach die Datei einfach kleiner.


Wie soll ich denn 14652*6 Werte
Selbst wenn ich nur die Werte die gebraucht werden nehme, bin ich immer noch bei 6,5 MB :(

Zai-Ba
13.09.2011, 10:28
Wenn ich mir das so durchlese, fällt mir dabei nor "Pivot-Tabelle" ein.
Schaut dir doch mal das Beispiel an, vielleicht kannst du damit was anfangen...

jokergermany.de.vu
13.09.2011, 11:25
Jop, Pivot sollte genau das sein, was ich Suche danke.
So langsam steig ich da auch durch :)

jokergermany.de.vu
13.09.2011, 14:35
Irgendwie wird das mit der Freundschaft mit Piviot.
Ich wollte gerne so eine Tabelle wie im Anhang.

Geht das irgendwie?

jokergermany.de.vu
13.09.2011, 16:02
So, ich hab jetzt einfach 3 Pivottabellen erstellt, ich will ja nur auf die Werte kommen...

Problem nun, er erkennt nicht mehr das die Systemzeit KW
Die X-Achse sein soll und Temp0 und Temp 7 in einem Diagramm und Luftfeuchte in einem Diagramm.

Weise ich Systemzeit KW manuell zu, fasst er die Kalenderwochen nicht zusammen -__-

Kann mir wer helfen?

Zai-Ba
14.09.2011, 10:52
Was hälst du davon?

Zum Abbilden ist es günstiger, das Feld "Daten" nach rechts in das Spaltenfeld zu ziehen, dann werden alle Werte (min, Mittel, max) nebeneinander abgebildet.