Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
704to708
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
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ole-Object Performance Problem

Ole-Object Performance Problem
07.12.2005 14:16:13
alex
Hallo Leute,
ich hab eine Routine geschrieben, die in eine bestimmte Zelle eine MS-Forms Textbox einfügt. Auf 5 Rechnern läuft meine Applikation ohne Probleme, aber bei einem Rechner braucht er für das Einfügen einer Textbox ca. 5 Sekunden. Die Applikation erstellt aber ca. 50 Textboxen. Excel de- und installieren hab ich schon gemacht - bringt nix :-(
Hat Irgendjemand eine Idee dazu? Scheint sicherlich ein Betriebssystemproblem zu sein.

Sub textbox_einfügen(r As Range)
Dim sh As Worksheet
Dim txt As TextBox
Dim s As Shape
Dim v As OLEObject
Set sh = r.Worksheet
Set s = sh.Shapes.AddOLEObject("Forms.Textbox.1", , , , , , , r.Left + 1, r.Top + 1, r.Width - 1, r.Height - 1)
Set v = sh.OLEObjects(s.Name)
v.LinkedCell = r.Cells(1, 1).Address
v.Placement = xlMoveAndSize
v.Object.MultiLine = True
v.Object.ScrollBars = 2
v.Object.BorderStyle = 0
v.Object.SpecialEffect = 0
v.Object.EnterKeyBehavior = True
End Sub

MfG,
Alex E.

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ole-Object Performance Problem
ransi
Hallo Alex
Mal ein wenig geändert:


Option Explicit
Public Sub textbox_einfügen()
    Dim r As Range
    Dim sh As Worksheet
    Dim txt As TextBox
    Dim s As Shape
    Dim v As OLEObject
Set r = Range("c3")
    On Error Resume Next
    Shapes("Text_Box_von_Alex").Delete
Set sh = r.Worksheet
Set s = sh.Shapes.AddOLEObject("Forms.Textbox.1", , , , , , , r.Left + 1, r.Top + 1, r.Width - 1, r.Height - 1)
s.Name = "Text_Box_von_Alex"
Set v = sh.OLEObjects("Text_Box_von_Alex")
    With v
        .LinkedCell = r.Cells(1, 1).Address
        .Placement = xlMoveAndSize
        .Object.MultiLine = True
        .Object.ScrollBars = 2
        .Object.BorderStyle = 1 'damit man das Ding auch sieht..
        .Object.SpecialEffect = 0
        .Object.EnterKeyBehavior = True
    End With
End Sub
Wusste nicht wo dein r herkommt deshalb hab ichs selber festgelegt.
Evtl. hilfts dir weiter.
ransi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige