VBA – SAP Nummernformat per Button in Excel

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 16 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

Screenshot SAP-Nr in ExcelWer viel mit SAP arbeitet, und diverse Materialnummern ausleitet, muss viel mit Excel arbeiten. Da im R/3 die Materialnummern nicht immer im vorgeschriebenen Format ausgegeben werden, müssen die im Nachhinein für die weiteren Abläufe neu formatiert werden, dass kostet Zeit und Nerven. Mit dem kleinen XLA, welches ich hier bereit stelle, werden all markierten Bereiche auf Numerisch geprüft und falls diese Prüfung true ist, werden die Bereiche als SAP-Nummer (000000-0000-000) formatiert.
Diese Anwendung muss man natürlich nicht nur für SP nutzen. Die Abfrage des markierten Bereiches kann man auch in anderen Anwendungen gebrauchen.

Installation des XLA:

  1. Das XLA in euren AddIns-Ordner kopieren (Documents and Settings\USER\Application Data\Microsoft\AddIns)
  2. Das icon unter c:\icons\ ablegen
  3. MS Excel starten
  4. Menu: Extras –> AddIns
  5. SAP-Nr auswählen
  6. Nun gibt es in der Format-Leiste einen neuen Button „SAP“, Bereich mit Zahlen etc. markieren und Button clicken

Download:

Download als ZIP-Datei: SAPNr.zip – 2 KByte

VBA-Code:

VBA in der Arbeitsmappe:


Option Explicit

Private Sub Workbook_Open()
    Symbolleiste_erweitern
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Symbol_Loeschen
End Sub

VBA im Modul:


Option Explicit
Dim CB As Object, picPath, myPic
Const SAP = "SAP-Nr"

Sub Symbolleiste_erweitern()
    Symbol_Loeschen
    picPath = "c:\icons\"
    Set myPic = stdole.StdFunctions.LoadPicture(picPath & "sap.jpg")
    Set CB = Application.CommandBars("Formatting").Controls.Add(msoControlButton)
    With CB
        .Caption = SAP
        .Picture = myPic
        ' .FaceId = 66
        .OnAction = "Wandeln"
        .Visible = True
    End With
End Sub

Sub Symbol_Loeschen()
    On Error Resume Next
    Application.CommandBars("Formatting").Controls(SAP).Delete
    On Error GoTo 0
End Sub

Sub Wandeln()
Dim Z, S, c As Object
    'Z = ActiveCell.Row
    'S = ActiveCell.Column
    For Each c In Selection
        c.Value = Format(c.Value, "000000-0000-000")
    Next c
End Sub
Veröffentlicht am
Kategorisiert in VBA Verschlagwortet mit , ,

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.