Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ereignis: Zahlen in vorgegebene Zeichenkette

Ereignis: Zahlen in vorgegebene Zeichenkette
08.01.2005 12:08:23
Peter
Wer kann helfen?
Ich möchte die eingegebenen Zahlen in eine Zeichenkette umwandeln. Dabei soll keine
„Ausnullung“ erfolgen. (siehe Beispiel)
Dabei müßte wahrscheinlich irgendwie die eingebene Zahlenlänge berücksichtigt werden,und anhand dieser Zahlenlänge eine entsprechende Formatierung erfolgen.
Peter

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, [a:a]) Is Nothing Then Exit Sub
On Error GoTo errorhandler
Application.EnableEvents = False
'Target = CStr(Format(Target, "000/00/0"))
Select Case Len(Target.Value)
Case 7
'z.B.1234567=1234/56/7
'Target =?
Case 6
'z.B.123456=123/45/6
Case 5
'z.B.12345=12/34/5
'Target =?
Case 4
'z.B.1234=1/23/4
'Target =?
Case Else:
Target.ClearContents
End Select
Application.EnableEvents = True
Exit Sub
errorhandler:
Target.ClearContents
Application.EnableEvents = True
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ereignis: Zahlen in vorgegebene Zeichenkette
08.01.2005 12:16:39
Josef
Hallo Peter!
Warum den mit VBA?
Das geht doch auch mit Foramtierung der Zellen!
Benutzerdefiniertes Format : ####"/"##"/"#
Und die Länge der Einträge über Daten &gt Gültigkeit &gt Textlänge
Minimun= 4 ; Maximum = 7
Gruß Sepp
AW: bin neugierig
08.01.2005 12:50:23
Peter
Hallo Sepp,
mich interessiert wie man das über VBA macht!
Habe solch ein Beispiel noch nicht gesehen.
Peter
Anzeige
AW: bin neugierig
08.01.2005 15:35:51
Josef
Hallo Peter!
Das aht zwar meiner Meinung nur nachteile, aber das geht zB. so:


Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
   If Target.Count > 1 Then Exit Sub
   If Intersect(Target,[a:a]) Is Nothing Then Exit Sub
On Error GoTo errorhandler
Application.EnableEvents = False
   
   Select Case Len(Target)
      Case 7
      'z.B.1234567=1234/56/7
         Target = CStr(Format(Target, "0000/00/0"))
      Case 6
      'z.B.123456=123/45/6
         Target = CStr(Format(Target, "000/00/0"))
      Case 5
      'z.B.12345=12/34/5
         Target = CStr(Format(Target, "00/00/0"))
      Case 4
      'z.B.1234=1/23/4
         Target = CStr(Format(Target, "'0/00/0"))
      'das Hochkomma ist nötig, weil Excel sonst die
      'Eingabe in ein Datum umwandelt!
      Case Else:
         Target.ClearContents
   End Select
   
   Application.EnableEvents = True
   Exit Sub
errorhandler:
   Target.ClearContents
   Application.EnableEvents = True
End Sub



Die Spalte vorher asl "Text" formatieren!
Gruß Sepp
Anzeige
AW: Danke
08.01.2005 22:32:37
Peter
Danke für Deine Mühe
Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige