SAP Analysis 4 Office, benutzerdefiniertes Zahlenformat auslesen
Beim Kopieren von Zellinhalten, welche ein benutzerdefiniertes Zahlenformat verwenden,
wird dieses Format nicht in die Zieltabelle übernommen
zB 1.000 ST, 50 KG usw.
Mit folgendem VBA Code kann man den Format String auslesen und die Einheit in die
benachbarte Zelle schreiben, bevor man einen Kopiervorgang einleitet:
--- SCHNIPP ---
Public Sub FormatStringEinheit_auslesen()
Dim c As Range
Dim i, j, counter As Integer
For Each c In Selection
counter = 0
'Länge des Format Strings
i = Len(c.NumberFormat)
For j = i To 1 Step -1
'auf Vorhandensein eines Anführungszeichens prüfen
If Mid(c.NumberFormat, j, 1) = Chr(34) Then
counter = counter + 1
End If
'zweites Anführungszeichen gefunden ?
If counter = 2 Then
Exit For
End If
Next j
'Einheit in die Nachbar Spalte schreiben
c.Offset(0, 1).Value = Mid(c.NumberFormat, j + 2, i - j - 2)
Next
End Sub
---SCHNAPP ---
alternativer VBA Code
--- SCHNIPP ---
Public Sub FormatStringEinheit_auslesen()
Dim c As Range
Dim i, j, k, l, counter As Integer
On Error Resume Next
For Each c In Selection
counter = 0: k = 0: l = 0
'Länge des Format Strings
i = Len(c.NumberFormat)
For j = i To 1 Step -1
'auf Vorhandensein von Anführungszeichen prüfen
If Mid(c.NumberFormat, j, 1) = Chr(34) Then
counter = counter + 1 'Position erstes Anführungszeichen
If counter = 1 Then
k = j
End If
If counter = 2 Then 'Position zweites Anführungszeichen
l = j
End If
End If
Next j
'Einheit in die Nachbar Spalte schreiben
c.Offset(0, 1).Value = Mid(c.NumberFormat, l + 1, k - l - 1)
Next
End Sub
wird dieses Format nicht in die Zieltabelle übernommen
zB 1.000 ST, 50 KG usw.
Mit folgendem VBA Code kann man den Format String auslesen und die Einheit in die
benachbarte Zelle schreiben, bevor man einen Kopiervorgang einleitet:
--- SCHNIPP ---
Public Sub FormatStringEinheit_auslesen()
Dim c As Range
Dim i, j, counter As Integer
For Each c In Selection
counter = 0
'Länge des Format Strings
i = Len(c.NumberFormat)
For j = i To 1 Step -1
'auf Vorhandensein eines Anführungszeichens prüfen
If Mid(c.NumberFormat, j, 1) = Chr(34) Then
counter = counter + 1
End If
'zweites Anführungszeichen gefunden ?
If counter = 2 Then
Exit For
End If
Next j
'Einheit in die Nachbar Spalte schreiben
c.Offset(0, 1).Value = Mid(c.NumberFormat, j + 2, i - j - 2)
Next
End Sub
---SCHNAPP ---
alternativer VBA Code
--- SCHNIPP ---
Public Sub FormatStringEinheit_auslesen()
Dim c As Range
Dim i, j, k, l, counter As Integer
On Error Resume Next
For Each c In Selection
counter = 0: k = 0: l = 0
'Länge des Format Strings
i = Len(c.NumberFormat)
For j = i To 1 Step -1
'auf Vorhandensein von Anführungszeichen prüfen
If Mid(c.NumberFormat, j, 1) = Chr(34) Then
counter = counter + 1 'Position erstes Anführungszeichen
If counter = 1 Then
k = j
End If
If counter = 2 Then 'Position zweites Anführungszeichen
l = j
End If
End If
Next j
'Einheit in die Nachbar Spalte schreiben
c.Offset(0, 1).Value = Mid(c.NumberFormat, l + 1, k - l - 1)
Next
End Sub
--- SCHNAPP ---
Top Excel Blog, sehr empfehlenswert!!!
AntwortenLöschen