Office: Controls per code dauerhaft ändern

Helfe beim Thema Controls per code dauerhaft ändern in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi Leute, bin mal wieder auf der Suche nach der eierlegenden Wollmilchsau. Es geht um Excel 2007 - VBA - UserForm - enthaltenen Elemente (Controls).... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von VBAEisbär, 23. März 2015.

  1. Controls per code dauerhaft ändern


    Hi Leute,
    bin mal wieder auf der Suche nach der eierlegenden Wollmilchsau.
    Es geht um Excel 2007 - VBA - UserForm - enthaltenen Elemente (Controls).
    Ich habe ein größere Projekt vor der Brust (mit Multiseiten etc.), das ich auch nicht alleine bedienen werde. Nun gehen die Wünsche meist mit einem Kompromiss einher. Also werden sich die Formen und Inhalte noch einige Male ändern. Bei ca. 400 Elementen Farbe, Größe, Ort usw. mehrmals ändern zu müssen ist eine Arbeit, die richtig Spaß macht.
    Ich kann zwar per Code auf alles zugreifen, aber die Einstellungen sind flüchtig, d.h. schließe ich sind die Einstellungen wieder auf den voreingestellten Wert gesetzt.
    Wie kann ich meine Einstellungen dauerhaft machen ? - ohne bei jedem Start erst alles neu durchlaufen zu lassen.
    Ich kann mir zwar nicht vorstellen, dass ich der einzige mit diesem Wunsch bin, habe aber im Netz bisher nichts Brauchbares gefunden. Ich hoffe es gibt jemanden, der mir wochenlange Arbeit ersparen kann.

    Schon jetzt mit dankbaren Gruß
    VBAEisbär

    :)
     
    VBAEisbär, 23. März 2015
    #1
  2. Hallo Eisbär,

    zu Deiner etwas vagen Beschreibung kann ich nur mit eine allgemein gehaltenen Beschreibung antworten: bei der Definition von ActiveX-Steuerelementen kannst Du über das Eigenschaftsfenster ausgewählte Eigenschaften dauerhaft einstellen.

    Gruß
    Aloys
     
    aloys78, 24. März 2015
    #2
  3. Beverly
    Beverly Erfahrener User
    Hi,

    irgendwie verstehe ich das eigentliche Problem nicht: wenn du die Eigenschaften von Hand änderst, sind sie permanent und wenn du sie per Code änderst, kann es dir doch gleichgültig sein, wie die Steuerelemente nach dem Schließen aussehen, denn beim Neustart werden die Eigenschaften doch per Code von alleine wieder gesetzt - oder meinst du etas anderes?


    Controls per code dauerhaft ändern grusz.gif
     
    Beverly, 24. März 2015
    #3
  4. Controls per code dauerhaft ändern

    Hallo Aloys78, Hallo Beverly,
    vielen Dank erst einmal für euer kümmern.
    Zur Erklärung : ich bin dabei ein Projekt umzusetzen. Zur Zeit ist das aber nur ein Vorschlag. Nach dem Motto - viele Köche verderben den Brei - haben andere noch die Möglichkeit Einfluss auf Gestaltung und Inhalt zu nehmen.
    Das hat mich auf die Idee gebracht meine Text-Boxen, Bezeichnungs-Felder, etc. per Code zu initialisieren um Farbe, Größe, Ort, usw. einzustellen.
    So weit, so gut.
    Um in der endgültigen Fassung diese Routinen nicht bei jedem Start durchlaufen lassen zu müssen, habe ich mir gedacht, ich könnte diese Einstellungen statisch machen. Da es sich um mehrere hundert Felder handelt, befürchte ich z.B. lange Startzeiten.
    Ich suche also eine Funktion, die es mir ermöglicht, per Routine die Einstellungen so in die Eigenschaften einzutragen, als hätte ich das per Hand gemacht, und sie mir so bei nächsten Start wieder zur Verfügung zu stehen.
    Ich hoffe, ich habe das einigermaßen verständlich gemacht.

    In der Hoffnung auf Eure Hilfe erwarte ich gerne weitere Antworten.

    Gruß
    VBAEisbär
     
    VBAEisbär, 26. März 2015
    #4
  5. Beverly
    Beverly Erfahrener User
    Hi,

    ich verstehe immer noch nicht, wo das Problem ist: wenn du im vorläufigen Zustand die Eigenschaften per Code nach deinen Wünschen anpasst, läuft das Programm eben etwas langsamer, aber ich denke nicht, dass (wenn es fertiggestellt ist und du die Einstellungen nach deinen Wünschen getätigt hast) irgend jemand dann die Einstellungen/Eigenschaften ändern wird - wozu sollte das gut sein?

    Die Eigenschaften kannst du beim Start nur per Code anpassen (wenn du es denn machen willst) - andere Fixierungsmöglichkeiten gibt es m.W. nicht.


    Controls per code dauerhaft ändern grusz.gif
     
    Beverly, 26. März 2015
    #5
  6. Hallo,

    Schau dir mal die Designer-Eigenschaft an.
    Damit geht das .
    Hier mal ein Beispiel.
    Der Einfachheit halber die Einstellungen von einer Zelle übernommen.
    Geht natürlich auch hart codiert.
     
  7. Beverly
    Beverly Erfahrener User
    Hi ransi,

    ob man nun die Einstellungen aus einer Zelle nimmt oder sie im Code fest definiert (oder wir in deinem Beispiel), sollte doch keinen Unterschied machen, wenn es darum geht, dass sie NICHT per VBA zugewiesen sondern (so habe ich das verstanden) irgendwie fix verankert werden sollen. Wenn ich das richtig sehe, müssen sie in deinem Beispiel doch auch per VBA immer wieder neu, z.B. beim Start des UserForms oder irgend einem anderen auslösenden Ereginis, eingerichtet werden und sie sind nicht permanent - oder sehe ich das falsch?


    Controls per code dauerhaft ändern grusz.gif
     
    Beverly, 26. März 2015
    #7
  8. Controls per code dauerhaft ändern

    Hallo Karin,

    Die Änderungen sind permanent.
    Das ist ja das Gute.
    Wenn du z.B. viele Seuerelemente in deiner Userform hast ist es äußerst lästig während der Entwicklungszeit (Layout) immer wieder die Eigenschaften von Hand zu ändern.
    Das kann du mit der Designer-Eigenschaft per Code viel eleganter und bequemerr erledigen.
    Wenn dann das Layout steht, kannst du den Code löschen. Die Änderungen sind ja dauerhaft.

    ransi
     
  9. Beverly
    Beverly Erfahrener User
    Hi ransi,

    dann muss dieser Code nicht bei jedem Start des UserForms ausgeführt werden sondern nur einmalig? Die Änderung gilt nur für die beim Ausführen angesprochene Arbeitsmappe und kann für jedes vorhandene VBA-Objekt genutzt werden - im Prinzip also so etwas Ähnliches wie beim Ändern der Farbpalette? Das wäre dann ja wirklich ein komfortables Werkzeug. Oder funktioniert das nur mit einem UserForm?


    [Edit]: letzte Frage ergänzt.


    Controls per code dauerhaft ändern grusz.gif
     
    Beverly, 26. März 2015
    #9
  10. Hallo Ransi,
    Wow - Das ist ja noch besser als ich erwartet habe.
    Ich hab mal ein bisschen rumexperimentiert - der reinste Wahnsinn.
    Damit kann man z.B. Mischfarben nicht nur kryptisch auswählen, sondern sie auch optisch sofort sehen.
    Stellt man die Formatierungen in eine eigene Excel Datei stehen diese Einstellungen außerhalb der Programmumgebung trotzdem dauerhaft zur Verfügung.
    Benutzer abhängige Einstellungen sind somit auch kein Problem mehr - jeder bekommt seinen eigenen "Style".
    Mit ein bisschen nachdenken fallen einem bestimmt noch mehr Möglichkeiten ein.
    Wenn es dir nichts ausmacht, kannst du mir evtl. noch eine Frage beantworten :
    Ich kann ja so alle Elemente der UserForm ansprechen. Geht das mit der UserForm selbst auch ?

    Fazit : super Beitrag - alle drei Daumen hoch
    Vielen, vielen Dank

    Gruß
    VBAEisbär
     
    VBAEisbär, 26. März 2015
    #10
  11. Beverly
    Beverly Erfahrener User
    Hi,

    myDesigner benutzt doch das Objekt UserForm, du befindest dich also bereits auf der richtigen Ebene - für Farbe z.B. einfach ergänzen:

    Code:
    Controls per code dauerhaft ändern grusz.gif
     
    Beverly, 26. März 2015
    #11
  12. Hallo ransi,

    den Namen des Controls zu ändern geht leider leider nicht,
    oder gibt es da vielleicht einen Trick?

    Wäre interessant z.B. bei vielen Textboxen. Mann müsste nicht jede
    manuell ändern.
     
  13. Controls per code dauerhaft ändern

    HAllo Phelan,

    Warum soll das nicht funktionieren ?

    Dim myUserform As Object
    Dim myControl As Object
    Dim intCounter As Integer
    Set myUserform = ThisWorkbook.VBProject.VBComponents("Userform1").Designer
    For Each myControl In myUserform.Controls
    If TypeOf myControl Is Msforms.TextBox Then
    intCounter = intCounter + 1
    myControl.Name = "Ein_neuer_Name" & intCounter
    End If
    Next


    Klappt einwandfrei.

    :-)

    ransi
     
  14. Das erleichtert einem die Arbeit.

    Ich hatte deinem ersten Code rot-markiertes hinzugefügt.
    Da läuft er in einen Fehler, weißt du warum?

    Code:
    Fehlermeldung:
    Die Referenz passt doch?!
     
  15. HAllo Phelan,

    Keine Ahnung was da klemmt.
    Mein Beispielcode in meiner beispieldatei läuft ohne Fehlermeldung durch.
    Bei allen Textboxen wird der Name geändert.

    ransi
     
Thema:

Controls per code dauerhaft ändern

Die Seite wird geladen...
  1. Controls per code dauerhaft ändern - Similar Threads - Controls code dauerhaft

  2. Bilddaten aus Speicher direkt ins Image control laden

    in Microsoft Access Hilfe
    Bilddaten aus Speicher direkt ins Image control laden: Hallo, ich möchte Bilddaten (Byte-Array) direkt vom Image control anzeigen lassen, jedoch ohne den Umweg der Erstellung eines BMP-Files und der Zuweisung des Bildpfades an das Bildelement. Ich...
  3. WindowsMediaPlayer Control erstellen und bearbeiten

    in Microsoft Excel Hilfe
    WindowsMediaPlayer Control erstellen und bearbeiten: Hallo Zusammen, ich möchte während der Runtime ein WindowsMediaPlayer-Control in meiner Userform erstellen und anpassen. Leider weiß ich nicht wie der Syntax aussehen muss. Im Anschluss möchte...
  4. Slider Control 6.0 einbinden

    in Microsoft Excel Hilfe
    Slider Control 6.0 einbinden: Liebe community, hoffentlich kann mir jemand bei folgendem Problem weiterhelfen: Ich habe in einem Projekt in diversen userforms mehrere Schieberegler vom Typ "Slider Control 6.0" eingebunden....
  5. Controls

    in Microsoft Access Hilfe
    Controls: Hallo, ich habe folgende Funktion geschrieben. Code: Public Sub setControl(inForm As String, inTag As String, inAttribut As Integer, inBoolean As Boolean) 'Setzt Attribute f?r bestimmte...
  6. Control an Sub übergeben

    in Microsoft Access Hilfe
    Control an Sub übergeben: Hallo, ich habe in einem Formular mehrere Textfelder, deren Eingabe auf Richtigkeit geprüft werden soll. Entspricht der Wert nicht den angegebenen Grenzen, soll eine Meldung erscheinen und der...
  7. Zugriff auf das FlexGrid Control

    in Microsoft Access Hilfe
    Zugriff auf das FlexGrid Control: Hallo Leute, ich habe Windows 10 Professional mit MC Access 2016 (32 BIT!!!). Wollte mich mal ein wenig mit dem "FlexGrid" beschäftigen. Die entsprechende Datei "MsFlexGrd.ocx" habe ich im...
  8. Wie vorgehen bei Bennung der Controls auf Multipages

    in Microsoft Excel Hilfe
    Wie vorgehen bei Bennung der Controls auf Multipages: Hallo Zusammen, ich hab ein Programm geschrieben welches aus mehren UF besteht. Jetzt möchte ich diese UF gern in einer UF mit mehreren Multipages zusammen führen. Bevor ich jetzt gleich...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden