Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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
Inhaltsverzeichnis

Unterschd.zwi.ExcelForml.TexT&VBAWorksht.func.Text

Unterschd.zwi.ExcelForml.TexT&VBAWorksht.func.Text
12.10.2015 18:59:29
ExtremeExceling
Scheinbar gibt es Utnerschied zwischen der Excel Funktion Text()
und der WorksheetFunction.Text(Now(), "TT.MM.JJJJ hh:mm:ss") in VBA
Ziel eine Funktion in VBA die Einfach das Aktuelle oder ein Datumswert wie es die Excel-Formel:
=TEXT(JETZT(); "TT.MM.JJJJ hh:mm:ss")
dastellen würde, gemäß der eingestellten Formatierung dastellt
Hat jemand eine einfache Idee?
ich freue mich auf Eure Antworten , insbesondere über VBA Beispiele :-)
Hier ein kleines VBA beispiel.
Public Function aktuelleUhrzeitTest() As String
Dim ergebnis As String
On Error Resume Next
ergebnis = Now() & vbCrLf 'bringt nicht das Gewünschte ergebnis
ergebnis = ergebnis & ("= Now()" & vbTab & ergebnis) & vbCrLf & vbCrLf
'so sollte es eigentlich aussehen
'Da nimmt VBA entweder nur Datum oder nur Uhrzeit
ergebnis = ergebnis & WorksheetFunction.Text(Now(), "TT.MM.JJJJ hh:mm:ss") & vbCrLf
ergebnis = ergebnis & (" WorksheetFunction.Text(Now(), ""TT.MM.JJJJ hh:mm:ss"")" & vbTab &   _
_
ergebnis) & vbCrLf & vbCrLf
'das mischt VBA die ausgabe der Uhrzeit mit der Formatierungseinstellung, und gibt somit  _
auch nicht das gewünschte Ergebnis zurück
ergebnis = ergebnis & Format(Now(), "TT.MM.JJJJ hh:mm:ss") & vbCrLf
ergebnis = ergebnis & ("=Format(Now(), ""TT.MM.JJJJ hh:mm:ss"")" & vbTab & ergebnis)
aktuelleUhrzeitTest = ergebnis
End Function

Public Function aktuelleUhrzeit()
'So sollte die Funktion eigentlich aussehen
aktuelleUhrzeit = WorksheetFunction.Text(Now(), "TT.MM.JJJJ hh:mm:ss")
End Function

Sub macheEtwas()
MsgBox (aktuelleUhrzeitTest)
'zum vergleich so arbeitet die Funktion Text in Excel, man sieht hier das die Methode mit  _
der Formel arbeitet
'oder dierekt mit dem Format des Zellwertes
Range("A3").FormulaR1C1 = "=TEXT(NOW(), ""TT.MM.JJJJ hh:mm:ss"")"
MsgBox ("Der Wert aus der Excel zelle A3: " & Range("A3").Value)
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unterschd.zwi.ExcelForml.TexT&VBAWorksht.func.Text
12.10.2015 19:09:33
Hajo_Zi
Du schreibst Text in die Zelle, das ist die Zellformatierung Egal.

AW: Unterschd.zwi.ExcelForml.TexT&VBAWorksht.func.Text
12.10.2015 19:49:51
ExtremeExceling
ich hatte das auch gesehen, aber in Bezug was ich genau dagestellt hatte, da hast Du natürlich Recht :-) Danke.
Grüße

AW: Unterschd.zwi.ExcelForml.TexT&VBAWorksht.func.Text
12.10.2015 19:16:52
fcs
Hallo ExtremeExceling,
Excel-VBA spricht/versteht Englisch, und die Verbindung zur Einstellung im Betriebssystem funktioniert mehr oder weniger gut.
Des wegen müssen in VBA bei den Formaten die US-Kennbuchstaben, Dezimalkennzeichen und 1000er-Trennzeichen verwendet werden.
Gruß
Franz
Sub TestTime_1()
Dim ergebnis As String
ergebnis = Now()
MsgBox ergebnis 'verwendet automatisch Einsstellung des Betriebssystems
End Sub
Sub TestTime_2()
Dim ergebnis As String
ergebnis = Format(Now(), "DD.MM.YYYY hh:mm:ss") 'VBA-Funktion
MsgBox ergebnis
End Sub
Sub TestTime_3()
Dim ergebnis As String
ergebnis = Application.WorksheetFunction.Text(Now(), "DD.MM.YYYY hh:mm:ss") ' _
Tabellenblattfunktion
MsgBox ergebnis
End Sub

Anzeige
AW: Unterschd.zwi.ExcelForml.TexT&VBAWorksht.func.Text
12.10.2015 19:39:42
ExtremeExceling
DANKE
Ok jetzt hab ichs kapiert :-)
mein Fehler war die Deutsche Schreibweise des Tages und Jahres
"TT.MM.JJJJ hh:mm:ss"
Ihre/Deine Antwort war die richtige
"DD.MM.YYYY hh:mm:ss"
Anmerkung:
Der name ExtremeExceling ist abgeleitet von Agilen Vorgehensmodell dem programmierung mit ExtremeProgrammig.
Eines der Hauptmerkmale von dem ExtremeProgramming ist. Das 2. Programmierer an einem Arbeitsplatz sitzten. Wobei der unerfahrenere an der Tatatur sitzt.damit dieser schneller lernt :-)
4 Augen sehen mehr als 2 normalerweise :-)
Naja wir hatte in dem einen Fach als es um Excel ging gefragt ob man das auch bei der prüfung anwenden kann. Dann hatte der Dozent scherzhalber gefragt ihr mein Extreme Exceling in der Prüfung :-)

Anzeige
Die einfachste Variante wäre es wohl, ...
12.10.2015 20:38:47
Luc:-?
ExtremeExcelling,
in A1 =JETZT() (Zelle entsprechend formatiert!) und in eine andere Zelle dann =GetText(A1) zu schreiben. Die UDF GetText könnte dann so aussehen:
Function GetText(Bezug As Range): GetText = Bezug.Text: End Function
Mit der folgenden EreignisProzedur kannst du gewisse Unterschiede feststellen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "OrFmt: " & vbTab & Target.NumberFormat & vbLf & _
"LoFmt: " & vbTab & Target.NumberFormatLocal & vbLf & _
"TxWrt: " & vbTab & WorksheetFunction.Text(Target, "general") & vbLf & _
"DZTxt: " & vbTab & WorksheetFunction.Text(Target, "[$-407]dd.mmm yyyy, hh:mm:ss")
End Sub
Gruß, Luc :-?
Besser informiert mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige