EXCEL: Daten über Popup-fenster eingeben

Gades

Ensign
Registriert
Jan. 2008
Beiträge
217
Guten Morgen liebe Leute,

ich möchte in Excel 2007 in einer Zelle etwas ausrechnen (wer hätte das gedacht). Die Werte für diese Rechnung sind allerdings auf einem anderen Blatt. Normale Zellenbezüge herzustellen ist kein Problem, aber ich möchte es eleganter haben.

Und zwar möchte ich in Tabelle1 die Zelle "Ergebnis" (A1) anklicken und über ein aufgehendes Fenster, welches einen von mir definierten Bereich von Tabelle 2 (A1:B6) enthält, die max. 5 Werte eingeben.
A1:A5 sind die festen Textbezeichnungen für die Werte (gesperrter Bereich).
B1:B5 sind die einzugebenen Werte
B6 (gesperrt) ist die Summe aus A1:A5 , welche als Ergebnis auf Tabelle1 Zelle A1 (gesperrt) erscheinen soll.
Ich hoffe ich habs verständlich geschrieben.

Wahrscheinlich wird sowas mit VBA gemacht. Leider habe ich davon Überhaupt keine Ahnung, aber wenn ich für den oben genannten Bereich eine Vorlage hab, kann ich mir das nach meinen ansprüchen abändern.
 
Hi, ich bin selbst zwar nicht in VBA bewandert, aber so wie das aussieht, und von dem, was ich mir grade so zusammengesucht habe, benötigst du dazu eine Userform mit Spreadsheet, die du mit Spreadsheet1.Range befüllen kannst. Ich hab mal ne Beispiel Datei erstellt, ich glaube so ähnlich stellst du dir das vor?
 

Anhänge

  • test.zip
    13,8 KB · Aufrufe: 844
hmm.
Wenn ich die Testtabelle aufmache und auf das Feld Ergebnis klicke, dann komm die Meldung "Ein Objekt konnte nicht geladen werden, da es auf diesem Computer nicht verfügbar ist".
Nachdem ich dann auf OK geklickt habe komme ich in den VBA Bereich mit der Meldung "Fehler beim Kompilieren: Projekt oder Bibliothek nicht gefunden".
Die Textpassage "Private Sub UserForm_Initialize()" wird gelb markiert und da ich keinen Plan von VBA habe und auch nur extrem wenig mit dem Userform-kram (in OpenOffice) zu tun hatte, komme ich leider nicht weiter

Sollte beim Anklicken des Felds, ein Popup fenster aufgehen wo ich dann die Werte eingeben kann? Wenn ja, ist es fast perfekt.


ps. Da ich nicht 100% sicher bin, was ein Spreadsheet ist, habe ich kurz mal gegoogelt.
Ist das in diesem Fall diese Schaltfläche? Normal kann man ja auch das Arbeitsblatt als Spreadsheet bezeichnen.
 
Könnte evtl irgendwie mit der Office Version zusammenhängen, das hier ist jetzt Office 2003.
Falls jetzt die Initialize Prozedur nicht verfügbar ist, könntest du das auch auf UserForm.Activate legen, das sollte denk ich auch klappen. Wär evtl. sogar besser, da bei jedem Aufruf aktualisiert wird.

Aussehen sollte das ganze eigentlich in etwa wie im Anhang.
Kannst du mal 'nen Screenshot erstellen von deiner Anzeige in VBA?
 

Anhänge

  • Zwischenablage01.jpg
    Zwischenablage01.jpg
    272 KB · Aufrufe: 1.663
Bei 2003 funktionierts, bei 2007 nicht.
Wenn ich jetzt das Initialize durch Activate ersetze funktioniert es fast bei 2007. Popup geht auf, aber es erscheint keine Tabelle und er meckert wieder im VBA rum, sobald ich auf "Übernehme" klicke. Diesesmal ist es aber das "Private Sub CommandButton1_Click()".
Ich werde jetzt erstmal ein wenig Basteln und mich dann nochmal melden. Es tauchen bestimmt noch weitere Fragen auf bzw. bekomme ich es auch alleine hin.

Schonmal ein fettes DANKE.
 
Nachdem ich das Spreadsheetelement extra installieren musste, funktioniert es auch auf Excel 2007.
Das Aufrufen, Ausfüllen und Übernehmen klappt wunderbar.

Was mich jetzt nurnoch stört ist, dass die Formatierung (im Spreadsheet) nicht übernommen wird. Also Text hat immer die gleiche Größe und auch die Spaltenbreite bzw höhe ist immer gleich.
Wenn das noch zu ändern ist, wäre ich äußerst zufrieden.

edit. Hab soeben herausgefunden, dass ich in jeder Userform die Zellengröße, Position usw einstellen kann. Jetzt müsste nurnoch die Textformatierung übernommen werden
 
Zuletzt bearbeitet:
Du solltest in Visual Basic das Spreadsheet auf der Userform formatieren können. Rechte Taste->Befehle und Optionen und für jede Zelle das gewünschte Format eingeben.
Das bleibt dann erhalten, da mit Spreadsheet.Range nur die Werte übernommen (bzw. kopiert) werden.
Dort kannst du übrigens auch die Scrollleisten deaktivieren.
 
Zuletzt bearbeitet:
Zurück
Oben