Microsoft Excel

Herbers Excel/VBA-Archiv

String in Zahl umwandeln

Betrifft: String in Zahl umwandeln von: Michael Handtke
Geschrieben am: 15.11.2014 19:40:12

Hallo User,

folgendes Problem beschäftigt mich, vielleicht kann mir einer von Euch mit einer Lösung helfen.

In einer Exceltabelle in Zelle A1 benötige ich das aktuelle Tagesdatum, was ich druch den String =heute() aufrufe!
Das Ergebnis ist das heutige Datum 15.11.2014

Andere Zellen mit Datumsinhalt sollen sich mit Zelle A1 vergleichen und bei übereinstimmung wird eine Aktion ausgeführt!
Da aber dort nur ein String steht =heute() entsteht keine Übereinstimmung und es wird keine Aktion ausgeführt.
Wie bekomme ich nun das Datum 15.11.2014 in eine Zelle, so das ich es mit den anderen datumszellen vergleichen kann ?!

Micha

  

Betrifft: AW: String in Zahl umwandeln von: Hajo_Zi
Geschrieben am: 15.11.2014 19:44:01

Hallo Michi,

warum hast Du die anderen Daten als Text eingegeben?
Gebe Sie auch als Datum ein und das Problem ist gelöst.

GrußformelHomepage


  

Betrifft: AW: String in Zahl umwandeln von: Hajo_Zi
Geschrieben am: 15.11.2014 20:06:15

Hallo Micha,


Tabelle5

 ABCDE
115.11.20141ZahlWahr 
215. Nov1Zahl  
3'15.11.142TextFalschWahr

verwendete Formeln
Zelle Formel Bereich N/A
A1=HEUTE()  
D1=A1=A2  
B1:B3=TYP(A1)  
D3=A3=A1  
E3=A3*1=A1  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.19 einschl. 64 Bit


Gruß Hajo


  

Betrifft: AW: String in Zahl umwandeln von: Michael Handtke
Geschrieben am: 15.11.2014 20:37:17

Hallo Hajo,

zum besseren Verständnis habe ich meine Tabelle inkl. Makro mit beigepackt.
In Zelle A1 steht das heutige Datum durch den Befehl =heute()
Das Makro soll bewirken das die Zellen vor dem heutigen Datum ausgeblendet werden.
Dieses passiert erst wenn ich das Datum als Zahl in Zelle A1 per Tastertur Eingebe!
Darum benötige ich eine Neue Zelle wo nicht der Sting steht sondern wirklich Datum.

Ich hoffe du konntest meiner Ausführung folgen.

https://www.herber.de/bbs/user/93796.xlsm


Micha


  

Betrifft: AW: String in Zahl umwandeln von: Michael Handtke
Geschrieben am: 15.11.2014 20:56:33

Hallo Hajo,

Ich glaube mein Fehler sitz im VBA-Code. Wenn ich Zelle A1 Anklicke und ich dann den Cursor in die
Befehlszeile hinter =heute() setzt und enter drücke wir passiert das was soll, es werden die Spalten vor dem aktuellen Datum ausgeblendet.
Vielleicht findest Du den fehler?!
Kann man über einen Tastendruck die ausgeblendeten Spalten auch wieder einblenden ??


Micha


  

Betrifft: AW: String in Zahl umwandeln von: Matze Matthias
Geschrieben am: 15.11.2014 22:13:25

Hallo Michael,
ich hatte dir im voran gegangenen Beitrag doch gesagt das du das Datum eingeben mußt.
Die Funktion HEUTE() löst das Change Ereignis des Makros nicht aus, somit wird das Makro erst gar nicht gestartet.

Wenn du unbedingt mit =Heute() arbeiten möchtest dann kann ich dir den Doppelklick in A1 empfehlen

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim S As Range
On Error GoTo ErrExit
If Not Intersect(Target, Range("$A$1")) Is Nothing Then
Application.EnableEvents = False
Application.ScreenUpdating = False
        For Each S In Range("C4:NF4")
            S.EntireColumn.Hidden = S.Value < Target.Value
        Next

        If Target.Value = "" Then 'leere Zelle A1 zeigt ALLE an!!
        Columns("C:NF").EntireColumn.Hidden = False
        End If
 End If
ErrExit:
Cancel = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Gruß Matze


  

Betrifft: Kleiner Zusatz von: Matze Matthias
Geschrieben am: 15.11.2014 22:57:12

Hallo Michael,

A1 DP-klick zeigt alle größer Heute an
A2 DP-klick zeigt ALLES an

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim S As Range
On Error GoTo ErrExit

'Doppelklick A1 zeigt Alle größer Heute an !
If Not Intersect(Target, Range("$A$1")) Is Nothing Then
Application.EnableEvents = False
Application.ScreenUpdating = False

        For Each S In Range("C4:NF4")
            S.EntireColumn.Hidden = S.Value < Target.Value
        Next
 End If
 
 'Doppelklick A2 Zeigt ALLE an!
 If Not Intersect(Target, Range("$A$2")) Is Nothing Then
 Columns("C:NF").EntireColumn.Hidden = False
 End If
 
ErrExit:
Cancel = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Gruß Matze


  

Betrifft: AW: Kleiner Zusatz von: Michael Handtke
Geschrieben am: 16.11.2014 08:36:16

Hallo Matze
vielen Dank für deine Unterstützung und Hilfe bei meinem Problem.

Ich wollte vermeiden nach jedem Start, extra das aktuelle Tagesdatum eingeben zu müssen! Aus diesem Grunde habe ich den Befehl =heute()in Zelle A1 verwendet.

Die Lösung mit dem Klick in Zelle A1 oder A2 ist Super!! Danke, gefällt mir!

Vielleicht gibt es doch noch irgendwann eine Lösung um das Macro auotmatisch zu Starten, so das nach Prg.-Start sofort alle Spalten die vor dem Datum liegen Ausgeblendet werden.

Micha

Ps. Ich hoffe ich nerve nicht ;-)



  

Betrifft: AW: Kleiner Zusatz von: Matze Matthias
Geschrieben am: 16.11.2014 12:55:49

Hallo Michael
dann erzähl doch mal wie du mit dem Blatt arbeitest.
Benötigst du es nur einmal zum Aufruf könntest du es mit dem "Activate" Ereignis aufrufen,
(Jedesmal wenn das Blatt aufgerufen wird zb beim Blattwechsel)
Das DP-klick dann in A2 damit Alles eingeblendet wird.
Damit beim allerersten Start der Mappe das Ereignis greift muss in "dieser Arbeitsmappe" das
Blatt activiert werden.

'Unter "DieseArbeitsmappe"
Option Explicit
Private Sub Workbook_Open() 'Wechsel auf Tabelle1 auslösen!
Application.ScreenUpdating = False
Worksheets("Tabelle2").Activate
Worksheets("Tabelle1").Activate
Application.ScreenUpdating = True
End Sub
'In Tabelle1
Option Explicit
Dim S As Range
Dim Bereich As Range


Private Sub Worksheet_Activate()
On Error GoTo ErrExit
'Set S = ActiveSheet.Range("A1")
Set Bereich = ActiveSheet.Range("C4:NF4")
Application.EnableEvents = False
Application.ScreenUpdating = False

        For Each S In Bereich
        If Range("A1").Value > S.Value Then S.EntireColumn.Hidden = True
        Next
ErrExit:

Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo ErrExit
Application.EnableEvents = False
Application.ScreenUpdating = False

 'Doppelklick A2 Zeigt ALLE an!
 If Not Intersect(Target, Range("$A$2")) Is Nothing Then
 Columns("C:NF").EntireColumn.Hidden = False
 End If

ErrExit:
Cancel = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Gruß Matze


 

Beiträge aus den Excel-Beispielen zum Thema "String in Zahl umwandeln"