Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Dropdown mit Auswahl-Pfeil / Schriftgröße
#41
Hallo Christine,

ich habe Dir mal etwas zusammengebastelt.

Schau Dir den Teil an, der für die Kunden bestimmt ist.
Ich habe ActiveX Combos eingefügt.

Die Steuerung läuft über die Tabelle "Parameter".

Wenn das erst einmal passt, dann könntest Du den Ganzen rechten Teil mit den Modulen und Berechnungen löschen.
Dann kannst Du mal aufstellen, welche Berechnungen aufgrund der Auswahlen gemacht werden sollen.
Das kann dann schön  übersichtlich in einer weiteren Tabelle passieren.

So können Teile die für den Kunden bestimmt sind und eure Berechnungen ganz getrennt werden.


.xlsx   Kopie von __ActiveX-Steuerelement Vorlage 100216__.xlsx (Größe: 80,45 KB / Downloads: 9)

Falls die Combos aus irgendeinem Grunde nicht funktionieren sollten, dann liegt es an Versionsunterschieden.
Dann musst Du die Einstellungen meiner Combos in von Dir eingefügte übernehmen und meine löschen.
Teste es erst einmal mit zwei Combos, einmal in Spalte C und einmal in Spalte E.

Wenn Du die Listfillrange anguckst, stehen dort keine Bereichsadressen sondern Namen. Das sind definierte Namen,
die Du im Menü in der Gruppe Formeln im Namensmanager findest.

Wenn nach Eingaben die Modulanzahl verändert wird und somit bestimmte Combos auch geleert werden müssen,
dann links in der Bearbeitungsleiste, da wo die Zelladressen stehen, den Begriff "eingabe" ohne Anführungszeicheneingeben und mit Enter abschließen.
So sind dann die Zellen Markiert, die geleert werden müssen. Jetzt einfach "Entf" drücken und die Combos sind leer.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Christine
Antworten Top
#42
Hallo Christine,

habe gerade feststellen müssen, dass die Combos in Spalte e nicht richtig funktionieren und so auch nicht funktionieren werden.
Das liegt an den definierten Namen, die Indirekt als Formelbezug haben. Diese haben Probleme mit den ActiveX Steuerelementen.
Mit Formularsteuerelementen geht es. Aber ob die mit der Schriftgröße mehr Sinn machen als Datengültigkeit, ich weiß nicht.

Du kannst jetzt hingehen und in Spalte E Combos aus den Formularsteuerelementen einfügen oder bei den bestehenden in allen in die ListFillRange
"Type" eingeben. Dann können die Namen Modul_1 bis Modul_12 im Namensmanager gelöscht werden.

Ich hatte es deshalb so versucht, damit je nach Anzahl der Modulauswahl die Combos gefüllt oder leer erscheinen. Mit "Type" als ListFillRange sind sie immer gefüllt.
Ich lese aber an erste Stelle der Liste eine Leerzeile ein, damit sie leer erscheinen.

Wie schon geschrieben, würde VBA Einsatz das Ganze erheblich Nutzerfreundlicher machen.
Die Frage bleibt aber immer noch, welche Berechnungen sollen wie und wo gemacht und wie und wo angezeigt werden.
Das ausgehend davon, dass Du Dich von der zwar funktionierenden aber relativ umständlich aufgebauten Lösung Deines Vorgängers verabschiedest.
Gruß Atilla
Antworten Top
#43
Hallo Christine,

ich habe Dir mal etwas zusammengebastelt mit minimalem VBA Einsatz.
Im Code können Zeilen bei nicht Gebrauch entfallen.

ich hoffe, ich habe die Berechnungen richtig eingestellt, wenn nicht, ist das aber sicher recht einfach richtigzustellen.

Schau es Dir einfach mal an.
Ohne VBA Einsatz würde ich Dir vom Einsatz der ActiveX Steuerelemente abraten. Die verhalten sich teilweise sehr sperrig.



.xlsm   Kopie von __ActiveX-Steuerelement Vorlage 100216__3.xlsm (Größe: 76,9 KB / Downloads: 6)
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Christine
Antworten Top
#44
Danke schön Atilla,

ich schaue mir die von dir erstellten Tabellen an. Da ich heute nur kurz im Büro bin, werde ich mich sicherlich am Montag wieder melden können.
Dann kann ich auch genau antworten, was m.E. geht und was nicht und wie sich das mit den Berechnungen verhalten soll.

Beste Grüße :)
Christine
Antworten Top
#45
Hallo Atilla,

danke schön für die Hilfen, Erklärungen und Vorlagen. Ich habe mir die Tabelle mit VBA mal angeschaut. Irgendwie sieht das für mich immer noch kompliziert aus aber sicher nur, weil ich zuvor nie was mit dieser Thematik zu tun hatte  :32:

Deine Frage „welche Berechnungen sollen wie und wo gemacht und wie und wo angezeigt werden.“ versuche ich zu beantworten.

Kd kann bei dem gewünschten Teil 1-12 Module auswählen je nach Bedarf.
Ab der nächsten Zeile soll er die jeweiligen Auswahlen Wasser © und Module (E) treffen können mit jeweils dahinter „liegenden“ Beschreibungen / Preisen, die automatisch erscheinen. So sieht es ja jetzt schon aus! :) Hinter den Modulbezeichnungen stehen bei uns übrigens einzelne Baugruppen mit jeder Menge weiteren Details.
Der Kunde muss außer Auswahl + Wasser + Module die Möglichkeit haben, in das Bemerkungsfeld etwas einzutragen. Ich habe über ActiveX ein Textfeld Steuerelement zugefügt, ich denke, das ist korrekt so.

Zu den Preisen: Der Grundpreis verändert sich nach entsprechenden Vorgaben (Parameter Preisliste) > Basismodul 1 oder 2. Du hast das klasse ver- und überarbeitet > funktioniert in der Testversion 1A. Genauso soll dies sein!

Lt. meiner GL müssen  Exclamation  die Datenquellen (Parameter + Preisberechnung) im gleichen Tabellenblatt wie der Kalkulator sein - entsprechend weit außen -, nach Fertigstellung ausgeblendet und passwortgeschützt, so dass der Kunde auf gar keinen Fall Zugriff auf unsere Daten haben kann.
Ich habe versucht, die Datenquellen in den Kalkulator zu kopieren und anzupassen, bekomme es aber nicht hin.  Huh Die Formeln erscheinen mir so kompliziert und verschachtelt, dass ich leider nicht weiß, was ich wo anpassen sollte, damit das korrekte Ergebnis erscheint. Wenn du mir hier bitte nochmal helfen kannst? Danke.

Übrigens: Mein Kollege fragt nun unseren Kunden, ob VBA / ActiveX Steuerelemente – also genau so, wie’s gerade aussieht – zur weiteren Bearbeitung akzeptiert werden. Ich hoffe, ja :) Von meiner GL und Abt.Ltg. besteht da kein Problem!!

1.000 Dank und beste Grüße
Christine


Angehängte Dateien
.xlsm   __Neue Vorlage Kalkulator FORUM __160216 MIT VBA.xlsm (Größe: 115,2 KB / Downloads: 5)
Antworten Top
#46
Hallo Christine,


Zitat:Der Kunde muss außer Auswahl + Wasser + Module die Möglichkeit haben, in das Bemerkungsfeld etwas einzutragen. Ich habe über ActiveX ein Textfeld Steuerelement zugefügt, ich denke, das ist korrekt so.


Warum können sie nicht direkt in die Zelle schreiben?

Was das nicht einsehen der Firmen internen Daten angeht, kann das besser in separaten Tabellen passieren als in der gleichen Tabelle.
Die Tabellen können per Code ausgeblendet werden. Das Einblenden zur Einsicht passiert nach Passwort Eingabe. Es muss dann das VBA Projekt geschützt werden.

Aber wenn es unbedingt in der gleichen Tabelle sein soll, kein Problem.
Markier' einfach den gesamten Bereich für die Preisberechnung B3:F14 und mit Srg+X ausschneiden und mit Strg+V  an beliebige Stelle einfügen. Das sollte klappen, denke ich.

Das Schützen der Zellen würde ich per Code erledigen. Denn die LinkedCell sollte auch geschützt werden. Per Code  muss man aber auf die Zellen zugreifen können.
Das hatte ich in Deiner Beispielmappe hie bei mir schon eingearbeitet. das kann ich Dir nach Fertigstellung aller anderen Dinge aufzeigen.
Gruß Atilla
Antworten Top
#47
Hallo Atilla,

meine GL möchte nicht, dass der Kunde sieht, dass es weitere Tabellenblätter gibt. Es soll sich alles - wie in der allerersten Variante des früheren Kollegen - im Kalkulator abspielen. Drum hätte er gerne die Daten in gleichem Tabellenblatt.

Ich habe nun die Angaben der Preisberechnung „ausgeschnitten“ und im Kalkulator ab O1 eingefügt. Klappt :)

Die Angaben des Parameters sind ebenfalls ausgeschnitten und im Kalkulator ab U1. Sieht auch (fast) gut aus, aber Zelle V2 und darauf folgend Zelle E23 sind leer.
Die Fehlermeldung – unmittelbar nach dem Einfügen der Angaben Parameter – lautete "Microsoft Visual Basic Laufzeitfehler 1004 Anwendungs- oder objektdefinierter Fehler“ Ich verstehe nicht, warum und wo ich was korrigieren müsste … Das Einzige, was mir dabei auffällt - wenn ich mir die Formel in Zelle V2 (durch F2) anzeigen lasse wird der Bezug der Spalten W2-Y12 in rot dargestellt.

Wenn alles komplett da ist, wo’s hingehört, ist meine Idee, ab Spalte O alles zu markieren, ausblenden und Blattschutz drauflegen. Dann hat der Kunde auch keinen Zugriff, kann die Angaben vornehmen wie gewünscht und uns – das ist dann der finale Schritt – die Bestellung übermitteln.

Diese Aussagen verstehe ich nun wiederum nicht:
Die Tabellen können per Code ausgeblendet werden ... Es muss dann das VBA Projekt geschützt werden … Denn die LinkedCell sollte auch geschützt werden ...
Welche Codes sollten dies sein und wo genau meinst du?

Übrigens habe ich das ActiveX Textelement aus der Spalte Bemerkung wieder rausgenommen ... :) na klar kann der Kunde dort ganz normal seine Bemerkungen und was auch immer eintragen. An dieser Stelle hatte ich zu kompliziert um die Ecke gedacht und hantiert.

Danke und Gruß
Christine


Angehängte Dateien
.xlsm   __Neue Vorlage Kalkulator FORUM __160216_2 MIT VBA.xlsm (Größe: 111,32 KB / Downloads: 4)
Antworten Top
#48
Hallo Christine,

zum Laufzeitfehler:

änder' im Code hinter der Tabelle "Kalkulator diese Zeile:

.Object.ListRows = Sheets("Parameter").Range("Typ").Rows.Count

so um

.Object.ListRows = Range("Typ").Rows.Count


Ich muss jetzt erst einmal weg. Später schreibe ich noch etwas zum Schutz.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Christine
Antworten Top
#49
Guten Morgen Atilla,

den Code habe ich entsprechend deinen Vorgaben angepasst. Trotzdem ist die "Ursprungszelle" in V2 leer und dementsprechend auch die "Zielzelle" in E23 (E23 ist sogar grau hinterlegt, es gibt also gar keine Chance, hier etwas anzuklicken ... ist klar, weil der Bezug fehlt ...)
Ich arbeite gerne auch mit Bildchen - drum habe ich die Bezüge in einer jpg-Datei zusammengefasst.

Was muss ich wo ändern oder anpassen, dass auch der Inhalt in V2 vorhanden ist und in E23 bearbeitet werden kann?

Ich bin gespannt, was du mir noch zum Schutz erklärst, was ich bislang nicht wusste :) Danke :)

Danke und Gruß
Christine


Angehängte Dateien Thumbnail(s)
   

.xlsm   __Neue Vorlage Kalkulator FORUM __170216 MIT VBA.xlsm (Größe: 112,3 KB / Downloads: 4)
Antworten Top
#50
Hallo Chrisine,

hab mir die Datei noch nicht angesehen.
Aber das beschriebene Problem hatte ich gestern schon bemerkt.

Wir haben bis jetzt nicht festgestellt, welche Excelversionen bei Euch genutzt werden.
ActiveX di in Excel 2007 erstellt und später in 2010 gespeichert werden des öfteren Probleme.
Erst vor zwei Tagen hatte ein anderer Forumsteilnehmer diese Probleme.

Unabhängig jetzt davon, füge unten stehenden Code in ein Modul ein und starte ihn.
Der Code platziert die Combos innerhalb der Zellen und setzt die LinkedCell neu.
Denn obwohl LinkedCell angegeben ist, schreiben die Combos nicht  da rein.

Hier der Code:


Code:
Option Explicit

Sub repair()
 Dim i As Long, k As Long
 Dim Passwort As String
 
 Passwort = ""
 
 Sheets("Kalkulator").Select
 ActiveSheet.Unprotect Passwort
 
 With Sheets("Kalkulator").ComboBox01
   .Width = Cells(21, 3).Width - 1
   .Top = Cells(21, 3).Top + 1
   .Left = Cells(21, 3).Left + 1
   .LinkedCell = Cells(21, 3).Address
 End With
 
 k = 23
 For i = 1 To 12
   With Sheets("Kalkulator").OLEObjects("ComboBox" & i)
     .Width = Cells(k, 3).Width - 1
     .Top = Cells(k, 3).Top + 1
     .Left = Cells(k, 3).Left + 1
     .LinkedCell = Cells(k, 3).Address
     k = k + 2
   End With
 Next i
 
 k = 23
 For i = 101 To 112
   With Sheets("Kalkulator").OLEObjects("ComboBox" & i)
     .Width = Cells(k, 5).Width - 1
     .Top = Cells(k, 5).Top + 1
     .Left = Cells(k, 5).Left + 1
     .LinkedCell = Cells(k, 5).Address
     k = k + 2
   End With
 Next i
 
 ActiveSheet.Protect Passwort

End Sub


Wenn das Blatt bei Dir Kennwortgeschützt ist, dann schreib im Code in der Zeile Passwort = "", zwischen die Anführungszeichen Dein Passwort rein.
Der Code setzt den Schutz wider und nimmt auch Dein Passwort.

Alles andere wieder später (hoffe diesmal wirklich später) :19:

Folgende Fragen sind offen:
Kunde kann VBA einsetzen?
Excel Versionen im Einsatz?
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste