Excel Zelle Formatieren

zer0core

Ensign
Registriert
Sep. 2007
Beiträge
174
Hallo Leute,

hab schon einige Zeit gegooglet habe aber nicht das gefunden was ich brauche.

und zwar ich habe eine Excel Liste (2003) in der mehrere MAC-Adressen stehen.
jedoch in unterschiedlicher Formatierung...
jetzt möchte ich die Zellen so formatieren, dass die MAC-Adresse so aussieht:
00:aa:bb:cc:dd:ee
und nicht so:
00aabbccddee

wie muss ich die formatieren?

danke und gruß zer0core
 
Geht leider nicht, weil du nur Zahlen entsprechend formatieren kannst - bei dir sind aber variable Buchstaben mit drin. Für Zahlen sähe es so aus:
00":"00":"00":"00":"00":"00​

Mann kann es nur mit einem Makro oder mit Hilffspalten und der Funktion Verketten lösen.
 
Selbstverständlich kann man diese MAC-Adresse in Excel darstellen :rolleyes:
Man muß nur vorher bei der entsprechenden Zelle einstellen: "Format Text"
 
Und wie formatierst du die Zelle, so dass statt 00aabbccddee -> 00:aa:bb:cc:dd:ee angezeigt wird?
 
Ist doch das einfachste. Z.B. rechte Maustaste auf die Zelle - "Zellen formatieren" - Register Zahlen - Text.
 
Und warum sollte die Formatierung aus 00aabbccddee -> 00:aa:bb:cc:dd:ee machen?
 
Ich habe die Frage so verstanden, daß Excel beim Zellformat herumzickt. Aber evtl. war sie anders gemeint, nämlich daß der String 00aabbccddee mit Doppelpunkten versehen werden soll.
Dies geht z.B. mit der Formel
=TEIL(A1;1;2)&":"&TEIL(A1;3;2)&":"&TEIL(A1;5;2)&":"&TEIL(A1;7;2)&":"&TEIL(A1;9;2)&":"&TEIL(A1;11;2)
 
Ich weiss der Thread ist uralt, aber da ich das gleiche Problem hatte. Eine einfache Lösung mit Boardmitteln habe ich so nicht gefunden (Benutzerdefiniertes Format o.ä.). Die Lösung mit Teilstrings war mir zu unflexibel, weil verschiedene Endgeräte die MAC Adresse in unterschiedlichen Formaten angeben.
00:11:22:33:44:55
00-11-22-33-44-55
0011.2233.4455
001122.334455

Habe das jetzt in VBA gelöst. Hatte damit vorher keine Berührungspunkte und aktivierte Makros können ja ein Sicherheitsrisiko sein, aber gut.

Unzulässige Zeichen werden rausgefiltert.
Ergebnis sind immer Großbuchstaben und als Trennzeichen wird : verwendet.
Ist aber natürlich unten leicht anpassbar, wer z.B. einheitlich den - als Trennzeichen haben möchte.

Aufrufen des Excel VBA Editors mit Alt+F11
Extras--> Verweise --> Microsoft VBScript Regular Expressions 5.5 anhaken und mit OK bestätigen
Dann das Arbeitsplatt oder die Tabelle auswählen, und in der Befehlsleiste unter Einfügen ein Modul hinzufügen und den untenstehenden Code einfügen.

Variante 1 als Makro Sub (Achtung: Originaldaten werden verändert, bei fehlerhafter Eingabe bleibt der Zellinhalt bestehen und die Zelle wird rot):

Code:
Option Explicit


