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

Name eines erzeugten Steuerelements ermitteln?

Name eines erzeugten Steuerelements ermitteln?
02.09.2016 19:15:15
Kasimir
Hallo Leute!
Ich habe da eine kleine Frage. Mit nachfolgendem VBA-Code erzeuge ich in einer UserForm ein Spreadsheet-Steuerelement.
Private Sub UserForm_Initialize()
Dim objspreadsheet As OWC11.Spreadsheet
Standardtexte.Range("B1:BH7").Copy
Set objspreadsheet = Me.Frame1.Controls.Add("OWC11.Spreadsheet", "Spreadsheet1", True)
With objspreadsheet
.Height = 188.25
.Left = 6
.Top = 12
.Width = 642
.DisplayToolbar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
.Range("A1:BG7").Paste
.Columns("A:BG").EntireColumn.AutoFit
.Range("A1").Select
.Rows("1:8").RowHeight = 20
.Rows("9:262144").RowHeight = 0.1
.Columns("BH:ZZZ").ColumnWidth = 0.1
.Range("C1:BH8").Locked = False
.Worksheets("Tabelle1").Protect
End With
Set objspreadsheet = Nothing
End Sub
Das mache ich, weil ich beim Öffnen der Datei immer den Hinweis
„Diese Anwendung versucht, ActiveX-Steuerelemente zu initialisieren, die unsicher sein können. Wenn Sie der Quelle der Datei vertrauen, wählen Sie "OK" und die Steuerelemente werden mit Ihren aktuellen Arbeitsbereichseinstellungen initialisiert.“
erhalte. Wenn ich das Spreadsheet erst erstelle, wenn ich die UserForm aufrufe, kommt die Meldung nicht. Ist zwar eine Krücke, funktioniert aber.
Nun möchte ich in der UserForm aber auf das Spreadsheet zugreifen, z.B. mit einem Button Daten aus dem Spreadsheet in eine Tabelle übertagen, weiß aber nicht wie, weil ich den Namen des Spreadsheets nicht kenne. Kann mir jemand sagen, wie ich das Steuerelement ansprechen muss.
Danke Euch schon mal für die Hilfe,
Kasimir

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Gelöst!
02.09.2016 19:23:30
Kasimir
Hallo Leute!
Manchmal sieht man den Wald vor Bäumen nicht. Ich habe es jetzt mit folgendem Code gelöst:
Private Sub CommandButton1_Click()
Dim ctControlName       As control
For Each ctControlName In Me.Controls
If TypeName(ctControlName) = "Spreadsheet" Then
ctControlName.Range("A2:BG7").Copy
Standardtexte.Range("B2").PasteSpecial Paste:=xlPasteAll
End If
Next
End Sub
Sorry, dass ich Euch belästigt habe.
MfG,
Kasimir
AW: Gelöst!
02.09.2016 19:49:20
Nepumuk
Hallo Kasimir,
in dieser Zeile:
Controls.Add("OWC11.Spreadsheet", "Spreadsheet1", True)
gibst du dem Control den Namen Spreadsheet1, also warum danach suchen? Einfach so:
Private Sub CommandButton1_Click()
Controls("Spreadsheet1").Worksheets("Tabelle1").Range("A2:BG7").Copy
Standardtexte.Range("B2").PasteSpecial Paste:=xlPasteAll
End Sub

Gruß
Nepumuk
Anzeige
AW: Gelöst!
02.09.2016 19:59:33
Kasimir
Hallo Nepumuk!
Das sieht natürlich eleganter aus. Ich werde es wie von Dir vorgeschlagen machen. Danke Dir, dass Du Dir, obwohl ich den Beitrag als gelöst markiert habe, trotzdem noch die Mühe gemacht hast, einen Lösungsvorschlag zu posten.
Schönes Wochenende,
Kasimir

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige