Makroproblem mit Steuerelemente Toolbox

Dieses Thema Makroproblem mit Steuerelemente Toolbox im Forum "Windows XP Forum" wurde erstellt von Oli Bender, 17. Nov. 2005.

Thema: Makroproblem mit Steuerelemente Toolbox Hallo zusammen, ich habe ein Makro geschrieben, dass mir eine Rechnung 2 mal ausdrucken soll, einmal mit dem...

  1. Hallo zusammen,

    ich habe ein Makro geschrieben, dass mir eine Rechnung 2 mal ausdrucken soll, einmal mit dem Vermerk Kopie, den ich als Textfeld eingefügt habe und einmal ohne diesen Vermerk. Wenn ich das Makro ganz normal über Extras, Makros, Makro ausführen benutze, funktioniert das auch, ebenso über eine benutzerdefinierte Schaltfläche sowie eine Schaltfläche erstellt über die Formular Symbolleitse.

    Wird die Schaltfläche jedoch über die Toolbox erstellt, druckt er zwei mal die Kopie aus. Kann mir jemand sagen, woran das liegt? Anbei der Code. Vielen Dank schon mal im voraus.

    Private Sub RechnungDrucken_Click()
    '
    ' RechnungDrucken Makro
    ' Makro am 17.11.2005 von aufgezeichnet
    '

    '
    ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 6#, 204#, _
    139.5, 43.5).Select
    Selection.ShapeRange.Line.Visible = msoFalse
    Selection.Characters.Text = Kopie
    With Selection.Characters(Start:=1, Length:=5).Font
    .Name = Arial
    .FontStyle = Fett
    .Size = 22
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
    End With
    Selection.HorizontalAlignment = xlCenter
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Selection.Delete
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Application.CommandBars(Drawing).Visible = False
    End Sub
     
  2. Hallo Oil Bender,

    dein Problem kann am Namen des Makros liegen (..._Click).
    Ein Makro in einem Modul sollte diese Namensgebung vermeiden.

    Ich hab den Makro so aufgeteilt, daß er von allen deinen genannten Aufruf-Stellen erreichbar ist und auch von einem Button auf der Rechnung.

    Zunächst der funktionale Makro selbst:
    Der sollte in einem Modul stehen

    Code:
    Option Explicit
    
    Sub RechnungUndKopieDrucken()
    
        Dim ws As Worksheet, shp As Shape
        
        Set ws = ActiveSheet
        
       ->Textbox mit Kopie erzeugen
        Set shp = ws.Shapes.AddTextbox( _
                    msoTextOrientationHorizontal, _
                    6#, 204#, 139.5, 43.5)
        shp.Line.Visible = msoFalse
        shp.TextFrame.Characters.Text = Kopie
        With shp.TextFrame.Characters(Start:=1, Length:=5).Font
            .Name = Arial
            .FontStyle = Fett
            .Size = 22
        End With
        shp.TextFrame.HorizontalAlignment = xlCenter
        
       ->Kopie ausdrucken
        ws.PrintOut Preview:=True->für Test
       ->ws.PrintOut Copies:=1, Collate:=True
        
       ->Textbox wieder löschen
        shp.Delete
        
       ->Original ausdrucken
        ws.PrintOut Preview:=True->für Test
       ->ws.PrintOut Copies:=1, Collate:=True
        
        Set shp = Nothing: Set ws = Nothing
    
    End Sub
    Dann der Code zum Commendbutton:
    - CommandButton über Toolbar auf Rechnung einfügen
    - Eigenschaft.Caption = Rechnung drucken
    - Eigenschaft.Name = RechnungDrucken   (hier ohne Leerzeichen)
    - Eigenschaft.TakeFocusOnClick = False
    - Eigenschaft.PrintObject = False

    In die Codeseite der Rechnung:
    Code:
    Private Sub RechnungDrucken_Click()
     ->Voraussetzung:
     ->- CommandButton auf dem Tabellenblatt mit der Eigenschaft.Name = RechnungDrucken
     ->- dieser Makro muß in der Code-Seite des Tabellenblattes liegen
      
     ->Button darf nicht den Focus halten
     ->sonst kann die Textbox nicht manipuliert werden
      If RechnungDrucken.TakeFocusOnClick Then
        MsgBox ( _
        Bitte ändern Sie die Eigenschaft  & _
         ->TakeFocusOnClick' des Command-Buttons auf False, & vbLf & _
           da sonst der Makro nicht ausgeführt werden kann.)
      Else
        Call RechnungUndKopieDrucken
      End If
    End Sub
    Und ausprobieren.

    Nach dem Ausprobieren müßtest du die Zeilen
    ws.PrintOut Preview:=True
    auskommentieren, und folgende Zeilen einkommentieren
    ws.PrintOut Copies:=1, Collate:=True

    Gruß Matjes :)
     
Die Seite wird geladen...

Makroproblem mit Steuerelemente Toolbox - Ähnliche Themen

Forum Datum
Word 2002 SP2- Makroprobleme beim öffnen Microsoft Office Suite 17. Juni 2003
Makroprobleme mit Excel Microsoft Office Suite 31. März 2003
Schutz von Steuerelementen Windows XP Forum 1. Feb. 2012
Steuerelemente kombinieren Windows XP Forum 20. Juli 2009
Steuerelemente code Windows XP Forum 20. März 2008