Hallo Werner,
ich habe mir Dein Problem auch mal angesehen.
scheinbar schreibe ich irgendwie wirr, jedenfalls wird meist
irgendetwas falsch verstanden. Das kommt wahrscheinlich daher,
das ihr immer nur Absätze beantwortet.
Ja, mache ich auch. Wenn Du mehrere Fragen hast und ich kenne nur zu einer davon die Antwort, dann beantworte ich diese. Warum soll ich kommentieren, was ich nicht weiß?
Der Code, wie ich ihn abgedruckt habe ist völlig OK.
Das diskutieren wir mal. 
Ich will
durchaus eine Meldung haben, wenn ich ein File überschreiben
möchte.
Ist OK, dazu gibt’s am Ende den Code.
Einziges Problem ist, das wenn das File keine Endung hat, wird
in meinem Code eine angefügt. Es soll aber ja trotzdem
überschrieben werden.
Auch OK.
Ich habe dafür gesorgt, das automatisch immer eine bestimmte
Endung angefügt wird, wenn ich einen Dateinamen eingebe(!),
aber wenn ich ihn anklicke zum überschreiben, gebe ich ihn ja
nicht ein, wohin wandert dieser Name dann (Variable???). Oder
kann man sagen, wenn .Flag = &H2 Then … ???
Wenn ich das weiss ist alles OK, dann wüsste ich bescheid.
Dazu müsst ihr aber auch mal den Code anschauen, was der tut
und nicht immer gleich alles neu abwickeln!!!
Nein, den Code muß ich mir dazu eigentlich nicht ansehen. 
Aber tun wir’s trotzdem mal. …
On Error Resume Next
überflüssig und schädlich. Du merkst nicht, wenn Dein Code Fehlerhaft ist.
'Dateifilter für die Formate
cdlDaten.Filter = "Alle Dateien (\*.\*) |\*.\*|Liniendateien (\*.lne) |\*.lne|"
Wieso? Entweder alle, oder nicht alle.
'setzen von Zusatzoptionen beim Öffnen/Schließen
cdlDaten.Flags = &H2 + &H4 + &H1000
'Öffnen des Menüs Öffnen von Dateien
cdlDaten.CancelError = True
überflüssig
cdlDaten.ShowSave
OK, der Befehl wird gebraucht. 
'Format für Dateiendung wird festgelegt
Pos = 0
Pos = InStr(cdlDaten.FileName, ".") 'Finden der Position des Dezimalpunktes
If Pos = 0 Then
cdlDaten.FileName = cdlDaten.FileName & ".lne"
End If
Pos = 0
'Programm läuft trotz Fehlermeldung bei ABBRECHEN weiter, hier erfolgt Fehlerprüfung und der Sprung zurück ins Hauptmenü
If Err 0 Then
Exit Sub
End If
überflüssig. Trage in der Eigenschaft ‚DefaultExt‘ ein: .lne und das Steuerelement erledigt das für Dich.
If cdlDaten.FileName "" Then
Open cdlDaten.FileName For Output As #1
End If
Richtig, genau deshalb brauchst Du ‚Error‘ nicht.
Jetzt noch mein ‚Alternativcode‘. 
cdlDaten.Flags = cdlOFNOverwritePrompt
cdlDaten.ShowSave
If cdlDaten.FileName "" Then
Open cdlDaten.FileName For Output As #1
End If
Einträge in den Eigenschaften von cdlDaten:
CancelError - False
DefaultExt - .lne
Filter - (*.lne)|*.lne|
Verhalten:
Commondialog wird geöffnet, Alle Dateien mit der Endung .lne werden angezeigt. Du kannst einen Dateinamen eingeben, der automatisch mit der Endung .lne ergänzt wird, falls der Name keine oder eine andere Endung hat. Gibst Du einen Namen an, der bereits vorhanden ist, wirst Du gefragt, ob die Datei überschrieben werden soll.
Sagst Du da nein, oder gibst keinen Namen an, bleibt .Filename = „“.
Das war’s doch, was Du wolltest. Den ganzen Code, den Du geschrieben hast, brauchst Du nicht. … Und das wolltest Du gar nicht wissen? Eigenartig.
Gruß, Rainer