Add-In erstellen

Dieses Thema Add-In erstellen im Forum "Microsoft Office Suite" wurde erstellt von nok106, 8. Juli 2006.

Thema: Add-In erstellen Hallo Excelaner, kann man den folgenden Code ändern, so dass er als Add-In deklariert werden könnte....

  1. Hallo Excelaner,

    kann man den folgenden Code ändern, so dass er als Add-In deklariert werden könnte.

    Code:
    'Spaltenbreite 10,38 Spaltenhöhe 12,75 Druckertreiber Canon S400
     
    Sub Format_Spalten_Zeilen_mm()
    Dim sBreite, zhöhe, sAktuell, zAktuell As Single
    Dim strText, strAntwort As String
    
    Dim Mldg, Stil, Titel, Antwort, Text1
    Mldg = Sollen Zeilen und Spalten geändert werden ?
    Stil = vbYesNo + vbQuestion + vbDefaultButton1
    Titel = Zeilenhöhe und Spaltenbreite ändern
    Antwort = MsgBox(Mldg, Stil, Titel)
    If Antwort = vbYes Then
    Text1 = ja
    
    Spalte = Selection.ColumnWidth
    sAktuell = (Selection.ColumnWidth + 0.71) / 4.45 * 10
    strText = Aktuelle Spaltenbreite =  & _
    Format(sAktuell, ###0.00 mm) & Chr(13) & Chr(13) & Chr(13) & Chr(13) _
    & Spaltenbreite in mm angeben:
    strAntwort = InputBox(strText, Neue Spaltenbreite festlegen, _
    Format(sAktuell, ###0.00))
    If strAntwort <>  Then
    sBreite = Val(strAntwort)
    Selection.ColumnWidth = -0.71 + 4.45 * sBreite / 10
    End If
    
    zAktuell = Selection.RowHeight
    Faktor = 2.8
    zAktuell = zAktuell / Faktor
    strText = Aktuelle Zeilenhöhe =  & _
    Format(zAktuell, ###0.00 mm) & Chr(13) & Chr(13) & Chr(13) & Chr(13) _
    & Zeilenhöhe in mm angeben:
    strAntwort = InputBox(strText, Neue Zeilenhöhe festlegen, _
    Format(zAktuell, ###0.00))
    If strAntwort <>  Then
    zhöhe = CSng(strAntwort)
    Selection.RowHeight = Faktor * zhöhe
    End If
        End If
    End Sub

    Es wäre Klasse wenn jemand helfen könnte .........
     
  2. Hallo nok106,

    Den Code braucht man nicht zu ändern. Du meinst glaub ich eher, wie kann man das Makro als AddIn verpacken.

    Soll das Makro
    - nur zur Verfügung stehen
    - soll es beim Start von Excel ausgeführt  werden
    - soll beim Start von excel ein Menü-Punkt erstellt werden
    - ???

    Wie man grundsätzlich ein Add-In erstellt ist auf Schmittis Seite gut beschrieben.
    http://www.schmittis-page.de/excel/vba/t18.htm

    Gruß Matjes :)
     
  3. Hallo Matjes,

    für die schnelle Antwort besten Dank.

    Das Makro soll beim Start von Excel ausgeführt  werden und in den Add-Ins verfügbar sein.

    Ist das machbar ?
     
  4. Hallo nok106,

    ich hab dir den Code für ein Add-In zusammengestellt.

    Den Code packe bitte in eine Modul in einer neuen Arbeitsmappe und verfahre dann wie auf schmittis-Seite beschrieben.

    Beim Start legt das AddIn unter->Format' einen Button->Spalten_Zeilen_mm' an und löscht ihn wieder beim Schliessen.

    Den Makro schon beim Start des Addin aufzurufen klappt nicht, weil zu diesem Zeitpunkt noch keine Mappe geöffnet ist.

    Gruß Matjes :)

    Code:
    Option Explicit
     ->Spaltenbreite 10,38 Spaltenhöhe 12,75 Druckertreiber Canon S400
    
    Private Const c_MENUBUTTON_NAME = Spalten_Zeilen_mm
    
    '************************************************************************
    Public Sub Auto_Open()
     ->Startroutine des Add-In:
     -> 1) Menu-Eintrag erstellen
      Dim myMenuBar As Office.CommandBarPopup
      Dim myMenuButton As Office.CommandBarButton
      On Error Resume Next
     ->Im Hauptmenue->Format' finden
      Set myMenuBar = Application.CommandBars(1).FindControl(, 30006)
     ->Button anfügen
      Set myMenuButton = myMenuBar.Controls.Add(msoControlButton)
     ->Button benennen
      myMenuButton.Caption = c_MENUBUTTON_NAME
      myMenuButton.BeginGroup = True
     ->Button mit Hauptprogramm verknüpfen
      myMenuButton.OnAction = ThisWorkbook.Name & ! & Format_Spalten_Zeilen_mm
      Set myMenuButton = Nothing: Set myMenuBar = Nothing
      On Error GoTo 0
    End Sub
    '************************************************************************
    Public Sub Auto_Close()
     ->Startroutine des Add-In:
     -> 1) Menu-Eintrag löschen
      Dim myMenuBar As Office.CommandBarPopup
        
      On Error Resume Next
     ->Im Hauptmenue->Format' finden
      Set myMenuBar = Application.CommandBars(1).FindControl(, 30006)
     ->Button löschen
      myMenuBar.Controls(c_MENUBUTTON_NAME).Delete
      Set myMenuBar = Nothing
      On Error GoTo 0
    End Sub
    '************************************************************************
    Public Sub Format_Spalten_Zeilen_mm()
      Dim dAktuell As Double, dFaktor As Double
      Dim strAntwort As String, dAntwort As Double
      Dim sTmp As String, bNok As Boolean
    
      If vbYes <> MsgBox( _
                    Sollen Zeilen und Spalten geändert werden ?, _
                    vbYesNo + vbQuestion + vbDefaultButton1, _
                    Zeilenhöhe und Spaltenbreite ändern) _
                  Then Exit Sub
    
     ->*** Spaltenbreite
      dAktuell = (Selection.ColumnWidth + 0.71) / 4.45 * 10
      bNok = True
      Do While bNok
        strAntwort = InputBox( _
                        Aktuelle Spaltenbreite =  & Format(dAktuell, ###0.00 mm) & _
                        String(4, 13) & Spaltenbreite in mm angeben:, _
                        Neue Spaltenbreite festlegen, _
                        Format(dAktuell, ###0.00))
        If strAntwort =  Then Exit Sub
        On Error Resume Next: dAntwort = strAntwort: Err.Clear: On Error GoTo 0
        sTmp = dAntwort
        If sTmp = strAntwort Then bNok = False Else MsgBox Wert unzulässig:  & strAntwort
      Loop
      
     ->*** Zeilenhöhe
      dFaktor = 2.8
      dAktuell = Selection.RowHeight / dFaktor
      bNok = True
      Do While bNok
        strAntwort = InputBox( _
                        Aktuelle Zeilenhöhe =  & Format(dAktuell, ###0.00 mm) & _
                        String(4, 13) & Zeilenhöhe in mm angeben:, _
                        Neue Zeilenhöhe festlegen, _
                        Format(dAktuell, ###0.00))
        If strAntwort =  Then Exit Sub
        On Error Resume Next: dAntwort = strAntwort: Err.Clear: On Error GoTo 0
        sTmp = dAntwort
        If sTmp = strAntwort Then bNok = False Else MsgBox Wert unzulässig:  & strAntwort
      Loop
      Selection.RowHeight = dFaktor * dAntwort
    
    End Sub
     
  5. Hallo Matjes,

    vorweg, für deine Mühe herzlichen Dank.

    Es klappt mit der Eingabe Menü => Format bestens.

    Nur muss im Makro ein Fehler sein, denn die Breite der Zellen werden nicht geändert.

    Mit der Zeilenhöhe keine Probleme.

    Da du den ursprünglichen Code etwas geändert hast, finde ich den Fehler nicht !!!

    Ich bitte dich, den Code nochmal anzuschauen,

    bis dann
     
  6. hubs, da ist beim Editieren eine Zeile flöten gegangen. Tschuldige  ::)

    Zeile ist gekennzeichnet.

    Gruß Matjes :)
    Code:
    Option Explicit
     ->Spaltenbreite 10,38 Spaltenhöhe 12,75 Druckertreiber Canon S400
    
    Private Const c_MENUBUTTON_NAME = Spalten_Zeilen_mm
    
    '************************************************************************
    Public Sub Auto_Open()
     ->Startroutine des Add-In:
     -> 1) Menu-Eintrag erstellen
      Dim myMenuBar As Office.CommandBarPopup
      Dim myMenuButton As Office.CommandBarButton
      On Error Resume Next
     ->Im Hauptmenue->Format' finden
      Set myMenuBar = Application.CommandBars(1).FindControl(, 30006)
     ->Button anfügen
      Set myMenuButton = myMenuBar.Controls.Add(msoControlButton)
     ->Button benennen
      myMenuButton.Caption = c_MENUBUTTON_NAME
      myMenuButton.BeginGroup = True
     ->Button mit Hauptprogramm verknüpfen
      myMenuButton.OnAction = ThisWorkbook.Name & ! & Format_Spalten_Zeilen_mm
      Set myMenuButton = Nothing: Set myMenuBar = Nothing
      On Error GoTo 0
    End Sub
    '************************************************************************
    Public Sub Auto_Close()
     ->Enderoutine des Add-In:
     -> 1) Menu-Eintrag löschen
      Dim myMenuBar As Office.CommandBarPopup
        
      On Error Resume Next
     ->Im Hauptmenue->Format' finden
      Set myMenuBar = Application.CommandBars(1).FindControl(, 30006)
     ->Button löschen
      myMenuBar.Controls(c_MENUBUTTON_NAME).Delete
      Set myMenuBar = Nothing
      On Error GoTo 0
    End Sub
    '************************************************************************
    Public Sub Format_Spalten_Zeilen_mm()
      Dim dAktuell As Double, dFaktor As Double
      Dim strAntwort As String, dAntwort As Double
      Dim sTmp As String, bNok As Boolean
    
      If vbYes <> MsgBox( _
                    Sollen Zeilen und Spalten geändert werden ?, _
                    vbYesNo + vbQuestion + vbDefaultButton1, _
                    Zeilenhöhe und Spaltenbreite ändern) _
                  Then Exit Sub
    
     ->*** Spaltenbreite
      dAktuell = (Selection.ColumnWidth + 0.71) / 4.45 * 10
      bNok = True
      Do While bNok
        strAntwort = InputBox( _
                        Aktuelle Spaltenbreite =  & Format(dAktuell, ###0.00 mm) & _
                        String(4, 13) & Spaltenbreite in mm angeben:, _
                        Neue Spaltenbreite festlegen, _
                        Format(dAktuell, ###0.00))
        If strAntwort =  Then Exit Sub
        On Error Resume Next: dAntwort = strAntwort: Err.Clear: On Error GoTo 0
        sTmp = dAntwort
        If sTmp = strAntwort Then bNok = False Else MsgBox Wert unzulässig:  & strAntwort
      Loop
      Selection.ColumnWidth = -0.71 + 4.45 * dAntwort / 10->### die fehlte
      
     ->*** Zeilenhöhe
      dFaktor = 2.8
      dAktuell = Selection.RowHeight / dFaktor
      bNok = True
      Do While bNok
        strAntwort = InputBox( _
                        Aktuelle Zeilenhöhe =  & Format(dAktuell, ###0.00 mm) & _
                        String(4, 13) & Zeilenhöhe in mm angeben:, _
                        Neue Zeilenhöhe festlegen, _
                        Format(dAktuell, ###0.00))
        If strAntwort =  Then Exit Sub
        On Error Resume Next: dAntwort = strAntwort: Err.Clear: On Error GoTo 0
        sTmp = dAntwort
        If sTmp = strAntwort Then bNok = False Else MsgBox Wert unzulässig:  & strAntwort
      Loop
      Selection.RowHeight = dFaktor * dAntwort
    
    End Sub
     
  7. Hallo Matjes,

    wie schon gesagt, besten Dank.

    Diesmal alles in Butter.  :1

    Wünsche noch einen schönen Abend.
     
Die Seite wird geladen...

Add-In erstellen - Ähnliche Themen

Forum Datum
Add-In erstellen Windows XP Forum 27. Okt. 2007
Office Live add-in 1.5 Windows 10 Forum 21. Okt. 2015
Add-In von MZ-WinTranslator nicht in Word und Excel Windows XP Forum 27. Juni 2012
Word 2007 Registerkarte Add-Ins alte Symbolleiste löschen Windows XP Forum 4. Nov. 2010
OL 2007 "Zustand von Office-Add-Ins nicht zu ändern" Microsoft Office Suite 25. Nov. 2008