Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makros funktioniert nicht außerhalb von Click()

Makros funktioniert nicht außerhalb von Click()
28.06.2018 22:05:32
Click()
Hallo allerseits,
mit einem kleinen Ideenimpuls (Danke an KlausF) habe ich ein Makro geschrieben welches eine Tabelle kopiert und als verknüpfte Grafik wieder einfügt.
Nicht schön - aber es funktionierte fürs erste:

Private Sub btn_DruckenMantelbogen_Click()
Range("A1:AF47").Select
Selection.Copy
Sheets("Mantelbogen").Select
Worksheets("Mantelbogen").Range("AF50").Select
ActiveSheet.Pictures.Paste(Link:=True).Select
ActiveSheet.Shapes(Shapes.Count).Name = "curPicture"
ActiveSheet.Shapes.Range(Array("curPicture")).Select
Selection.ShapeRange.IncrementRotation 90
Selection.ShapeRange.IncrementLeft -765
Selection.ShapeRange.IncrementTop 115
Selection.ShapeRange.ScaleWidth 0.905, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.905, msoFalse, msoScaleFromTopLeft
End Sub

Bisher war es immer als einfacher Code in einem Button - auf der Tabelle - hinterlegt.
Nun habe ich begonnen den Code aufzuräumen - Refactoring wie es so schön heißt. Allerdings sobald ich den Code von oben 1:1 in ein eigenes Modul samt eigener Sub auslagere, kommt immer wieder ein Fehler, dass die Variable nicht definiert sei oder ein Objekt benötigt werde.

Call kopiereStatuslisteAufMantelbogen

In beiden Fälle bezieht er sich auf

ActiveSheet.Shapes(Shapes.Count).Name = "curPicture"

So und ich kapiere einfach nicht warum.
Grüße
Cornel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros funktioniert nicht außerhalb von Click()
28.06.2018 23:24:50
Click()
Hallo,
da fehlt die Referenzierung, probier's mal so:
Option Explicit

Private Sub btn_DruckenMantelbogen_Click()
    Dim objPicture As Picture
    Dim objCell As Range
    With ThisWorkbook
        Call .ActiveSheet.Range("A1:AF47").Copy
        With .Worksheets("Mantelbogen")
            Set objPicture = .Pictures.Paste(Link:=True)
            Set objCell = .Range("AF50")
        End With
    End With
    With objPicture
        .Top = objCell.Top
        .Left = objCell.Left
        .Name = "curPicture"
        With .ShapeRange
             Call .IncrementRotation(Increment:=90)
             Call .IncrementLeft(Increment:=-765)
             Call .IncrementTop(Increment:=115)
             Call .ScaleWidth(Factor:=0.905, _
                RelativeToOriginalSize:=msoFalse, Scale:=msoScaleFromTopLeft)
             Call .ScaleHeight(Factor:=0.905, _
                RelativeToOriginalSize:=msoFalse, Scale:=msoScaleFromTopLeft)
        End With
    End With
    Set objPicture = Nothing
    Set objCell = Nothing
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit
Anzeige
AW: Makros funktioniert nicht außerhalb von Click()
29.06.2018 23:43:26
Click()
Hallo Mullit,
cool danke. Läuft. Ich check nur nicht warum :-(. Dein Code sieht sehr gut strukturiert aus, aber er macht - welch Wunder - das Gleiche wie meiner?
ActiveSheet.Shapes(Shapes.Count).Name = "curPicture"
Erzeugt doch auch eine Referenzierung auf das Bild...
VG & Danke
Cornel
AW: Makros funktioniert nicht außerhalb von Click()
30.06.2018 00:16:20
Click()
Hallo Cornel,
...nicht ganz...;-)
Wie geschr. fehlte bei Dir die Referenzierung und das ganze Selektieren macht den Codeablauf träge...
With ActiveSheet
    .Shapes(.Shapes.Count).Name = "curPicture"
End With

Gruß, Mullit
Anzeige
AW: Vielleicht noch das hier....
30.06.2018 00:25:16
Mullit
Hallo nochmal,
...betreffend, hab ich erst jetzt irgendwie gelesen...
Erzeugt doch auch eine Referenzierung auf das Bild...
Gemeint war da also die Referenzierung auf das ActiveSheet-Objekt...
Gruß, Mullit

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige