Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Kontrollkästchen ändert Zelleninhalt
23.02.2016 16:33:06
Tobias
Hallo zusammen,
ich habe folgendes Problem und komme da zu keiner Lösung:
Mein Ziel ist es mit einen Kontrollkästchen (egal ob Formularsteuerelement oder AktiveX Steuerelemente) den Inhalt von 4 Zellen zu steuern.
-Kontrollkäschen abgehakt -Zellen D3 E3 F3 G3 bekommen jeweils eine Sverweisformel.
-Kontrollkästchen leer - Zellen sind leer. ( bzw mit einer Datenüberprüfung mit Gültikeitskriterium Liste also ein DropDown Menü.
Hier ein Teil der Kalkulation.
1. Der Button "Formular" gedrückt und dieses entsprechend ausgefüllt.
2. Die Daten werden in eine Hilfstabelle gepackt.
3. In der Kalkulationstabelle wird nun das Kürzel eingetragen und es erscheinen automatisch die gewählten Materialien durch die Sverweise.
Bis dahin geht alles auch schon einwandfrei.
Nun kann es aber vorkommen das nicht jedes Kürzel, die zuvor gewählten Materialen bekommt. Dafür brächte ich jetzt die besagte Funktion oder Programierung um mit dem entfernen des Häckchens im Kontrollkästchens die Sverweise zu entfernen um die Materialien manuel einzutragen bzw mit Datenüberprüfung Liste.
Ach ja, eine Sache habe ich noch ganz vergessen, wenn das Häckchen gesetzt ist soll D3, E3, F3, G3 mit dem Blattschutz gesperrt sein und wenn das Kästchen leer ist soll der Blattschutz für diese 4 Zellen aufgehoben werden, allerdings beim Rest des Arbeitsblattes muss der Blattschutz bestehen bleiben.
https://www.herber.de/bbs/user/103814.xlsm
Ich bin dankbar für jeden Tipp und bedanke mich schonmal im Vorraus für die Zusammmenarbeit.

44
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kontrollkästchen ändert Zelleninhalt
23.02.2016 16:59:48
Piet
Hallo Tobias
hört sich kompliziert an, ich sehe in der Beispieldatei 1 Kontrollkaestchen.
Gilt das für alle Zellen oder bekommt jede Zelle sein eigenes Kaestchen?
Zellen sperren und freigeben, ich weiss nicht ob das über Formeln geht?
Mit VBA Makro ist das kein Problem. Ich weiss aber noch nicht wie man
den SVerweis abschalten kann, evtl. über eine Wenn() Bedingung
Muss mir die Sache mal in Ruhe anschauen. Vielleicht hat ein anderer dazu
die richtige Idee, oder eine gute Lösung.
mfg Piet

AW: Kontrollkästchen ändert Zelleninhalt
23.02.2016 17:03:38
Tobias
Ne das Kästchen bezieht sich nur auf die Zeile, später soll jede Zeile ein Kästchen erhalten um die 4 Zellen zu steuern

Anzeige
AW: Formel günstiger oder Target Lösung ?
23.02.2016 22:29:41
Piet
Hallo Tobias
anbei eine Beispieldatei zum angefragten Problem eine Formel über ein Kontrollkaestchen zu beeinflussen.
Mein Beispiel verzichtet völlig auf Kontrollkaestchen. Gefundene Daten werden per Makro direkt kopiert.
Nach meiner Ansicht benötigt eine Formellösung eine zusaetzliche Hilfsspalte um die KontrollBox auszuwerten.
Ich habe den Thread noch einmal offen gestellt, weil ich den Formel Profis Gelegenheit geben möchte sich diese Aufgabe noch einmal anzusehen. Es ist immer die Streitfrage ob man Formeln den Vorzug geben soll, oder ein Simples Makro Programm hier praxisgerecht ist. Am besten in einem Beispiel zu sehen.
Ich bin selbst gespannt ob meine Lösung brauchbar ist. Was die Profis sagen. Bin auf andere Vorschlaege neugierig.
mfg Piet
https://www.herber.de/bbs/user/103830.xls

Anzeige
AW: Formel günstiger oder Target Lösung ?
25.02.2016 14:27:41
Tobias
Danke Piet für die Programierung, hat mir sehr weitergeholfen. Ich stehe nun kurz vor der perfekten Lösung. Ich habe durch probieren und auskomentieren die Programierung so geändert, dass sie für mich einigermaßen passt. Hier ist die Aktuelle Datei mit dem aktualisierten Formular für die Vorauswahl. Leider ist die Datei so groß geworden, dass ich sie zippen musste.
https://www.herber.de/bbs/user/103878.zip
Die Zeile 3 Funktioniert schonmal so wie sie soll auch mit dem Makro auf dem Button. Wenn ich Ihn drücke ist der Blattschutz für die Zellen D3:G3 aufgehoben und ich kann bei Bedarf die Materialen ändern.
Bei folgenden Dingen komme ich nun nicht mehr weiter:
Die Bereiche von C3:C30, I3:I30, K3:K30 sollen eigentlich bei der Bearbeitung dauerhaft gesperrt sein aber aus irgent einem Grund einsperrt er die Zellen ganz, also nicht nur kein Blattschutz sondern auch der Hacken in der Zellenformatierung bei Gesperrt ist weg.
Dann öffnet er automatisch immer die Materialmaske zur Vorauswahl wenn ein Kürzel nicht in der Liste unter AM3 ist. Wie kann man das verhindern bzw. Abschalten. Maske soll nur kommen wenn ich auf Formular drücke.
Und was muss ich beachten wenn ich von dem Arbeitsblatt "Pos1" 100Stk. haben möchte?

Anzeige
AW: Thread in Arbeit
26.02.2016 13:34:25
Piet
Hallo Tobias
ich gabe die Beispieldatei geladen und arbeite daran, brauche etwas Zeit
Wir bekommen noch Besuch, muss mich auch darum kümmern.
Zwischendurch immer wieder mal hier reinschauen, weiss nicht wie schnell ich fertig bin.
Wenn ich eine gute Lösung habe ersuche ich den Thread offen zu stellen (wenn es klappt)
Sonst hier reinschauen, ich melde mich auf jeden Fall.
Vorab eine Frage zum Thema 100 Blatt.
Darf ich das so verstehen das "Pos 1" kopiert wird und 100x vorkommen kann?
Dann sollte es auch ein Blatt "Pos Übersicht" geben wo ihr alle Pos Tabellen auflistet und euch
wichtige Notizen zum Kunden machen könnte, und wichtige Produkt Informationen zum Erinnern.
zum Makro: Modul 3 Sub test()
dieser Befehl muss gelöscht werden oder .Shox durch MsgBox ersetzen:
Else 'Formular anzeigen
frmMaterialauswahl.Show
MsgBox "Kürzel existiert nicht"
Ist in Zeile 3 eine kleine Schaltflaeche, wenn ja besser eine grössere für
alle Zeilen in Zeile B2 einfügen, wie der Button "Formular".
Ich arbeite dran und melde mich.
mfg Piet

Anzeige
AW: Thread in Arbeit
26.02.2016 15:58:17
Tobias
Hallo Piet,
vielen Danke für deine große Unterstützung.
Wenn du nichts dagegen hast können wir auch telefonisch oder per whatapp über das Problem sprechen, damit alles richtig verstanden ist und keine Irrtümer mehr da sind. 015120430369.
Freundliche Grüße
Tobias Thiemann

AW: Thread in Arbeit
27.02.2016 13:21:09
Piet
Hallo Tobias
ich habe den Thread noch mal offen gestellt weil Tobias auf meine Lösung wartet.
Würde mich freuen wenn alles so klappt wie ich es geplant habe.
https://www.herber.de/bbs/user/103921.xls
mfg Piet

Anzeige
AW: Thread in Arbeit
27.02.2016 17:11:10
Tobias
Hallo Piet,
Danke das du dich so bemühst mit der Programierung, ich bin echt beeindruck. Um so schwerer fällt es mir dir zu sagen, dass deine erste Datei von der Bedinbarkeit besser war und ich leider mit den Programierungen auch nicht mehr wirklich klar komme. Alles was ich zu VBA weiß habe ich in der letzten 2 Wochen gelernt und davor noch nie was davon gehört. Ich habe meine Datei noch einmal so verändert wie sie am Ende auch etwa aussehen soll.( Es ist natürlich nicht alles, es ist noch viel mehr an Tabellen und Funktionen vorhanden, es würde aber nur zu missverständnissen führen wenn ich alles drin lasse). Ich habe die Zellen C3:C30, I3:I30, K3:K30 einfach händisch in den Code bei Pos1 reingeschrieben. Jetzt bleiben sie Gesperrt. Das ist wahrscheinlich nicht sehr elegant aber besser weiß ich mir da nicht zu helfen. Nun ist nur noch die Sache mit den Kürzeln die nicht in der Hilftabelle stehen, dazu ist unten die Beschreiben was da passieren soll.
Die Übersicht der Positionen ist bei mir schon vorgesehen und eingbaut gewesen, aber danke das du dir auch dazu noch Gedanken gemacht hast und auch noch ein Makro programiert hast. Die 100 Pos sind bei mir später immer in der Vorlagendatei vorhanden. Mir ging es bei der Frage zu den 100 Positionen eigentlich ehr darum ob ich an dem Code etwas verändern muss wenn ich das Arbeitsblatt POS1 100 mal kopiere.
Ich beschreibe dir hier einmal genau den Ablauf der Kalkulation, ich hoffe das ist verständlich genung, leichter wäre es am Telefon und wir würden das Zenario einmal durchspielen.
-Der Kalkuland öffnet die Exceldatei.
-Drückt auf den Button Formular und trifft bei Ausführung eine Vorauswahl.
-Diese Vorauswahl gibt ihm passende Werte in die Comboboxen.
-Ist er mit den jeweiligen Materialen zufrieden lässt er sie so. Das hier Felder leer bleiben ist hier ganz normal und muss auch so bleiben. Wenn er nicht zufrieden ist ist wählt er für Korpus, Front oder Laden andere Materialen aus.
-Er Bestätigt seine Eingaben mit Hinzufügen.
-Die Daten werden in die Hilfstabelle gepackt die warscheinlich später sogar Ausgeblendet wird, sie soll nur im Hintergrund arbeiten.
-Er trägt in Zelle A3 das erste Kürzel ein.
-Mit einem Tabsprung geht er zu Zelle B3 und trägt die Stückzahlen ein.
Im gleichen Zug erscheinen die festgelegten Materialen in den Zellen D3, E3, F3 und G3, in Zelle C3 erscheint die Einheit z.B Stk. (in der Beispieltabelle nicht weil die Hintergrundtabellen nicht dabei sind,)in der Zelle I3 erscheint der Einzelpreis (in der Beispieltabelle nicht weil die Hintergrundtabellen nicht dabei sind), in der Zelle K3 erscheint der Gesamtpreis (in der Beispieltabelle nicht weil die Hintergrundtabellen nicht dabei sind).
-Mit dem nächsten Tab gelangt er in die Zelle H3 und kann hier wenn er möchte einen individuellen Zuschlag eingeben der sich auf den Gesamtpreis in Zelle K3 auswirkt.
-Mit dem nächsten Tab kommt er in die Zelle J3 und kann hier noch einen prozentualen Aufschlag eingeben der sich auf den Gesamtpreis und einige andere Dinge auswirkt (in der Beispieltabelle nicht weil die Hintergrundtabellen nicht dabei sind).
-Mit dem nächsten Tab kommt er in die Zelle L3 wo er ein paar Informationen eintragen kann.
-Mit dem nächsten Tab kommt er in die Zelle M3 wo er eine farbige Markierung machen kann wenn noch ertwas unklar ist.
-Mit dem nächsten Tab soll er nun in A4 stehen und es geht von vorne los, Kürzel eintragen und nächster Tab B4, Tab H4, Tab J4, Tab L4, Tab M4, Tab A5.........
Wenn Ihm jetzt auffällt, das zB. ein Korpus der er in A15 eingetragen hat, mal nicht zu der zuvor gewählten Ausführung passt. Dann drückt er den Button in B15 und der Blattschutz für D15, E15, F15 und G15 ist aufgehoben. Ergeht mit der Maus auf die Zellen und wählt über die Datenüberprüfung mit dem Dropdownmenü das passende Material aus.
Das nächste was sein kann sind das gewisse Kürzel nich in der Hilfstabelle aufgelistet sind, Sie aber trotzdem einen Preis hinterlegt haben. Wenn ein Kürzel nicht in der Hilftabelle steht solle keine Fehlermeldung und nix erscheinen, es soll einfach über einen Tab weiter zur Zelle B... gehen die Menge eintragen und die Zellen bei D..., E..., F..., G... bleiben leer. Beim nächsten Tab geht es weiter zu H..., zu J..., zu L..., und zu M... und dann wieder von vorne in die nächste Zeile zur Zelle A... .
Das Ganze ist so aufgebaut das man in wenigen Stunden bis zu Hunderd Positionen Kalkulieren kann. Es geht hier echt um Geschwindigkeit.
So die Erklärung ist echt Lang geworden, wollte ich eig vermeiden aber ging nicht anders.
Hoffe du kommst klar damit.
mfg Tobias Thiemann

Anzeige
AW: Die Datei
27.02.2016 17:14:29
Tobias
Und Offenstellen!!!

AW: Die Datei
27.02.2016 18:30:16
Piet
Hallo Tobias
Hallo Tobias
Vielleicht hast du es -nicht gesehen-, es gibt bereits eine Beispieldatei
Ich habe in deinem neuen Beispiel gesehen das du dir viel Arbeit gemacht
hast mit vielen kleinen Schaltflaechen. Das funktioniert so nicht.
Jeder Schaltflaeche muss ja ein Makro zugewisen werden um es auszulösen.
Eine gut funktionierende Lösung findest du in meiner Beispieldatei.
Ich glaube du wirst sehr überrascht sein was ich ausgeknobbelt habe.
Lass dich überraschen ... Ich glaube die Lösung ist Praxis orientiert.
mfg Piet
https://www.herber.de/bbs/user/103921.xls
mfg Piet

Anzeige
AW: Die Datei
27.02.2016 18:53:48
Tobias
Hallo Piet,
ich habe mir natürlich deine Datei intensive angeschaut und auch mit ihr probiert. Leider passt sie nicht zu dem von mir beschriebenem Ablauf. Dieser Ablauf ist eine Vorgabe für mich, die ich einhalten muss. Die vielen kleinen Buttons gehöhren auch zu der Vorgabe es soll sich jede Reihe einzeln steuern lassen. Und das mit den vielen Makros stört nicht. Ich habe diese Kalkulation für meine Projektarbeit als Techniker erstellt und stehe nun kurz vor den Ende der Projektzeit, wenn ich das beschriebene Problem nicht behoben bekomme, muss ich auf die Vorauswahl, das Formular etc. versichten und bei jedem Teil manuell die Materialen zuweisen, was die Bedingeschwindigkeit nicht wirklich erhöht.
Wäre es nicht möglich mit dir einmal zu skypen oder änhliches, vielleicht finden wir dann schneller eine Lösung.

Anzeige
AW: Die Datei
27.02.2016 19:17:03
Piet
Hallo
ich sehe es eilt hier sehr, Okay ....
was genau muss ich darunter verstehen das sich jede Reihe einzeln steuern laesst?
Das muss ich zuerst wissen um konkret helfen zu können.
Soll also mit jedem Button nur die -dazu gehörige Zeile- durchsucht werden?
Waere zwar nicht praxisgerecht, wenn es aber einer Aufgbenstellung entspricht
halten wir uns eben an diese Vorgabe. Ich bin meistens Nachts noch wach.
Lass uns das Problem sofort lösen, damit du nicht in Schwierigkeiten kommst.
Warte auf deine Antwort. Was war mit den 100 Blaettern?
Gib diesem Thread heute absoluten Vorrang ...
mfg Piet

Anzeige
AW: Die Datei
27.02.2016 20:49:24
Tobias
Hi Piet,
Sry war grad essen bin jetzt die ganze Zeit da.
Kannst du den langen Text weiter oben mit der Beschreibung von mir nicht sehen?
....
Wenn Ihm beim kalkulieren auffällt, das zB. ein Korpus der er in A15 eingetragen hat, mal nicht zu der zuvor gewählten Ausführung passt. Dann drückt er den Button in B15 und der Blattschutz für D15, E15, F15 und G15 ist aufgehoben. Ergeht mit der Maus auf die Zellen und wählt über die Datenüberprüfung mit dem Dropdownmenü das passende Material aus.

AW: Die Datei
27.02.2016 21:07:51
Piet
Hi bin da hatte mir was anderes angesehen
gib mir 10 Minuteni melde mich ...

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 21:41:47
Piet
Hi bin wieder da
also, du must zuerst mit meinen Hilfs Makro die Button prüfen
mir ist aufgefallen das der erste kleine Button einen Mini Tick
zu hoch steht, er berührt die Zelle B2. Setze in 1/10 mm tiefer!
Mein Trick besteht im auslesen der oberen linken Zelle in der der Button sitzt
Dann kann ich gezielt per Makro genau diese Zeile den Blattschutz aufheben.
Du must also zuerst die Button prüfen in welcher Zelle sie sitzen
Die Makro dazu sind benannt.
Nur zum Testen musst du die Spalten N + O aufmachen, ich brauche eine Liste.
Danaach wieder alles löschen und unsichtbar setzen.
Alle kleinen Button bekommen daselbe Makro zugewiesen.
Brauchst du nicht von Hand machen
Ich warte bist du die Sache ausgeführt hast.
mfg Piet
'** das ist dein Makro zum aufheben !!
'** das wird spaeter vom User benutzt
'aktives Makro zum aufheben
Sub Blattschutz_aufheben()
Adr = Selection.TopLeftCell.Address
Range(Adr).Offset(0, 2).Resize(1, 4).Locked = False
End Sub

'********************************************************
' das sind Hilfs Makros damit du alles Installieren kannst
' Sie werden nur jetzt -zum Einrichten- benötigt.
'** dient dir nur zur Kontrolle ob alles stimmt
'** Objekt selektieren und Zell Adresse ansehen
Sub Kontrolle_per_MsgBox()
MsgBox Selection.TopLeftCell.Address
End Sub

'diese Liste anschauen, brauche ich zum zuweisen
Sub Alle_Button_auflisten()
z = 3  'in Spalte N + O
For Each obj In Worksheets("Pos1").Shapes
Cells(z, "N") = obj.Name
Cells(z, "O") = obj.TopLeftCell.Address
z = z + 1
Next obj
End Sub

'aktives Makro zum zuweisen an die Button
Sub Button_Makro_zuweisen()
For Each obj In Range("N5:N32")
Txt = obj.Value
ActiveSheet.Shapes(Txt).OnAction = "Blattschutz_aufheben"
Next obj
End Sub

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 22:30:27
Piet
ja, lass mal das Makro Button auflisten ablaufen
du bekommst eine Liste über ihre Nummer und die Lage der Zelle
Auffaellig war für mich, das die Button in der Nummer nicht fortlaufen sind.
Sonst haette ich über die Indfx Nummer gehen können. Das war hier unmöglich.
Starte dananch das Makro: Makro Zuweisung an die Button.
Jetzt muss jeder Button das Makro drin haben.
mit dem Makro: Kontrolle_per_MsgBox
Kannst du einen Button mit der rechten Maustaste anklicken, damit er selektiert ist.
Das Makro zeigt dir dann per MsgBox mit welcher Zelle es verbunden ist.
Der 1. Button steht einen Tick zu hoch, dort erscheint Adresse B2. Sollte B3 sein
Dun kannst den Bidschirm auf Zoom 200 stellen und einen Tick runterziehen.

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 22:40:23
Piet
Makro direkt starten über Taste F5

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 23:04:55
Piet
Sorry mein Fehler, dummer Programmierfehler
Jetzt zeigt dir die MsgBox in welcher Zelle der Button steht
Diese Zeile spaeter wieder löschen, dient nur jetzt zum Testen
Sub Blattschutz_aufheben()
Schfla = Application.Caller
Adr = ActiveSheet.Shapes(Schfla).TopLeftCell.Address
MsgBox Adr  'nur zum Prüfen ob die Zelle stimmt
Range(Adr).Offset(0, 2).Resize(1, 4).Locked = False
End Sub

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 23:05:48
Piet
Sorry mein Fehler, dummer Programmierfehler
Jetzt zeigt dir die MsgBox in welcher Zelle der Button steht
Diese Zeile spaeter wieder löschen, dient nur jetzt zum Testen
Sub Blattschutz_aufheben()
Schfla = Application.Caller
Adr = ActiveSheet.Shapes(Schfla).TopLeftCell.Address
MsgBox Adr  'nur zum Prüfen ob die Zelle stimmt
Range(Adr).Offset(0, 2).Resize(1, 4).Locked = False
End Sub

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 23:07:11
Piet
Wenn das klappt kannst du die Button ja selbst exakt ausrichten
Gibt es noch weitere Sachen dir wir gemeinsame erledigen sollten?

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 23:15:29
Tobias
Immer noch Laufzeitfehler 1004

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 23:29:00
Piet
Sorry, immer mit der Ruhe, bei mir laueft es.
Ich habe aber nur Excel 2003 statt 2007, vielleicht liegt es daran.
wir finden den Fehler!
Im Tabellenblatt ist noch ein Fehler, bitte auf "M30" aendern!
Der Summenbereich unten ist nicht geschützt, ıch weiss nicht ob es nötig ist.
Wenn ja würde "M1000" diesen Bereich weider öffen! Deshalb auf "m30" setzen!
'Range(Adr, "M1000").Locked = False
Range(Adr, "M30").Locked = False
Schau mal bitte ab wo das Makro aussteigt,
Die Zeile müsste gelb markiert sein. Füge noch eine MsgBox ein.
Dann kreisen wir so ein ab wo der Fehler beginnt.
Sub Blattschutz_aufheben()
Schfla = Application.Caller
MsgBox Schfla  'nur zum Prüfen ob die Zelle stimmt
Adr = ActiveSheet.Shapes(Schfla).TopLeftCell.Address
MsgBox Adr  'nur zum Prüfen ob die Zelle stimmt
Range(Adr).Offset(0, 2).Resize(1, 4).Locked = False
End Sub

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 23:35:23
Piet
sollte der Fehler bei Shapes() auftauchen ersetze es mal bitte durch:
ActiveSheet.DrawingObjects(Schfla).TopLeftCell.Address
sollte das dann funktionieren lache ich mir echt einen Ast ab ......

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 23:46:12
Tobias
Laufzeitfehler 13 Typen unvertäglich
fehler kommt bei der 1. msgbox

AW: Kontrollkästchen ändert Zelleninhalt
27.02.2016 23:55:00
Piet
jetzt komme ich echt ins Rudern.
Nicht weil mir zur Fehlersuche die Ideen ausgehen,
sondern weil ich kein Excel 2010 zum selber testen habe.
Jetzt kann ich nur noch raten, und im Archiv nach Problemen mit Caller suchen
Versuch mal mit Dim Variant und Caller mit (1) oder (2) was dann passiert
Ich tauche mal ins Forum Archiv, ob das Problem da evtl. bekannt ist ....
Dim Schfla As Variant
Schfla = Application.Caller(1)

AW: Kontrollkästchen ändert Zelleninhalt
28.02.2016 00:05:50
Tobias
Also bei mir hört mein Verständnis echt auf. Ich weiß echt nicht ob ich das überhabt richtig einfüge. Jetzt geht alles andere auch nicht mehr mit den Kürzeln und dem automatischen Einfügen.
Wieso kann ich nicht einfach mit den ganz vielen Makros arbeiten da wusste ich wenigstens noch was das Makro macht und was der Code bedeutet. Und wie geht das weiter wenn ich noch mit einen Passwort arbeite bei den ganz vielen Makros wüsste ich noch wie ich das mache.
wo ich sonnst noh ein Problem habe ist wie ich um 17.10 Uhr geschrieben habe:
Das nächste was sein kann sind das gewisse Kürzel nich in der Hilfstabelle aufgelistet sind, Sie aber trotzdem einen Preis hinterlegt haben. Wenn ein Kürzel nicht in der Hilftabelle steht solle keine Fehlermeldung und nix erscheinen, es soll einfach über einen Tab weiter zur Zelle B... gehen die Menge eintragen und die Zellen bei D..., E..., F..., G... bleiben leer. Beim nächsten Tab geht es weiter zu H..., zu J..., zu L..., und zu M... und dann wieder von vorne in die nächste Zeile zur Zelle A... .

Fehlermeldung
28.02.2016 00:24:41
Tobias
ich hab jz mal die Datei geschlossen und wieder geöffnet, Jetzt gehen die Kürzel und das automatische einblenden wieder und wenn ich den Button drücke ist der Fehler hier:
Range(Adr).Offset(0, 2).Resize(1, 4).Locked = False

AW: Kontrollkästchen ändert Zelleninhalt
28.02.2016 00:35:18
Piet
Lösen wir für heute erst mal das Blattschutz Problem
Dieses Makro einfach von 3 bis 30 kopieren
Die Zahl 3-30 ist dann die jeweilige Zeilen Nummer
Makro aendern in Range("B3") "B4", "B5" usw.
Jeder Button von Zeile 3 bis 30 bekommt sein eigenes Makro, von Hand zuweisen
Dann waere das Problem schon mal gelöst. Brauche mal Pause ... schlafen
gruss Piet
Sub Blattschutz_aufheben_3()
ActiveSheet.Unprotect
Range("B3").Offset(0, 2).Resize(1, 4).Locked = False
ActiveSheet.Protect
End Sub

AW: Kontrollkästchen ändert Zelleninhalt
28.02.2016 00:48:35
Tobias
Super Funktioniert!!!

AW: Kontrollkästchen ändert Zelleninhalt
28.02.2016 00:35:19
Piet
Lösen wir für heute erst mal das Blattschutz Problem
Dieses Makro einfach von 3 bis 30 kopieren
Die Zahl 3-30 ist dann die jeweilige Zeilen Nummer
Makro aendern in Range("B3") "B4", "B5" usw.
Jeder Button von Zeile 3 bis 30 bekommt sein eigenes Makro, von Hand zuweisen
Dann waere das Problem schon mal gelöst. Brauche mal Pause ... schlafen
gruss Piet
Sub Blattschutz_aufheben_3()
ActiveSheet.Unprotect
Range("B3").Offset(0, 2).Resize(1, 4).Locked = False
ActiveSheet.Protect
End Sub

AW: Sorry hatte eine Antwort übersehen
28.02.2016 12:15:52
Piet
Hallo Tobias,
ich muss mich bei dir entschuldigen, ich hatte ein lange Antwort von dir mit der genauen
Aufgabenbeschreibung leider einfach übersehen. Sorry, mein Fehler, deshalb das Durcheinander.
Man wird alt .....
Mir sind noch ein paar Programmierfehler im Tabellenblatt "Pos1" aufgefallen.
Ich bitte sie zu aendern, weil das Makro sonst in -kopierten Blaettern- nicht funktioniert.
Die Variable Adr sollte noch in Dim mit definiert werden
Dim WBSh As Object, rFind As Object
Dim Adr As String, SuName As String
Weil ich das Makro im Modulblatt entwickelte habe befindet sich hier
aus alter Gewohnheit auch eine Set Anweisung zur Tabelle "Pos1"
SuName = Target.Value
Adr = Target.Address (entfaellt, zuviel !!)
Set WBSh = ThisWorkbook.Sheets("Pos1")
Set rFind = WBSh.Range("AM3:AM30").Find(What:=SuName, LookIn:=xlFormulas, LookAt:=xlWhole, MatchCase:=True)
Im Tabellenblatt muss sie durch "Me." ersetzt werden, sonst beziehen sich -kopierte Tabellen-
immer auf die Hifsspalten in 1. Tabelle "Pos1". Das waere ein klassischer Fehler im Suchlauf!!
Ich empfehle den Summenbereich unter der Eingabe manuell (von Hand) zu sperren, damit nicht
versehentlich Formeln überschrieben werden können. Dafür muss diese Anweisung geaendert werden!
Sie würde den Bereich wieder öffnen. Bitte auf "M30" aendern
Range(Adr, "M1000").Locked = False ersetzen durch:
Range(Adr, "M30").Locked = False
In meiner Beispieldatei findest du ein interessantes Modulblatt:
Es bezieht sich auf -ScrollArea-, d.h. den Bereich der für den Cursor zugaenglich ist
Man kann den Bereich auch von Hand im VBA Editor -Eigenschaftsfenster- für "Pos1" manuell auf "A1:M30" setzen.
Der Cursor wird auf diesen Bereich eingeschraenkt. D.h. laueft man mit Tab durchs Blatt schaltet er selbst bei Spalte M
auf die naechste Zeile in Spalte A um. Das brauchen wir nicht programmieren, und die Hilfsspalten sind geschützt.
Was ist mit deiner letzten Fehlermeldung, müssen wir die noch klaeren?
Oder kann man das Makro, wenn es nicht mehr gebraucht wird, einfach löschen?
Range(Adr).Offset(0, 2).Resize(1, 4).Locked = False
Würde mich sehr freuen wenn die Sache endlich klappt. Toi, toi, toi ...
mfg Piet

Kurz vorm Ziel
28.02.2016 14:01:18
Tobias
Hallo Piet,
Ich habe die letzten Verbessereungen von dir eingefügt und mit dem Teil für den Blattschutz auch noch etwas experementiert jetzt geht es ganz gut. Hier noch einmal die aktuelle Datei:
https://www.herber.de/bbs/user/103940.xlsm
Nun bleib noch die Frage wie ich mit den Kürzeln umgehe die nicht ein der Liste geführt werden. Es wäre am schönsten wenn die Programierung sie einfach ignorieren würde:
z.B.
Ich gebe das Kürzel GR1 ein und es Geschieht genau das selbe wie bei einem Kürzel was in der Liste ist nur dass die Zellen wo sonst das Material drin ist leer bleiben. Geht das? und wie müsste der Code geändert werden?
'Kürzel gefunden, aber Zelle leer (FR1 u.sw)
If Not rFind Is Nothing Then
If rFind.Offset(0, 1) = Empty Then
frmMaterialauswahl.Show
ElseIf Target.Value  Empty Then
rFind.Offset(0, 1).Resize(1, 4).Copy
Target.Offset(0, 3).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End If
Else  'Formular anzeigen
frmMaterialauswahl.Show
End If

Auf den Cursorbereich würde ich gern später noch zurückkommen. Aber die Idee ist schonmal sehr gut.
mfG Tobias

AW: Kurz vorm Ziel
28.02.2016 15:38:02
Tobias
Ich stell es nochmal offen.

AW: Kontrollkästchen ändert Zelleninhalt
28.02.2016 17:49:28
Piet
Hallo Tobias
habs gerade erst gesehen, Beispieldatei geladen, war gut so.
diese Adresse muss doch drin bleiben, sonst kommt bei leeren Zellen Fehlermeldung 1004
On Error GoTo Feh
SuName = Target.Value
Adr = Target.Address 'wieder aktivieren !!
Aendere den Code Kürzel gefunden bitte wie folgt ab:
'Kürzel gefunden, aber Zelle leer (FR1 u.sw)
If Not rFind Is Nothing Then
If rFind.Offset(0, 1) = Empty Then
ElseIf Target.Value Empty Then
rFind.Offset(0, 1).Resize(1, 4).Copy
Target.Offset(0, 3).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End If
End If
Ich hoffe damit dürfte die Sache laufen. Diese Variante ist ein Programmier Trick.
rFind.Offset findet eine leere Zelle, aber danach kommt -kein Befehl- zum handeln, sondern Elseİf
If rFind.Offset(0, 1) = Empty Then
ElseIf Target.Value Empty Then
Würde mich sehr freuen wenn es so klappt.
Dann schliesse den Thread bitte für andere Anfragen. Danke ...
mfg Piet

AW: Kontrollkästchen ändert Zelleninhalt
28.02.2016 19:40:07
Tobias
Guten Abend Piet,
Vielen Vielen Dank für deine große Hilfe, werde dich auf jeden Fall in meiner Dokumetation erwähnen.
Es klappt jz echt gut. Ich habe mal ein Screenshot von der Kompletten Kalkulationsmaske gemacht.
Userbild
Da stehen unzählige Berechnungen hinter die die Daten alle verarbeiten.
Eine Frage hätte ich noch meinst du man könne dein Makro von der Curserarea so einstellen das man nach dem man in Spalte M war wieder in Spalte A kommt nur eine Zeile Tiefer? Denn wenn ich an der Stelle Enter drücke komme ich bei den Stückzahleingaben raus und wenn ich weiter mit Tab gehe komme ich rechts in die anderen Kalkulationen rein, die sollen aber erst Später bearbeitet werden.
mfG Tobias

AW: Kontrollkästchen ändert Zelleninhalt
28.02.2016 21:41:19
Piet
Hallo Tobias
freut mich sehr wenn es jetzt klappt.
ich habe die letzte Anfrage noch mal in der letzten Beispieldatei getestet.
Der Cursor bleibt bei mir nach der Eingabe stehen, er ist wohl abgeschaltet.
Benutzen kann ich nur noch Tab oder die Pfeiltasten.
Bei meinem PC schaltet der Cursor bei -aktivem ScrollBereich- in Spalte M automatisch auf Spalte A um, in die naechste Zeile.
Am Bildschirm kann man aber nicht erkennen das ScrollArea aktiv ist. Sehen kann man es aber im VBA Editor, wenn du das Eigenschaftsfenster für Tabelle Pos1 öffnest.
Dort sieht man in ScrollArea diesen Eintrag: $A$1:$M$50
Warnung:
Bitte nicht auf "A3" setzen, waere zwar logisch damit man mit dem Cursor nicht in der Überschrift herum laufen kann, wenn
du aber nach unten scrollst in den Summenbereich -verschwindet- die Überschriftszeile und wird nicht mehr sichtbar!
Das sind die kleinen Excel Tücken die man nur durch selbst experimentieren wie jetzt für diesen Thread heruas findet.
So gesehen hat mir die Zusammenarbeit auch einige neue Erkenntnisse gebracht.
mfg Piet

AW: Kontrollkästchen ändert Zelleninhalt
29.02.2016 07:19:40
Tobias
Hallo Piet,
Das klappt so weit mit dem Scrollbereich von A1:M52 nur wie sage ich ihm das wenn ich unten angekommen bin er in den Bereich von O1:AJ52 weiter macht und wo lege ich das Makro ab das es immer Aktive ist?

AW: Kontrollkästchen ändert Zelleninhalt
29.02.2016 09:15:41
Piet
Hallo Tobias
da gibt es zwei Lösungen: du kannst den Bereich von A1:AJ52 immer freigeben.
dann laeuft der Cursor immer bis hinten durch. Um das abzufangen müsste man in Spalte M ein Ende Zeichen eingeben,
z.b. "aa", damit man im Tabellenmakro diese Eingabe auswerten kann und den Cursor wieder auf Spalte A setzt.
Die zweite Lösung waere zwei Makro für den Scroll Bereich zu machen, festlegen das man entweder in A oder M
einen bestimmten Text eingeben muss, um den zweiten Bereich freizugeben. z.B. "öffne O" und diesen Text
im Tabellenmakro auswerten. Mit einem zweiten Text: "Close O" zum schliessen. und dann im Tabellenblatt das
Scroll Makro für Bereich A-M oder O-AO aufzurufen.
Welche Lösung du nimmst ist egal. Die Frage ist nur, was ist für schnelles Bearbeiten effektiver?
Das war jetzt auf die schnelle und ungetestet, weil der Thread bald gelöscht wird.
Ich hoffe du siehtst in noch ....
mfg Piet
'nur Eingaben in Spalte "A" ab A3 bearbeiten
If Target.Column > 1 Then Exit

Sub     'nur in Spalte "A"
If Target.Row 
Sub        '> Zeile 3  (Überschrift)
If Target.Count > 1 Then Exit 

Sub      'Exit bei Clr Bereich
If Target.Value = Empty Then Exit 

Sub  'keine Leerzellen
'Hier könntest du eingreifen  (mit Endezeichen)
If Target.Column > 13 And Target.Value = "Ende" Then
Cells(Target.Row + 1, 1).Select: Exit Sub
'oder:  Scroll Bereich über Eingabe Text umschalten
If Target.Value = "öffne O" Then Target.Value = Empty: _
Call Cursorbereich_begrenzen_Bereich_O_AJ: Exit Sub
If Target.Value = "Close O" Then Target.Value = Empty: _
Call Cursorbereich_begrenzen_Bereich_A_M: Exit Sub
On Error GoTo Feh
SuName = Target.Value
'Suchbegriff in Spalte "AM" suchen

Sub Cursorbereich_begrenzen_ganzerBereich()
ActiveSheet.ScrollArea = "A1:AJ52"  'A1:M50
End Sub
Sub Cursorbereich_begrenzen_Bereich_A_M()
ActiveSheet.ScrollArea = "A1:M50"
End Sub

Sub Cursorbereich_begrenzen_Bereich_O_AJ()
ActiveSheet.ScrollArea = "O1:AJ52"
End Sub

AW: Nachtrag, noch ne Idee...
29.02.2016 09:25:49
Piet
Nachtrag
alternativ waere ins Blatt einen extra Button einzufügen und die Umschaltung per Schaltflaeche zu machen.
Dann muss man im Makro sehen welcher ScrollBereich gerade aktiv ist und den anderen waehlen. z.b. so
Im Prinzip so (ungetestet, selbst ergaenzen)
Ich hoffe ich konnte damit weiterhelfen.
mfg Piet
Sub Umschaltung_ScrollBereich
If ActiveSheet.ScrollArea = $A$1:$M$50" Then
Call ScrollBereich O_AJ
Else
Call ScrollBereich A_M
end if
End Sub

AW: Nachtrag, noch ne Idee...
29.02.2016 09:56:05
Piet
ich habe mir gerade noch einmal deinen ScreenShot angesehen.
Da steckt eine Menge Arbeit drin, alle Achtung. Ich wünsche dir viel Erfolg.
Jetzt sehe ich auch warum dieser Bereich von O-AJ so wichtig ist.
Im Beispiel waren es ja leere Spalten wo ich dachte: die könnte man löschen
Statt 1 Schaltflaeche könntest du auch mit 2 arbeiten, mit dem Text: "A-M" und "O-AJ"
Achte aber bitte darauf wo du sie hinsetzt, ich habe es nicht getestet, aber wenn
du O-AJ auswaehlst könnte es sein das der Bereich von A-O beim scrollen verschwindet!
Den Effekt hatte ich bei der Einstellung ScrollBereich ab "A3:M50" entdeckt.
Vielleicht musst/solltest du beim Umschalten auch die aktıve Spalte mit umschalten.
Probier mal zum Spass in einer leeren Datei dieses Makro aus.
Sub Spalten_umschalten()
ActiveWindow.ScrollColumn = 15
MsgBox "Spalte O"
ActiveWindow.ScrollColumn = 1
MsgBox "und zurück auf A"
End Sub
mfg Piet

AW: Nachtrag, noch ne Idee...
29.02.2016 13:33:43
Tobias
Hallo Piet nochmal Danke für die vielen Lösungen und deine große Hilfe.
Ich werde die Makros noch testen, habe aber selbst einen Weg gefunden.
Ich habe einfach das Offset von (0, 1) auf (0, 0) gesetzt wenn jz das Kürzel eingebe muss ich zwar zweimal Tab drücken um weiter zu kommen kann dafür aber in M einfach Enter drücken und lande wieder in A, das ist glaube ich vom Bedienen her am einfachsten.
Vielen Dank und alles Gute.
Tobias

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige