AW: Text in Spalten
13.09.2009 23:36:45
fcs
Hallo Mario,
man kann schon was machen.
Das Hauptproblem ist dann die Spalte(n) variabel festzulegen bzw. zu suchen, in denen ein Datum steht.
Da kannst zum Beispiel problemlos die Aufteilung auf Spalten auf die jeweils selektierten Zellen einer Spalte anwenden.
Gruß
Franz
Sub aaTextinSpalten()
Dim Bereich As Range, Zelle As Range, Spalte As Long
On Error GoTo Fehler
Set Bereich = Selection 'Zellbereich mit den zu splittenden Texten
If Bereich.Columns.Count = 1 Then
Bereich.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True, DecimalSeparator:=",", _
ThousandsSeparator:="."
SpaltenAuswahl:
Set Zelle = Application.InputBox(Prompt:="Bitte Zelle in Spalte mit Datum selektieren", _
Title:="Text in Spalten - Spalten mit Datum/Zeit", _
Default:=ActiveCell.Address, Type:=8)
Spalte = Zelle.Column 'Spalte mit dem Datum/Zeit
Set Bereich = Range(Cells(1, Spalte), Cells(Rows.Count, Spalte).End(xlUp))
For Each Zelle In Bereich
With Zelle
If IsDate(.Value) Then .Value = CDate(.Text)
If Zelle.Row >= ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count Then
Exit For
End If
End With
Next
Columns(Spalte).AutoFit
' Columns(Spalte).NumberFormat = "DD.MM.YYYY hh:mm:ss"
If MsgBox("Weitere Spalte mit Datum/Zeit?", vbYesNo + vbQuestion, _
"Text in Spalten - Spalten mit Datum/Zeit") = vbYes Then
GoTo SpaltenAuswahl
End If
Else
MsgBox "Für Funktion Text in Spalten dürfen nur " & _
"Zellen in einer Spalte selektiert werden!"
End If
Err.Clear
Fehler:
With Err
If .Number 0 Then
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End If
End With
End Sub