Sub FormatMacAddress()
Dim Zelle As Range
For Each Zelle In Selection
 
 If Not Zelle.Value = "" Then

  Dim sText As String
  sText = Zelle.Value
  sText = StrConv(sText, vbUpperCase)

  Dim regEx2 As New RegExp
  Dim strPattern2 As String: strPattern2 = "[^0-9A-F]"
  If strPattern2 <> "" Then
   With regEx2
   .Global = True
   .MultiLine = False
   .IgnoreCase = True
   .Pattern = strPattern2
   End With
   If regEx2.Test(sText) Then
    sText = regEx2.Replace(sText, "")
    Else
   End If
  End If
 
  If Len(sText) < 12 Then
   'MsgBox "Error: zuwenige oder unzulässige Zeichen in Zelle " & Zelle.Address & " ! Muss: 12 + Trennzeichen"
   Zelle.Interior.ColorIndex = 3
  ElseIf Len(sText) > 12 Then
   'MsgBox "Error: zuviele oder unzulässige Zeichen in Zelle " & Zelle.Address & "! Muss: 12 + Trennzeichen"
   Zelle.Interior.ColorIndex = 3
  ElseIf Len(sText) = 12 Then
   If Zelle.Interior.ColorIndex = 3 Then
    Zelle.Interior.ColorIndex = 0
   End If
   Zelle.Value = Format(sText, "@@:@@:@@:@@:@@:@@")
  Else
   MsgBox "Error!"
   Zelle.Interior.ColorIndex = 3
  End If
 

 End If

Next Zelle

End Sub

Und das ganze als Funktion, wenn die Originalzelle nicht bearbeitet werden soll:
Code:
Option Explicit
Option Base 1


Function FormatMAC(varMAC)

Dim sText As String
sText = varMAC
sText = StrConv(sText, vbUpperCase)


Dim regEx2 As New RegExp
Dim strPattern2 As String: strPattern2 = "[^0-9A-F]"

If strPattern2 <> "" Then
 With regEx2
  .Global = True
  .MultiLine = False
  .IgnoreCase = True
  .Pattern = strPattern2
 End With
 If regEx2.TEST(sText) Then
  sText = regEx2.Replace(sText, "")
 Else
 End If
End If


If Len(sText) < 12 Then
 FormatMAC = "Error: zuwenige Zeichen oder unzulässige Zeichen enthalten! Muss: 12 + Trennzeichen - " & sText
 Exit Function
ElseIf Len(sText) > 12 Then
 FormatMAC = "Error: zuviele Zeichen! Muss: 12 + Trennzeichen - " & sText
 Exit Function
End If

 
FormatMAC = Format(sText, "@@:@@:@@:@@:@@:@@")

End Function


Und hier nochmals als Funktion, die einem die Position des ersten Fehlers mitteilt:
Würde ich aber nicht nutzen, zu viel Ballast, war aber mein erster Entwurf, bevor ich zu den o.g. Lösungen gekommen bin.
Code:
Option Explicit
Option Base 1


Function FormatMAC(varMAC)

Dim sText As String

sText = varMAC
sText = StrConv(sText, vbUpperCase)


' Lösung vor dem RexExp Ansatz !
Dim TOsChars As String
Dim sChars As Variant
Dim nCount As Integer
Dim i As Integer
TOsChars = "_ - . : , ; "
sChars = Split(TOsChars, " ")
nCount = UBound(sChars)

  For i = 0 To nCount - 1
    sText = Replace(sText, sChars(i), "")
  Next i


' Lösung vor RegExp für Ersetzen von Zeichen
Dim ii As Integer
ii = 1
Dim iii As Integer
iii = 1
Dim errortxt As String
errortxt = ""
Dim strSonderzeichen As String
strSonderzeichen = "ABCDEF0123456789"

For ii = 1 To Len(sText)
 For iii = 1 To Len(strSonderzeichen)
  If Mid(sText, ii, 1) = Mid(strSonderzeichen, iii, 1) Then
   Exit For
  Else
   If iii = Len(strSonderzeichen) Then
    errortxt = "Error: Unzulässiger Wert an Position " & ii & " von links"
    FormatMAC = errortxt
    Exit Function
   Else
   End If
  End If
 Next iii
Next ii


' Lösung vor RegExp für Ersetzen von Zeichen
If Len(sText) = 12 Then
 FormatMAC = Format(sText, "@@:@@:@@:@@:@@:@@")
ElseIf Len(sText) < 12 Then
 FormatMAC = "Error: zuwenige Zeichen!"
ElseIf Len(sText) > 12 Then
 FormatMAC = "Error: zuviele Zeichen!"
Else
 FormatMAC = "Error!"
End If


End Function
 

Anhänge

  • Str2Mac_Beispiele_xlsm.7z
    60 KB · Aufrufe: 262
Zurück
Oben