Originariamente inviato da kalosjo
semplicemente "01012001" non è una data quindi il format sbaglia
Cioè, non è un formato supportato?
01012001 per diventare 05/10/4670 come viene interpretato?
...non fraintendetemi...voglio solo capire!
Originariamente inviato gibra
Si diventa pazzi quando ci si inventa codice astruso, e non si conoscono le 'regole della programmazione'.
Non serve alcuna nuova funzione, ci mancherebbe, con tutte quelle che esistono già.
Basta studiarne l'uso, invece di arrampicarsi sugli specchi.
Ho cercato cosa studiare...ma forse ho cercato male...help me!!! 
Per escocat, copio/incollo il codice in vb.net che ho scritto:
codice:
Dim dataconv As String = TextBox_data.Text
Try
Dim formats As String() = New String() {"ddMMyy", "ddMMyyyy", "dd/MM/yy"}
Dim result = DateTime.ParseExact(dataconv, formats, _
System.Globalization.CultureInfo.CurrentCulture, _
System.Globalization.DateTimeStyles.None)
TextBox_data.Text = CStr(result)
Catch ex As System.Exception
'messaggio di avviso
End Try
Dove 'formats' è la "maschera" che contiene i formati in input, qui ti puoi sbizarrire... 
Comunque, partendo dal presupposto di kalosjo, in VBA per ora ho scritto questo:
codice:
Private Sub test_data()
Dim a(2) As String
Dim a_out As String
a(0) = "010101"
a(1) = "01/01/01"
a(2) = "01012001"
For i = 0 To UBound(a)
a_out = ""
Select Case Len(a(i))
Case 6
a_out = Format(a(i), "00/00/00")
a_out = Format(a_out, "dd/mm/yyyy")
Debug.Print "caso 010101 : " & a(i) & " = " & a_out
Case 8
If Mid(a(i), 3, 1) = "/" Then
a_out = Format(a(i), "dd/mm/yyyy")
Debug.Print "caso 01/01/01: " & a(i) & " = " & a_out
Else
a_out = Format(a(i), "00/00/0000")
Debug.Print "caso 01012001: " & a(i) & " = " & a_out
End If
End Select
Next i
End Sub
Il risultato è:
caso 010101 : 010101 = 01/01/2001
caso 01/01/01: 01/01/01 = 01/01/2001
caso 01012001: 01012001 = 01/01/2001
Al codice manca la verifica se la stringa è una data valida, che ho omesso per non allungare ancora il post...
Scusate la lunghezza, l' OT in vb.net...e l' ignoranza...ringrazio per ogni parere/consiglio/spunto che mi vorrete dare.
Vincenzo