Excel Maske zum anzeigen und ändern von Werten
#21
Hi Atilla,

also da die Steuerelemente einen absoluten Knall haben, was die indirekte Referenzierung betrifft (sie befinden sich da total im Tiefschlaf - man muss die Referenz wirklich MANUELL in den Eigenschaften jeder Textbox neu eintippen!), fällt mir für den Moment eben nur ein, dass man das "manuelle Eintippen" per VBA_Change_Ereignis übernimmt - dann funktioniert es. Allerdings haben wir dann keine xlsx mehr sondern eine xlsm.

Der Minicode dazu:

Zitat:Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Long
For x = 1 To 19
Tabelle1.OLEObjects("TextBox" & x).LinkedCell = Tabelle1.OLEObjects("TextBox" & x).LinkedCell
Next x
End Sub

Ich hab`s mal angehängt.

Vielleicht fällt mir aber noch was schlaues VBA-freies ein Wink


Angehängte Dateien
.xlsm   Einkauf_Mike_mit_VBA.xlsm (Größe: 56 KB / Downloads: 9)
Top
#22
Hi Atilla,

Zitat:hast du auch mitbekommen, dass das nicht alle Textboxen betrifft?

Nein, hatte ich noch nicht. Allerdings trifft das bei mirt auf alle Textboxen zu. Ich arbeite derzeit mit xl2007. Welche Version benutzt Du?
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • Mike4711
Top
#23
Hi Boris,

gleiche Version.

Ich habe jetzt folgendes festgestellt:

Nach erst Installierung der Textboxen arbeiten sie richtig.
Sobald eine manuelle Eingabe in die Textbox gemacht wurde, aktualisieren sie sich nicht mehr.
Gruß Atilla
Top
#24
Hallo Boris,

vielen Dank für deine Mühe, aber das ist nicht das was ich mir vorgestellt habe.
Ich möchte eine Maske aufrufen, wo ich meine Artikel suchen und ändern kann.
Meine Mappe hat nur 2 Tabellenblätter mit je einem Lieferanten. Ich habe in meiner originale Mappe
viele Tabellenblätter. Jedes eine Artikelliste von einem Lieferanten, mit sehr vielen Artikeln.

Auf der Hauptseite "Stammdaten-Artikel" soll eine Maske auftauchen, in der ich nach einem Artikel suchen kann und diesen in der Maske auch ändern kann und in dem passenden Tabellenblatt übernommen wird.

Ich denke das geht nur mit einer selbst erstellten Maske und den passenden Makro-Codes.
Was ich mir leider nicht selbst zusammenstricken kann.

Deinen Vorschlag mit der TextBox verstehe ich leider nicht so recht und ist nicht das, was ich mir vorstelle.

Entschuldige, das mir das nicht hilft, trotzdem vielen Dank für deine Hilfe.

Lg Mike
Top
#25
Hallo Mike,

Auf Deinem Stammblatt sind alle? für die Maske relevanten Daten zu einem Artikel aufgeführt bzw. die sollen alle darauf erscheinen?
Die Maske soll davon unabhängig einen anderen Artikel suchen, aber auf dem Stammblatt nichts verändern? Oder soll oder kann das Blatt als "Maske" verwendet werden?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#26
Hi Mike,

Zitat:Auf der Hauptseite "Stammdaten-Artikel" soll eine Maske auftauchen, in der ich nach einem Artikel suchen kann

Hast Du doch selbst schon gemacht - läuft halt alles über die (eindeutige) Artikelnr.

Zitat:und diesen in der Maske auch ändern kann und in dem passenden Tabellenblatt übernommen wird.

Na ja - und genau das machen die Textboxen ja.

Zitat:Deinen Vorschlag mit der TextBox verstehe ich leider nicht so recht

Wahrscheinlich ist es so. Und daher zeugt...

Zitat:und ist nicht das, was ich mir vorstelle.

...das sicher nur von mangelndem Verständnis für die Lösung.

Aber sei`s drum.
Top
#27
Hallo zusammen,
Hallo Boris,

wie ich schon schrieb hat Boris hier eine sehr Trickreiche Lösung aufgezeigt.
Theoretisch sollte das ganze ohne VBA Einsatz funktionieren. Aber wie wir festgestellt haben ist das nur Theorie. Ohne minimalen Einsatz von VBA wird es nicht gehen.

Den Textboxen in der Tabelle haben benannte LinkedCell Adressen. Es handelt sich hierbei um Namen, die als Bezug dynamische Indirekt Formeln nutzen. Hier treten dann die Probleme auf. Es ist aufwendig bis nicht möglich, genau zu beschreiben, was da passiert oder nicht passiert.

Deshalb hat Boris eine kleine Routine eingestellt, die das Problem lösen sollte.
Ich musste noch feststellen, das diese Routine die LinkedCell leert, wenn in Spalte R als Formelergebnis ein #NV erscheint. Dadurch entsteht in den Formeln der Namen ein Bezugsfehler.
Um das Abzufangen, habe ich die Formel in Spalte R mit Wennfehler() umrandet und zusätzlich eine Dummytabelle eingerichtet, auf den dann bei einem Fehler referenziert wird.

Die Textboxen habe ich auf die zugehörigen Zellen gelegt. Die dortigen Formeln zur Anzeige der Werte braucht man dann auch nicht mehr.

Zur Vorgehensweise:
Zum Suchen gibt man in der Zelle B9 eine Artikelnummer ein. Bei Fund, werden die Ergebnisse in den Textboxen angezeigt, sonst steht: "kein Fund", in den Textboxen. Man kann dann in den Textboxen die Werte Ändern und diese werden automatisch an entsprechender Stelle in der entsprechenden Tabelle geändert.

Es befindet sich Code in einem allgemeinen Modul und im Modul der Tabelle.

Als Fazit würde ich sagen, als Idee eine schöne und interessante Arbeit. Ich persönlich würde aber einen Lösung mit Userform oder direkt in der Tabelle mittels VBA vorziehen. Vom Aufwand her wäre es vielleicht sogar eine noch geringere Arbeit.

Und hier Boris Lösung von mir etwas nachgebessert:


.xlsm   Einkauf_Mike.xlsm (Größe: 53,48 KB / Downloads: 5)
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Mike4711
Top
#28
Hallo Atilla,

eine Lösung als Userform wäre mir lieber...einfacher für mich. :)


Lg Mike
Top
#29
Hi Mike,

(17.11.2014, 17:00)Mike4711 schrieb: eine Lösung als Userform wäre mir lieber...einfacher für mich. :)

die Userfoprm ohne jeglichen VBA-Code könntest Du ja auch selber schon mal basteln. Dann hast Du das genau so, wie Du willst.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • Mike4711
Top
#30
Hallo Rabe,


Ich denke, das ich das hin bekommen würde und mir eine user form bastle.
Was mir schwer fallen wird, ist anschliessend den vba- kram hin zu bekommen. :)

Ich mach kich mal an einer user form ran.

Grüße Mike
Top


Gehe zu:


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