Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

Prüfen ob ein Objekt schon vorhanden ist

Prüfen ob ein Objekt schon vorhanden ist
30.08.2018 18:51:14
P.
Hallo Zusammen,
ich habe eine Frage zum o.g. Thema.
Ich möchte folgendes umsetzen:
Bei "Strg+egal" soll ein Makro starten, dass ein paar Formatierungen erledigt (das ist soweit kein Problem) und anschließend aus dem Inhalt einer Zelle einen Data-Matrixcode erstellt. Das habe ich soweit auch mit "ActiveBarcode" umgesetzt bekommen. Im Anschluss möchte ich diesen Code Formatieren... Hier habe ich ein Problem:
Ich führe das Makro aus ein Barcode wird erstellt. Im nächsten Schritt steigt er aus mit der Fehlermeldung "'438' Objekt unterstützt diese Eigenschaft oder Methode nicht"
Wenn ich nun aber das Makro erneut ausführe... kein Problem er setzt die Eigenschaft des Barcodes wie gewünscht. Jedoch erstellt er dann jedes mal einen weiteren Barcode.
Was ich nun möchte ist eine Überprüfung ob das Objekt "Barcode1" schon vorhanden ist. Wenn ja _ dann soll kein neuer Barcode erzeugt werden und nur die Eigenschaften angepasst werden. So soll dann auch der Barcode aktualisiert werden bei wechselnden Zelleninhalt (A32).

Sub Makro1()
' Makro1 Makro
' Formaterung der Zellen
Range("A32").Select
ActiveCell.FormulaR1C1 = _
"=""**C2**""&R[-26]C[8]&""**""&R[-26]C[10]&""**""&R[-29]C[5]&""**"""
Range("A32").Select
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
Selection.NumberFormat = "General"
'Erzeugen des Barcodes
ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarcodeCtrl.1", Link:=False _
, DisplayAsIcon:=False, Left:=509.25, Top:=475.5, Width:=139.5, Height:=65.25 _
).Select
'Anpassen der Eigenschaften
ActiveSheet.Barcode1.Text = Range("A32")
ActiveSheet.Barcode1.Type = "43"
ActiveSheet.Barcode1.LinkedCell = Range("A32")
End Sub

Ich habe schon ein paar If-Anweisungen versucht... Ich lande jedoch immer beim Fehler "Benötigt Objekt".
Ist das denn so mit einer Wenn-Funktion umsetzbar?
Ich gehe schwer von Ja aus. Mir fehlt nur leider das nötige Wissen.
F1 F1 F1 =)

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob ein Objekt schon vorhanden ist
30.08.2018 19:43:15
Sepp
Hallo ?,
ungetestet.
Modul Modul1
Option Explicit 
 
Sub Makro1() 
  Dim objCtrl As OLEObject 
   
  With ActiveSheet 
    ' Formaterung der Zellen 
    With .Range("A32") 
      .FormulaR1C1 = "=""**C2**""&R[-26]C[8]&""**""&R[-26]C[10]&""**""&R[-29]C[5]&""**""" 
      With .Font 
        .ThemeColor = xlThemeColorDark1 
        .TintAndShade = 0 
      End With 
      .NumberFormat = "General" 
    End With 
    ' Prüfen ob Control bereits vorhanden 
    For Each objCtrl In .OLEObjects 
      If objCtrl.Name = "Barcode1" Then Exit For 
    Next 
    'Erzeugen des Barcodes 
    If objCtrl Is Nothing Then 
      Set objCtrl = .OLEObjects.Add(ClassType:="BARCODE.BarcodeCtrl.1", _
        Link:=False, DisplayAsIcon:=False, Left:=509.25, _
          Top:=475.5, Width:=139.5, Height:=65.25) 
      objCtrl.Name = "Barcode1" 
    End If 
    'Anpassen der Eigenschaften 
    With objCtrl 
      .Text = Range("A32") 
      .Type = "43" 
      .LinkedCell = Range("A32") 
    End With 
  End With 
   
End Sub 
 
 
 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Prüfen ob ein Objekt schon vorhanden ist
30.08.2018 21:24:43
P.
Uh Super! Vielen Dank für die flotte Hilfe.
Das klappt schon fast perfekt. Leider funktioniert der Teil Anpassen der Eigenschaften so nicht.
 With objCtrl
.Text = Range("A32")
.Type = "43"
.LinkedCell = Range("A32")
End With 
Ich habe hier wieder den vorherigen Teil übernommen.
        ActiveSheet.Barcode1.Text = Range("A32")
ActiveSheet.Barcode1.Type = "43"
ActiveSheet.Barcode1.LinkedCell = Range("A32")
Dieser Funktioniert leider wieder erst wenn das Makro min. 2 mal ausführe.
Muss evtl. das Objekt "Barcode1" noch einmal gesondert definiert werden?
Noch mal Danke Sepp
Anzeige
AW: Prüfen ob ein Objekt schon vorhanden ist
30.08.2018 21:30:13
Sepp
Hallo ?,
probier es so.
    'Anpassen der Eigenschaften 
    With objCtrl.Object
      .Text = Range("A32")
      .Type = "43"
      .LinkedCell = Range("A32")
    End With

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Da ich diese Steuerelement nicht installiert habe, kann ich den Code nicht testen.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Prüfen ob ein Objekt schon vorhanden ist
30.08.2018 21:50:56
Pascal
Hallo Sepp,
leider zeigt er wieder den selben Fehler an. Nun auch bei wiederholter Ausführung des Makros.
Jetzt läuft das Makro aber weiter. Jedoch übernimmt er die Eigenschaft LinkCell nicht.
Ich frage mich wieso es nun bei jeder Ausführung auftritt.
Im FAQ von ActiveBarcode empfehlen die diese Methode:
Um Zugriff auf die Eigenschaften des Controls zu erhalten, gehen Sie wie folgt vor:
With ab.OLEFormat
.Activate
Set abobject = .Object
End With
abobject.Text = "987698769812"
Über die Variaable abobject können Sie nun auf alle Eigenschaften und Methoden des Controls zugreifen.

Anzeige
AW: Prüfen ob ein Objekt schon vorhanden ist
30.08.2018 22:01:48
Sepp
Hallo Pascal,
setzte eine Haltepunkt in der Zeile
With objCtrl.Object

und schau dir im Lokalfenster die Eigenschaften von 'objCtrl' an.
Ansonsten keine weiteren Ideen.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Prüfen ob ein Objekt schon vorhanden ist
03.09.2018 18:53:14
Pascal
Danke noch einmal. Das hat mir sehr weiter geholfen.
Leider konnte ich das Problem nicht lösen, dass ich das Makro 2 mal ausführen muss bevor es klappt.

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige