Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Spalte umwandeln nach Cdate | Herbers Excel-Forum


Betrifft: Spalte umwandeln nach Cdate von: Volker
Geschrieben am: 06.01.2012 13:35:01

Hallo zusammmen,
Ich möchte die Spalte B welche das laufende Datum des Jahres enthält nachträglich in Cdate umwandeln.
Ich fülle Die Spalte mittels:

Option Explicit

Public Sub Kalender2()

Dim WkSh_K   As Worksheet
Dim WkSh_F   As Worksheet
Dim aktJahr  As Integer
Dim dDatum   As Date
Dim lZeile   As Long
Dim lFtage   As Long

   
   Application.ScreenUpdating = False
   
   Set WkSh_K = Worksheets("Stundennachweis")   ' Kalenderblatt
   Set WkSh_F = Worksheets("Tabelle2")   ' Feiertagsblatt
   
   If IsNumeric(WkSh_K.Range("A1").Value) And _
      Len(WkSh_K.Range("A1").Value) = 4 Then
      aktJahr = CInt(WkSh_K.Range("A1").Value)
      dDatum = "01.01." & aktJahr
    Else
      MsgBox "In Zelle A1 steht keine gültige Jahreszahl - Abbruch.", _
         48, "   Hinweis für " & Application.UserName
      Exit Sub
   End If
   
   lZeile = 5
   
   Do
      WkSh_K.Range("B" & lZeile).NumberFormat = "dd.mm.yyyy"
      WkSh_K.Range("B" & lZeile).Value = dDatum
      
      For lFtage = 1 To WkSh_F.Range("A65536").End(xlUp).Row
         'If dDatum = CDate(WkSh_F.Range("B" & lFtage).Value) Then
           ' WkSh_K.Range("B" & lZeile).Interior.ColorIndex = 3
            Exit For
         'End If
      Next lFtage
          
      lZeile = lZeile + IIf(Month(dDatum) = Month(dDatum + 1), 1, 2)
      dDatum = dDatum + 1
   Loop Until Year(dDatum) > aktJahr


End Sub
Nach der übergabe, muss ich erst durch die benutzerdefinierte Formatierung TT.MM.JJJJ für die Spalte eingeben, damit ich mit der Tabelle arbeiten kann.

Ich möchte erreichen, das das Datum aus einer Userform Textbox in der Spalte B gefunden wird.
Wie gesagt nach "händischer" Umformatierung funktioniert es....

Danke und Gruß
Volker

  

Betrifft: AW: Spalte umwandeln nach Cdate von: Rudi Maintaire
Geschrieben am: 06.01.2012 13:42:00

Hallo,
Ich möchte erreichen, das das Datum aus einer Userform Textbox in der Spalte B gefunden wird.
Dann wandle das doch in ein Datum um. In der Tabelle stehen Datumswerte.
CDate(Textbox1)

Gruß
Rudi


  

Betrifft: AW: Spalte umwandeln nach Cdate von: Volker
Geschrieben am: 06.01.2012 13:52:02

Hallo Rudi,
danke für Deine Antwort.

Ich habe mich anscheinend nicht klar genug ausgedrückt :-((

Das Datum aus der Textbox wird ja gefunden, aber erst nachdem ich die Spalte per Zellformat- benutzerdefiniert- TT.MM.JJJJ formatiert habe.

Danke und Gruß
Volker


  

Betrifft: AW: Spalte umwandeln nach Cdate von: Rudi Maintaire
Geschrieben am: 06.01.2012 14:04:32

Hallo,
aber erst nachdem ich die Spalte per Zellformat- benutzerdefiniert- TT.MM.JJJJ formatiert habe.

aber das machst du doch hier schon:

          WkSh_K.Range("B" & lZeile).NumberFormat = "dd.mm.yyyy"
Gruß
Rudi


  

Betrifft: AW: dDatum = cdate("01.01." & akJahr) von: JoWe
Geschrieben am: 06.01.2012 13:46:22




  

Betrifft: AW: dDatum = cdate("01.01." & akJahr) von: Volker
Geschrieben am: 06.01.2012 14:01:08

Hallo JoWe,
Danke für die Antwort,
aber es bleibt beim alten Problem.... erst umformatieren, dann funktoniert es
Jedesmal nach dem generieren des Kalenders habe ich in der benutzerdiefiniertenZellformatierung die
laufende Zahl des Tages stehen. Diese in TT.MM.JJJJ geändert dann gehts.

Danke und Gruß
Volker


  

Betrifft: AW: geht doch!?! von: JoWe
Geschrieben am: 06.01.2012 14:37:21

Hi Volker,

habe Deinen Code mal für mich etwas vereinfacht, klappt ohne Probleme.
Ich muss da auch nix umformatieren!

Public Sub Kalender2()
     Dim WkSh_K   As Worksheet
     Dim WkSh_F   As Worksheet
     Dim aktJahr  As Integer
     Dim dDatum   As Date
     Dim lZeile   As Long
     Dim lFtage   As Long
        Application.ScreenUpdating = False
        Set WkSh_K = ThisWorkbook.Sheets(1)   ' hier habe ich mal vereinfacht Kalenderblatt
        Set WkSh_F = ThisWorkbook.Sheets(2)   ' hier habe ich auch vereinfacht Feiertagsblatt
        If IsNumeric(WkSh_K.Range("A1").Value) And _
           Len(WkSh_F.Range("A1").Value) = 4 Then
           aktJahr = CInt(WkSh_K.Range("A1").Value)
           dDatum = CDate("01.01." & aktJahr)
         Else
           MsgBox "In Zelle A1 steht keine gültige Jahreszahl - Abbruch.", _
           48, "   Hinweis für " & Application.UserName
           Exit Sub
        End If
        lZeile = 5
        Do
           WkSh_F.Range("B" & lZeile).Value = dDatum
           lZeile = lZeile + IIf(Month(dDatum) = Month(dDatum + 1), 1, 2)
           dDatum = dDatum + 1
        Loop Until Year(dDatum) > aktJahr
End Sub
Gruß
Jochen


  

Betrifft: AW: dDatum = cdate("01.01." & akJahr) von: Volker
Geschrieben am: 06.01.2012 14:37:46

Hallo Rudi,

ich kriegs nicht hin. Als letzten versuch habe ich eine Mappe hochgeladen.
Event. fimdest Du ja den Fehler.
Danke und Gruß Volker




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


  

Betrifft: AW: Spalte umwandeln nach Cdate von: dan
Geschrieben am: 06.01.2012 21:13:01

Hallo Volker,
versuch es so: Set rZelle = .Find(CDate(UserForm1.TextBox1.Value), LookIn:=xlFormulas, LookAt:=xlWhole)

"LookIn:=xlFormulas" statt xlValues.

Gruss dan, cz.

Private Sub CommandButton6_Click()
Dim rZelle  As Range
    
      If UserForm1.TextBox1.Value <> "" Then
       If IsDate(UserForm1.TextBox1.Value) Then
          With Worksheets("Stundennachweis").Range("A1:A381")
             Set rZelle = .Find(CDate(UserForm1.TextBox1.Value), LookIn:=xlFormulas, LookAt:= _
xlWhole)
             If Not rZelle Is Nothing Then
                .Range("A" & rZelle.Row).Select
             End If
          End With
       End If
    End If
    
 
                ActiveCell.Offset(0, 1) = UserForm1.ComboBox1.Value   'Dienst
                ActiveCell.Offset(0, 2) = UserForm1.TextBox2.Value    'Start
                ActiveCell.Offset(0, 3) = UserForm1.TextBox3.Value    'Ende
                'ActiveCell.Offset(0, 4) = UserForm1.TextBox4.Value    'Minuten
                'ActiveCell.Offset(0, 5) = UserForm1.TextBox5.Value    'Minuten
End Sub



  

Betrifft: AW: Spalte umwandeln nach Cdate von: Volker
Geschrieben am: 07.01.2012 11:46:52

Hallo Dan,
späten Dank für Deine Antwort, jetzt komme ich weiter.
Gruß Volker


Beiträge aus den Excel-Beispielen zum Thema "Spalte umwandeln nach Cdate"