Autor
|
Thema: Useform aktualisieren?? (1019 mal gelesen)
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 02. Jun. 2009 15:40 <-- editieren / zitieren --> Unities abgeben:
Ich komm einfach nicht weiter!?! Ich habe eine Userform, in der die Anzahl von Togglebuttons automatisch berechnet werde. Die Anzahl ergibt sich aus einem Wert aus einer Zelle. Das funktioniert auch einwandfrei. ABER Vorgehensweise: Ich gebe z.B. 2000 in die Zelle ein dies müsste 5 Buttons ergeben. Tut es auch. Wenn ich nun den Wert aber ändere z.B. auf 1500 sollten hier 4 Buttons sein und das geht eben nicht. Es werden immer noch 5 Buttons angezeigt. Wenn ich Userform_initialize wähle passiert nichts Wenn ich Userform_Activate wähle, wird meine Userform verzert, da die Höhe ebenfals berechnet wird. Was mach ich falsch? Danke & Gruß Andreas ------------------ Ich nutze Boardsuche | Google | Netiquette Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 02. Jun. 2009 16:40 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 02. Jun. 2009 18:58 <-- editieren / zitieren --> Unities abgeben:
|
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 02. Jun. 2009 19:51 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 02. Jun. 2009 20:09 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 02. Jun. 2009 20:21 <-- editieren / zitieren --> Unities abgeben:
|
Hofe Mitglied Werkzeugmacher
Beiträge: 439 Registriert: 12.01.2008
|
erstellt am: 02. Jun. 2009 20:49 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
Zitat: Original erstellt von runkelruebe: Ich werf mal munter sowas wie Load, Unload, Show und Hide in den Raum
Refresh könnte auch funktionieren. ------------------ Ich möchte sterben wie mein Opa: Im Schlaf. Nicht schreiend wie sein Beifahrer. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 02. Jun. 2009 20:52 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 03. Jun. 2009 01:24 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
Irgendeiner wird schon sagen " Und? Sie sind der Meinung, das war Spitze" ;-) Beteilige ich mich mal beim Raten ,) in der 'Grossen' automatische Berechnung ausgeschaltet? Da in deiner nicht hochladenen Mappe ja alles funktioniert... und ich Load, Unload, Show und Hide mal ausschliesse... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 03. Jun. 2009 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 03. Jun. 2009 09:35 <-- editieren / zitieren --> Unities abgeben:
|
MWN Mitglied Dipl.-Ing.
Beiträge: 492 Registriert: 14.02.2007
|
erstellt am: 03. Jun. 2009 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
Woher weiß eigentlich deine Form, dass du den Wert in der Zelle änderst? Refresh für die Userform müsste eigentlich ausreichend sein, ich gehe mal davon aus (ohne jetzt die File geladen zu haben), dass du einfach das falsche Event genommen hast! Grüße Tobias [Diese Nachricht wurde von MWN am 03. Jun. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 03. Jun. 2009 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
In 07 klappt's. A1 Buttons 999 3 1500 4 2000 5 2001 5 10000 21 Die Formel dahinter: AnzahlButtons = A1 / 500 + 1 Bei jeder (!) Änderung von Zelle A1 wird die Form aufgerufen. Dabei durchläuft die Form das UserForm_initialize, und darin wird die Anzahl Schalter errechnet. Ich persönlich bin kein großer Freund von SelectionChange. Dein mehrfaches Worksheet_SelectionChange empfinde ich als störend, da permanent die Box auftaucht und nicht auf [ESC] reagiert. ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 03. Jun. 2009 12:12 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Paulchen: In 07 klappt's.
Was meinst du bitte damit? Zitat: Original erstellt von Paulchen: ...Ich persönlich bin kein großer Freund von SelectionChange. Dein mehrfaches Worksheet_SelectionChange empfinde ich als störend, da permanent die Box auftaucht und nicht auf [ESC] reagiert.[/i]
Ich bin für jeden Vorschlag, der zur Verbesserung führt, zu haben. ------------------ Ich nutze Boardsuche | Google | Netiquette Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 03. Jun. 2009 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
Mahlzeit, Zitat: Was meinst du bitte damit?
Naja *hüstel*: Du schreibst oben, dass Du mit Excel 20 03 schaffst. Ich habe hier zwischendurch Excel 20 07 zur Verfügung, Kurzform: 07. Mit 07 kann ich den von Dir (mehr oder weniger) beschriebenen "Fehler" nicht nachvollziehen. Mit "es klappt" weise ich auf die anschließend aufgeführten Beispiele hin. Ich habe Deine Mappe genommen und die angegeben Zahlenwerte eingegeben. Daraufhin tauchte die UserForm mit der (ebenfalls angegebenen und) korrekten Anzahl an Schaltflächen darauf auf. Mein Posting von oben: Unterhalb von A1 (linke "Spalte") stehen die Beispielwerte, die ich verwendet habe. Daneben - unter Buttons - ist die Anzahl an Schaltflächen aufgelistet, die die UserForm für den entsprechenden Wert in A1 anzeigte. Das ist die rechte "Spalte" im vorherigen Beitrag. Die Formel in UserForm_initialize arbeitet, was diesen Rechenschritt angeht, meiner Ansicht nach richtig. Verbesserungsvorschläge? Das gestaltet sich als äußerst schwierig. Mir fällt es schwer, Dein Ziel zu "erraten". Dieser Beitrag bezieht sich bisher auf einen (sehr dünn beschriebenen) "Fehler", den ich nicht reproduzieren kann. Zumal die Mappe recht wild aus allerlei Codeschnipseln - Verzeihung - zusammengestöpselt scheint. Was soll die Mappe den können, wenn sie fertig ist? Wofür benötigst Du die "interaktive" unterschiedliche Anzahl an Schaltflächen auf einer UserForm? ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 03. Jun. 2009 13:23 <-- editieren / zitieren --> Unities abgeben:
Das Ganze ist nur eine Idee und es könnte sein, dass das auch im Snade verläuft, ist aber interessant ob es eben geht. Die Zahl die eingegeben wird ist eine Länge, dei wiederum in Bereiche von 500 aufgeteilt ist. Diese Bereich werden durch die Buttons dargestellt. Durch das anklicken wird dargestellt, in welchem Bereich sich etwas befindet. Wie gesagt ist alles nur eine Idee. Das mit dem Geschnipsel ist schon richtig, da ich ja leider kein Spezialist bin sammle ich etwas und probiere solange rum biss mein gewünstes Ergebniss da ist. Nicht gerade die schöne Art aber der Zweck heiligt die Mittel.
------------------ Ich nutze Boardsuche | Google | Netiquette Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 03. Jun. 2009 21:39 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
'n Abend, ein paar ausbaufähige Häppchen - Code aus der Mappe, stark reduziert... Code: 'TabelleOption Explicit Private Sub CommandButton1_Click() frmSektionen.Show End Sub Private Sub Worksheet_Change(ByVal Target As Range) 'Worksheet_SelectionChange <> Worksheet_Change! 'nur Anzeigen, falls die Zelle A1 geaendert wurde... If Target.Cells.Count > 1 Then Exit Sub 'Mehrere Zellen markiert: Fehler abfangen If Target = Range("A1") Then frmSektionen.Show End Sub 'frmSektionen Private Sub UserForm_initialize() Dim objTGbutton As MSForms.ToggleButton ' Variable für Objekt als neuer ToggleButton Dim inLetzte As Integer ' Variable für letzte belegte Spalte Dim inI As Integer ' Schleifenzähler Dim ZellBez As String If Not ActiveSheet.Name = ThisWorkbook.Worksheets(1).Name Then Exit Sub ZellBez = Range("A1") Application.EnableEvents = True inLetzte = ZellBez / 500 + 1 ReDim aCommands(1 To inLetzte) For inI = 1 To inLetzte Set objTGbutton = frmSektionen.Controls.Add("Forms.ToggleButton.1", "TGbutton" & inI, True) frmSektionen.Controls("TGbutton" & inI).Caption = "Sek " & inI With objTGbutton .Left = 25 .Width = 160 .Height = 40 .Top = 40 * inLetzte + 40 - (40 * inI) '40 * inI .Font.Size = 12 End With Next inI frmSektionen.Height = 40 * (inI + 2) frmSektionen.Width = objTGbutton.Width + (objTGbutton.Left * 2) End Sub
Willst Du tatsächlich Toogle-Buttons haben? Zitat: Durch das anklicken wird dargestellt, in welchem Bereich sich etwas befindet.
Was soll passieren, wenn Du auf eine der Schaltflächen klickst?BTW finde ich Codeschnipsel gerade im Entwicklungsstadium toll; es war nur auf den ersten Blick etwas unübersichtlich und verwirrend, zumal die Kommentare im Code nur teilweise einen Bezug zum Code haben... Hoffe, Du nimmst mir diesen "Rüffel" nicht übel. ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 03. Jun. 2009 22:59 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
Hallo Paulchen, If Target = Range("A1") Then frmSektionen.Show Wenn ich in eine beliebige Zelle zufällig den selben Wert wie in A1 eingebe, erscheint das Userform. Gewollt? ------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 04. Jun. 2009 07:44 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 04. Jun. 2009 07:57 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Paulchen: ...BTW finde ich Codeschnipsel gerade im Entwicklungsstadium toll; es war nur auf den ersten Blick etwas unübersichtlich und verwirrend, zumal die Kommentare im Code nur teilweise einen Bezug zum Code haben... Hoffe, Du nimmst mir diesen "Rüffel" nicht übel.
Ich werde mich hüten einem Helfer in der Not etwas übel zu nehmen. ------------------ Ich nutze Boardsuche | Google | Netiquette Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |