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

Wieso Makro nicht???

Forumthread: Wieso Makro nicht?

Wieso Makro nicht?
walterMB
Hallo,
habe über das Forum folgendes Makro erhalten:
'----------- Zellenformat mit 00 oder - Zeichen ---------------------------------

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
'Range("E:E") ist der überwachte Berecih, bitte anpassen:
If Not Intersect(Target, Range("GG:GG")) Is Nothing Then
'If Not Intersect(Target, Range("G:G", "AA:AA")) Is Nothing Then
Application.EnableEvents = False
With Target
'Wenn - an 2.Stelle:
If Mid(.Text, 2, 1) = "-" Then
.Value = Application.WorksheetFunction.Substitute(Application.WorksheetFunction.Substitute(Target, "-", ""), " ", "")
.NumberFormat = "0 ""-"" 000 00000"
'Wenn Eingabe mit 06 beginnt:
'ElseIf Left(.Text, 2) = "06" Then
ElseIf Left(.Text, 2) = "00" Or Left(.Text, 1) = "6" Then
' ElseIf Mid(.Text, 2, 2) = "06" Then
.Value = Application.WorksheetFunction.Substitute(Target, " ", "")
.NumberFormat = "0 - 000 00000"
End If
End With
Application.EnableEvents = True
End If
End Sub

In der Zelle sollte bei der Eingabe 0-111612345 das erscheinen: 0 - 111 12345
Oder bei der Eingabe:
0211112345 das erscheinen 02 111 12345.
Wieso funktioniert das nicht mehr ? Habe gerade in der Firma Umstellung auf XP
erhalten, hat das was damit zu tun.
Gruß Walter
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Wieso Makro nicht?
Luschi
Hallo Walter,
das liegt an dieser Bedingung:
ElseIf Left(.Text, 2) = "00" Or Left(.Text, 1) = "6" Then
Wenn Du in XP eine Zeichenfolge eingibst, in der nur Zahlen stehen, dann werden die vorderen Nullen automatisch gelöscht, noch bevor das Chance-Ereignis eintritt.
D.h., diese Bedingung (Left(.Text, 2) = "00") tritt bei einer reinen Zahlenreihe nie ein.
Bei dieser Zeichenfolge (0211112345) wird zuerst die Null entfernt und dann geprüft, ob das 1. Zeichen eine 6 ist (Left(.Text, 1) = "6"). Das dies nicht erfüllt ist, wird auch nicht formatiert.
Gruß von Luschi
aus klein-Paris
Anzeige
Danke aber...
16.02.2006 21:15:05
Walter
Hallo Luschi,
Du hast Recht habe ich gerade!!! auch festgestellt.
Habe aber noch ein Problem dazu !!
Ich möchte die Spalte "g:g" und die Spalte "aa:aa" NUr in diesen beiden Spalten haben.
Habe gerade festgestellt das das Fornat auch auf die Spalte"H" übertragen wird.
Wie kann ich diese Zeile entsprechend ändern ?
If Not Intersect(Target, Range("G:G","AA:AA")) Is Nothing Then
so funktioniert es nicht,
gruß Walter
Anzeige
AW: Danke aber...
16.02.2006 22:10:25
Luschi
Hallo Walter,
so funktionierts richtig: Range("G:G, AA:AA")
bei Range("G:G", "AA:AA") kommt raus als Bereich: $G:$AA (G bis AA)
Gruß von Luschi
aus klein-Paris
Danke o.t.
16.02.2006 22:58:26
Walter
Hallo Luschi,
herzlichen Dank für die Hilfe,
mfg Walter
;

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