Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diverse Fragen

Diverse Fragen
02.03.2008 12:15:00
Manuel
Hallo,
ich habe folgendes Probleme und bräuchte eure Hilfe.
1.) Mit der dem Befehl:
Do
With Sheets("An_Abfahren").Range("B65536").End(xlUp)
.Offset(1, 0) = CDate(TextBox1.Value)
.Offset(1, 2) = "K" & j
If Me.Controls("An_" & j) "" Then
.Offset(1, 3) = Me.Controls("An_" & j)
Else
.Offset(1, 3) = "0"
End If
.Offset(1, 4).FormulaR1C1 = "=rc[-1]+rc[-4]"
...
springe ich in eine Schleife, die mir die Daten (verschiedene Textfelder) die ich in einem Formular eingetragen habe jeweils in die erste leere Zeile am Ende einer Tabelle überträgt.
Num möchte ich allerdings - da ich diese Daten zum Rechnen in einer späteren Formel brauche -, dass die Uhrzeit ("=rc[-1]+rc[-4]") auch in eine Variable "f" geschrieben wird. wie muss ich das in VBA formulieren?
Ich bekomme es leider nicht hin, da ich bei meinen versuchen stets einen Laufzeitfehler (z.B. Typen unverträglich) erhalte. Liegt es u.U. daran, dass ich für die Zellen ".offset(1,0)" und ".offset(1,3)" kein Zahlenformat festgelegt habe? Wenn ja, wie definiere ich dies? In (..(1,0)) soll das Datum in (dd.mm.yyyy) stehen und in (..(1,3)) ggf. eine Uhrzeit im Format (hh:mm) stehen, sodass ich in (..(1,4)) aus diesen beiden auch die Summe bilden kann, sodass hier steht (dd.mm.yyyy hh:mm) bzw. Excel verarbeitet dies ja als Dezimalzahl.
2.)
=WENN(F250<H250;H250-F250;WENN(F250>H250;(H250+1-F250);WENN(UND((H250-F250)=0;I250=0);0;WENN(UND((H250-F250)=0;I250=1);1))))
Wie muss der Befehl in VBA aussehen, wenn ich folgende Excel-Formel in eine Zeile schreiben möchte und hierbei entweder mit relativen Bezügen (z.B. rc[-2]) oder variablen (siehe oben: f und h als Werte in den Zellen F250 und H250) rechnen möchte. Es können keine absoluten Zellbezüge sein, da bei jedem Durchlauf der Do-Schleife 6 neue Zeilen geschrieben werden und Excel somit bei jedem Aufruf der Prodzedur eine neue Ausgangszeile sucht; daher arbeite ich ja - hoffentlich auch richtig - mit dem Befehl ".offset(...)".
Die Formel soll in Zelle J? stehen, dass heißt es müsste in konkreten Fall mit:
.offset(1,9).formula = "=if(
losgehen. Aber ab da weiß ich leider nicht weiter.
Danke schomal für eure Hilfe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diverse Fragen
02.03.2008 17:41:21
closer
Hallo Manuel,
die Formate für Datum und Uhzeit kannst du in den Spalten/Zellen in der Tabelle festlegen. Geht aber auch er VBA. Problem bei deinem Code ist, dass die Textbox-Inhalte zum Teil als Text in die Zellen geschrieben werden. Dadurch gibt es Probleme in den Formeln mit Additionen/Subtraktionen. Alle numerischen Textboxinhalte müssen vor dem Zurückschreiben in Zellen in Zahlen bzw. Datumswerte umgewandelt werden.
Gruß
Franz

'1.) Datum/Uhrzeit korrekt in die Zellen Schreiben:
'Das Format der Zellen kannst du auch in der Tabelle für die Spalten festlegen
Dim f As Date
Do
With Sheets("An_Abfahren").Range("B65536").End(xlUp)
.Offset(1, 0).NumberFormat = "DD.MM.YYYY"
.Offset(1, 0) = CDate(TextBox1.Value)
.Offset(1, 2) = "K" & j
If Me.Controls("An_" & j)  "" Then
.Offset(1, 3).NumberFormat = "hh:mm"
.Offset(1, 3) = CDate(Me.Controls("An_" & j))
Else
.Offset(1, 3) = 0
End If
.Offset(1, 4).NumberFormat = "DD.MM.YYYY hh:mm"
.Offset(1, 4).FormulaR1C1 = "=rc[-1]+rc[-4]"
f = .Offset(1, 4).Value
'2. Formel per VBA generierem, Offset ist von Spalte B gerechnet.
'Der Offset in den eckigen Klammern muss dann von Spalte K aus berechnet werden.
.Offset(1, 9).Formula = "=IF(RC[-5]  RC[-3]," _
& "(RC[-5]+1- RC[-3]),IF(AND((RC[-5] - RC[-3])=0,RC[-2]=0),0," _
& "IF(AND((RC[-5] - RC[-3])=0,RC[-2]=1),1))))"
End With
Loop


Anzeige
AW: Diverse Fragen
02.03.2008 23:09:00
Manuel
Hallo Franz,
vielen Dank für die Hilfe. Bin damit jetzt wunderbar klargekommen.
Besten Dank u Gruß Manuel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige