Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
vba soll formel schreiben
11.01.2009 18:18:00
michael
hallo
alle jahre wieder erstelle ich meine stundenzettel fürs ganze jahr. bis dato habe ich die alten dateien kopiert und das datum von hand geändert.
da ich jetzt die ersten schritte in vba gemacht habe, reizt es mich ein programm auf zu stellen.
einige routinen habe ich mir aus den archiven zusammen gesucht aber das schreiben einer formel in eine zelle ist immer fehlerhaft.
ich denke doch das mir da jemand helfen kann. danke im vorraus.
folgendes soll in der tabelle später stehen: z.B.
zelle (F7): datum 22.10 von diesem jahr solange bis bei zelle ( F?) 21.11 steht ok das habe ich noch hinbekommen.
zelle (E7) formel =TEXT(F7;"ttt") solange wie in f das datum steht.
in spalte d werden die überstunden ermittelt die projektstunden stehen in den spalten G, H, ... beliebig lang. vba soll folgende formel schreiben: zelle (D7) =WENN(A7<0;ABS(A7);"")
in spalte c wird der urlaub festgestellt. wenn in zelle (G?) ein "U" ist das urlaub die Formel lautet:
zelle (C7) =WENN(G7="U";1;"")
als kontrolle wieviel stunden an diesem tag gearbeitet wurden, wird in zell (B7) =SUMME(G7:V7) geschrieben.
in spalte a stehen die normalstunden für diesen tag. freitag 6,5 std. sonst 8,5 sa + so frei - der stunden di e geleistet wurden.
die formel A7 =WENN(ODER(WOCHENTAG(F7)=7;WOCHENTAG(F7)=1);"";WENN(WOCHENTAG(F7)<6;8,5;6,5)-SUMME(G7:Y7))
diese formeln stehen in alle zellen solange in f ein datum steht.
wenn ich die formeln als string zusammen baue und in einer msgbox anzeige stimmt sie, aber beim einschreiben mit formula gibt es eine fehlermeldung
danke im vorraus michael

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba soll formel schreiben
11.01.2009 21:17:00
Michael
danke hajo
da sind gute ansätze für meine verbesserungen. ich war auf deiner homepage und habe gute beispiele gefunden.
mein problem ist das ich die stundenliste z.b. vom dez 09 mit vba bereits erstellen will und wenn die zeit gekommen ist trage ich die projekte und zeiten ein und der rest rechnet sich von selber. so gings die ganze zeit. bedingte formatierung mit vba zu schreiben habe ich im moment noch grössere probleme.
der ansatz von ransi geht da mehr in meine richtung.
ich könnte mir noch die feiertage und schulferien eintragen lassen. wäre für mich auch noch hilfreich.
aber vorerst mal danke
michael
Anzeige
formulalocal
11.01.2009 18:22:00
ransi
HAllo
Ein Beispiel:
range("c7:c100").formulalocal="=WENN(G7=""U"";1;"""")"
ransi
AW: formulalocal
11.01.2009 21:22:00
Michael
danke super die formel klappt und ist noch schneller als eine schleife.
aber bitte noch zum verständnis wie würde der befehl in einer schleife aussehen wobei ich die zelladressen zusammen bauen muss?
im vorraus danke michael
AW: formulalocal
11.01.2009 21:50:10
Daniel
Hi
es macht keinen Sinn, sowas zu tun.
und wenn, dann würde man die Formel möglichst in der Z1S1-Schreibweise für die Zellbezüge angeben, denn
1. ist bei dieser Schreibweise eine Veränderung nicht erforderlich, die o.g. genannte Formel würde in der Z1S1-Schreibweise in jeder Zelle gleich sein:

range("c7:c100").formular1c1local="=WENN(ZS(4)=""U"";1;"""")"


2. werden in der Z1S1-Schreibweise sowohl Spalten wie auch Zeilen als Zahlen angegeben, was die Programmierung deulich vereinfacht, das könnte dann zum Beispiel so aussehen, hier wird der Schleifenzähler i in die formel als SpaltenNr eingebaut:


For i = 1 to 10
Cells(i,2).formular1c1local="=WENN(ZS(" & i & ")=""U"";1;"""")"
next


Gruß, Daniel

Anzeige
AW: formulalocal
11.01.2009 21:59:17
Michael
hi
danke daniel
das macht sinn bei anderen formeln die noch kommen werden.
ich hatte es immer mit dem befehl versucht
Cells(i,2).formula ="=WENN(ZS(" & i & ")=""U"";1;"""")"
liegt darin der fehler das ich nicht das local geschrieben habe?
vorerst mal danke für die hilfe
AW: formulalocal
11.01.2009 22:17:50
Daniel
hi
in denem Fall musst du es als "FormulaR1C1Local" schreiben.
das R1C1 steht für "Formel in Z1S1-Schreibweise" (sonst "A1-Schreibweise")
und das "Local" steht für "Formel in Landestypischer (idR deutsch) Schreibweise" (sonst international)
du hast also für ".Formla" 4 Varianten zu auswahl:
.Formula
.FormulaR1C1
.FormulaLocal
.FormulaR1C2Local
was du verwendest, ist letzlich egal, wenn allerdings die Datei auch mal auf einem Rechner mit einer anderen Ländereinstellung laufen soll, solltest du die Internationale Schreibweise verwenden.
ich nehem meistens ".FormulaR1C1", weils für die Programmierung am praktischtens ist.
die Formeln kann ich ja direkt in Excel entwickeln und testen, wenn die Formel passt, lasse ich mir den Formeltext mit "?Selection.FormulaR1C1" im Direktfenster anzeigen und kopiere ihn ins Makro.
Gruß, Daniel
Anzeige
AW: formulalocal
11.01.2009 22:46:45
Michael
danke michael
Wenn du nur Formula statt ~Local angibst,...
11.01.2009 22:25:00
Luc:-?
...Michael,
musst du die Formel als Text in US-Notation angeben. Das fkt mit jeder regionalen (Local) Einstellung. Sonst musst du (bei dt Xl) FormulaLocal verwenden. Aber das (und die Hintergründe) ist in diesem und anderen Foren schon zigmal beschrieben worden... (STFA!)
Gruß Luc :-?
Besser informiert sein!
AW: Wenn du nur Formula statt ~Local angibst,...
11.01.2009 22:48:00
Michael
danke
aber dafür bin ich auch anfänger was vba betrift
Dann erst recht das Archiv nutzen! ;-) owT
11.01.2009 22:55:48
Luc:-?
:-?
@Luc
12.01.2009 08:01:00
Oberschlumpf
Moin Luc
Was bitte bedeutet
(STFA!) ?
Deine ...ähh...Schreibfaulheit in allen Ehren...solange es denn verständlich bleibt ;-)
Ciao
Thorsten
Anzeige
Search The F*mous Archive (owT)
12.01.2009 08:48:00
RS

...übrigens ist das keine Schreibfaulheit,...
15.01.2009 18:07:21
Luc:-?
...Thorsten,
sondern ein in (englischen) Foren gängiges (derbes → ...ing statt ...mous!) Kürzel. Mich wundert nur, dass du das nicht kennst - bist doch auch nicht erst seit gestern dabei und wir hatten letzten Sommer eine umfangreiche Diskussion zu dieser Thematik - quasi "Faulheit" von Fragestellern... ;-)
Gruß Luc :-?
Besser informiert sein!

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige