Office: VBA - Button verliert immer wieder seinen Namen

Helfe beim Thema VBA - Button verliert immer wieder seinen Namen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, momentan quält mich ein widerporstiger CommandButton. Andauernd "verliert" er seinen Namen. Dadurch kommen natürlich immer wieder... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von fette Elfe, 25. Januar 2011.

  1. fette Elfe Erfahrener User

    VBA - Button verliert immer wieder seinen Namen


    Hallo,

    momentan quält mich ein widerporstiger CommandButton.
    Andauernd "verliert" er seinen Namen.
    Dadurch kommen natürlich immer wieder Fehlermeldungen, sobald sich im Source ein Befehl auf diesen Button bezieht, denn der kann ja dann nicht mehr gefunden werden...

    nach Erstellung des Buttons hieß dieser:
    CommandButton15

    Da er seitdem nicht benutzt wurde, und ich die entsprechende Funktionalität erst dieses We eingebaut habe, ist es mir nicht vorher aufgefallen.
    Ich habe ihn umbenannt in:
    CommandButton15_DatenAktualisieren

    Kann es sein das der Name einfach nur zu lang ist?
    Ändere ich den Namen in der geöffneten Mappe, ist alles okay, der Name bleibt.
    Aber bei jedem Öffnen der Mappe ist er wieder auf "CommandButton15" verkürzt.
    Im Hinterkopf ahnt mir, ich hätte so ein Problem irgendwann schon einmal gehabt, und da hätte es an der Namenslänge gelegen.


    Gibt es eine Begrenzung der Namenslänge?
    Und kann mir jemand sagen wie lang so ein Name höchstens sein darf?


    Ich werd den Namen jetzt erstmal ändern/kürzen, den Code überall anpassen, und dann mal schauen.
     
    fette Elfe, 25. Januar 2011
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Achim,

    die Maxiallänge des Namens eines Steuerelements beträgt 128 Zeichen (deine Bezeichnung ist nur 34 Zeichen lang).

    Hast du ihn mal komplett anders zu benannt (z.b. cbbDatenAktualisieren)?

    Bis später,
    Karin
     
    Beverly, 26. Januar 2011
    #2
  3. miriki Erfahrener User
    Ich würde empfehlen, den "automatischen" Namensteil möglichst ganz zu vermeiden. Ich hatte ähnliche Probleme, worksheets zu erstellen, die z.B. "Tabelle17" heißen sollten. Seitdem verhindere ich, Namen zu benutzen, die Excel auch automatisch vergeben könnte.

    Dein Button hat zumindest im ersten Teil immer noch den möglichen automatischen Teil. Vielleicht ist das ein Problem? Ich benenne Buttons, wenn ich sie denn ansprechen muß, immer in irgendwas mit "btn_xxxxx" um. Gibt ja eigentlich auch keinen Grund, wenn man denn schon umbenennt, das "CommandButton1" mitzuschleifen.

    Die Länge des Namens könnte vielleicht ein Problem sein, glaube ich aber eher nicht. Selbst wenn Excel noch ein "_Click" an den Namen hängt, um den Prozedurnamen zu definieren, müßte das eigentlich noch reichen. Ich finde jetzt auf die Schnelle aber keine Spezifikationen für VBA, was die Länge von Variablen- und anderen Namen betrifft.

    Die Zeiten von "max. 32 Zeichen" oder so dürften aber schon lange gegessen sein. Die "normale" Stringlänge von (1 Byte für Länge) 255 Zeichen wird wahrscheinlich nutzbar sein.

    Gruß, Michael
     
  4. fette Elfe Erfahrener User

    VBA - Button verliert immer wieder seinen Namen

    Hallo Karin, über eine Maximallänge habe ich nirgendwo etwas gefunden, deshalb danke für Deine Antwort.
    Komplett anders benannt habe ich Ihn noch nicht.
    Habe gestern Abend "DatenAktualisieren" in "DBReorganisieren" umgeändert, und hatte heute von der Seite keine Probleme...



    Hallo Michael, auch Dir danke.
    Den automatischen Namensteil habe ich bisher aus Faulheit gelassen, und der Übersichtlichkeit wegen.
    Die Durchnummerierung finde ich sehr praktisch.
    Aber die kann ich natürlich auch anders realisieren.

    Werde mir für die Zukunft mal was überlegen.
    Im Moment scheints ja zu klappen, und im allgemeinen macht das bei mir auch keine Probleme.

    Aber bei Excel weiß man ja nie welcher Schwachfug urplötzlich auftaucht.
    Heute kamen Fehlermeldungen (bei einem schon länger problemlos funktionierenden Sub) wo Werte in Zellen geschrieben werden.
    Das entsprechende Blatt ist ausgeblendet, und weil ich zu faul bin den Blattschutz im VBA immer zu setzen und zu lösen, ist es nicht geschützt.
    Heute meckerte der Code, die Zelle könne nicht geändert werden, weil das Blatt geschützt sei. *grummel*
    Habe nachgeschaut, Blatt war NICHT geschützt. *grrrummel*
    Habe eine Abfrage eingebaut (wenn geschützt, dann Schutz weg), immernoch Fehlermeldung, weil laut Abfrage kein Schutz. *grrrrrrrrrrrrrummel*
    Habe "Sheet.unprotect" eingebaut, funktioniert.... *GRUMMEL und an Kopf pack*
    Und das Blatt ist zu keine Zeit geschützt....

    Datt sind so Tage wo VBA einfach keinen Spaß mehr macht...
     
    fette Elfe, 26. Januar 2011
    #4
  5. Beverly
    Beverly Erfahrener User
    Hi Achim,

    Mal nur als Hinweis bzw. Tipp: es gibt bekanntlich keine Regeln, wie man eine Variable oder Objekte benennen muss, außer dass sie bestimmte Zeichen nicht enthalten und nicht mit einer Ziffer beginnen dürfen. Dennoch hat sich unter den Programmierern eingebürgert, dass man dem Namen für Variablen/Objekte einen kleingeschriebenen Präfix voranstellt, der den Typ der Variablen/des Objektes charakterisiert. Das wären z.B. lng für Long, int für Integer, rng für Range oder cmd für CommandButton (war in meinem Vorschlag also nicht korrekt ;-)). Einerseits hilft dies, Codes anderer Autoren leichter zu lesen und andererseits hilft es einem selbst beim Programmieren - man muss nicht immer in die Deklaration schauen um zu wissen, welchen Variablentyp man zugeordnet hat.

    Bis später,
    Karin
     
    Beverly, 27. Januar 2011
    #5
  6. fette Elfe Erfahrener User
    Jo Karin, Du hast ja recht.
    Weiß ich auch.
    War bisher nur zu faul...
    Und Gewohnheiten ändert man nicht mal eben.

    Auch wenn außer mir eh keiner meinen Code liest (außer Ihr hier wenn ich etwas frage), und auch wenn ich normalerweise auch ohne die Deklaration zu lesen weiß um welchen Variablentyp es sich handelt, so sind das doch nur faule Ausreden.
    Ich sollte mich mal endlich umgewöhnen.


    Einige der Abkürzungen sind mir klar, aber bevor ich mir jetzt die falschen angewöhne, gibt es irgendwo eine Liste?
    Oder nutzt nur Augen offen halten bei fremden Code-Beispielen?
     
    fette Elfe, 27. Januar 2011
    #6
  7. Beverly
    Beverly Erfahrener User
    Beverly, 28. Januar 2011
    #7
  8. fette Elfe Erfahrener User

    VBA - Button verliert immer wieder seinen Namen

    Ganz lieben Dank dafür.



    Hm, mir scheint das ist so nicht ganz richtig.
    Denn seitdem ich den Button in "CommandButton15_DBReorganisieren" (genau 32 Zeichen) umbenannt habe, traten keine Probleme mehr auf.
    Und in einer anderen Datei (schon knapp 1,5 Jahre alt), vergebe ich über eine Combobox einen Blattnamen, und dieses Blatt wird unter diesem Namen auch als neue Datei gespeichert.
    Dort ist auch die "32-Zeichen-Begrenzung".
    Obs der Blattname oder der Dateiname ist, weiß ich grad nicht mehr.

    Anscheinend sind also die Zeiten von "max. 32 Zeichen" doch noch nicht überall gegessen.
    Oder gibt es in den Optionen irgendwo einen Haken den man dafür setzen muss?
     
    fette Elfe, 29. Januar 2011
    #8
  9. Beverly
    Beverly Erfahrener User
    Hi Achim,

    an der Länge des Blattnamen hat sich tatsächlich nichts geändert - da sind es nach wie vor 31 Zeichen (nicht 32!!).

    Ich habe jetzt mal eine Beispielmappe mit einem CommandButton erstellt mit dem Namen:

    DiesIstEinSchalterDerMehrAls32ZeichenImNamenHatUndKeineProblemeMacht

    Das sind 68 Zeichen und es gibt keinerlei Problem damit (getestet in Excel2002 und Excel2010).

    Hast du schon mal getestet, wenn du den Unterstrich weglässt, aber mehr als 32 Zeichen hast?

    Bis später,
    Karin
     
    Beverly, 29. Januar 2011
    #9
  10. fette Elfe Erfahrener User

    Hallo Karin,
    das erklärt mir auch meine Notiz wo "31 Zeichen" drinn steht.
    Ich dachte ich hätte vorsichtshalber eins weniger genommen...




    >>>> siehe unten...
    *grübel*
     
    fette Elfe, 30. Januar 2011
    #10
  11. Beverly
    Beverly Erfahrener User
    Hi Achim,

    dieses Verhalten kann ich leider nicht nachvollziehen. Hast du schon mal den "Problemschalter" gelöscht und einen neuen erstellt? Oder in einer neuen Arbeitsmappe einen CommandButton mit mehr als 31 Zeichen getestet?

    Bis später,
    Karin
     
    Beverly, 30. Januar 2011
    #11
  12. fette Elfe Erfahrener User
    Hi Karin,

    sry, hab ich vergessen dazu zu schreiben.
    DAS IST aus einer neuen Mappe mit einem neuen Button.

    Den "Problem Button" zu löschen habe ich mir nach diesem Test dann mal gespart.
     
    fette Elfe, 30. Januar 2011
    #12
  13. Beverly
    Beverly Erfahrener User

    VBA - Button verliert immer wieder seinen Namen

    Hi Achim,

    ich habe es von jemandem testen lassen der Excel2003 hat - der hat ebenfalls keinerlei Problem damit. Du hast alle Servicepacks installiert?

    Bis später,
    Karin
     
    Beverly, 30. Januar 2011
    #13
  14. fette Elfe Erfahrener User
    Hi Karin,

    ich hab zwar jetzt etwas länger keine Office-Updates mehr gesucht, aber SP2 für Office 2007 habe ich drauf.

    Und ich glaube ja nicht das dies erst in der letzten Zeit geändert wurde, wenn sogar ältere Office-Versionen das können.

    Aber man weiß ja nie...
     
    fette Elfe, 30. Januar 2011
    #14
  15. Beverly
    Beverly Erfahrener User
    Hi Achim,

    ich habe es jetzt sicherheitshalber noch einmal mit Excel2007 getestet - völlig unproblematisch.

    Eventuell hilft ja, Excel mal zu reparieren.

    Bis später,
    Karin
     
    Beverly, 31. Januar 2011
    #15
Thema:

VBA - Button verliert immer wieder seinen Namen

Die Seite wird geladen...
  1. VBA - Button verliert immer wieder seinen Namen - Similar Threads - VBA Button verliert

  2. Excel VBA mit Toggle Button Zeile einfärben

    in Microsoft Excel Hilfe
    Excel VBA mit Toggle Button Zeile einfärben: Hallo, ich habe ein Makro für einen activeX Toggle Button. Wenn dieser nicht betätigt ist, sollen bestimme Zellen in einer Reihe ihre Hintergrundfarbe ( hexal #FFFFFF ; RGB 255 255 255)...
  3. STRG+F via Button mit VBA

    in Microsoft Excel Hilfe
    STRG+F via Button mit VBA: Moin, ich habe ein Problem, welches ich nicht im Stande bin alleine zu lösen. Ich habe eine Excel-Tabelle, wo Stellplätze von 3 Kühlhäusern aufgeführt sind. Die Excel wird auf einem Panel-PC...
  4. Toggle Button mit Passwort schützen

    in Microsoft Excel Hilfe
    Toggle Button mit Passwort schützen: Hallo zusammen, leider habe ich kaum Ahnung von VBA-Codes, deshalb frage ich hier nach eurer Unterstützung. In einer Excel-Datei soll es einen Toggle-Button geben, der entweder "Freigegeben"...
  5. Abbrechen Button bei Inputbox

    in Microsoft Excel Hilfe
    Abbrechen Button bei Inputbox: Hallo zusammen, ich habe folgendes Problem: wenn ich bei meiner InputBox auf "Abbrechen" oder auf das "X" zum Schließen des Dialogfeldes drücke, erscheint die Fehlermeldung "Typen unverträglich"....
  6. Excel VBA Problem create button

    in Microsoft Excel Hilfe
    Excel VBA Problem create button: Hallo liebe Community, ich hoffe ihr könnt helfen, bin am verzweifeln und kann den Fehler einfach nicht finden. Wir haben eine aufwendig gestallte Excel Liste, wo wir unter anderem Button...
  7. Über Command Button dynamisch Dokumente öffnen

    in Microsoft Excel Hilfe
    Über Command Button dynamisch Dokumente öffnen: Hallo Zusammen, Ich habe eine Tabelle in der über unterschiedliche Kriterien, Produkte angezeigt werden. Nun möchte ich dazu, zu dem entsprechenden Produkt, über einen CommandButton die...
  8. Excel VBA Suche mit Hilfe Command Buttons anzeigen

    in Microsoft Excel Hilfe
    Excel VBA Suche mit Hilfe Command Buttons anzeigen: Hallo Ich habe eine UserForm erstellt, welche mit voneinander Abhängige Comboboxen sucht. Dabei wurde mir schon geholfen in diesen Forum. Ich würde mir gerne das Ergebnis mithilfe eines...
  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