Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Alex,
wenn die beiden Angaben auch auf das Blatt Input müssen, dann muss ich dort auch noch den Blattschutz aufheben vorher .unprotect nachher .protect (steht z.b. auch so an anderer Stelle im Kopieren) oder Du nimmst (erst mal?) bei den beiden Zellen, wo Username und Datum hinkommen, das "gesperrt" raus.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.07.2014
Version(en): 2007/2010
Hallo Schauan, natürlich weißt du wieder, was ich zu tun habe Ich hab den Schutz rausgenommen. Ich sehe da aber ein Problem auf uns zu kommen, was mich darauf schließen lässt, dass es besser wäre, wenn wir .unprotect und .protect doch einfügen. Für den Teil des Einfügens, habe ich es hinbekommen. Bei "Clear Worksheet" kommt das hier, wenn ich debugge Code: 'Blatt INPUT bereinigen Sheets("Input").Range("N8:N11, P6, B8:B11, B13, B14, A16, B16, N16:P16, S2, T2").Value = "" <-- HIER .Protect 'letzte belegte Zelle in Spalte G
Hab versucht davor und danach einzugeben aber er nimmt es nicht :( Viele Grüße und Danke Alex
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
08.08.2014, 05:04
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2014, 06:01 von schauan.)
...das .protect kommt nach den beiden Zeilen mit.cells... Ich hatte ja schon geschrieben, das man mit dem with die Angabe sparen kann, womit man etwas tun will. Das gilt natürlich nur so lange, bis zum dazu gehörenden End With. Damit das leichter gesehen wird, wiederhole ich die Kommentare. Außerhalb weiß Excel nicht, wozu die Aktion gehört. Beim Menschen ist das in manchen Fällen ähnlich. Wenn ich zu dir"bewegen" sag, läufst Du dann los oder wackelst du dann mit den Ohren?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.07.2014
Version(en): 2007/2010
Guten Morgen Schauan, 5:04??????????? das ist definitiv noch zu früh :19: Das erste unprotect / protect habe ich hinbekommen. Beim zweiten hier Code: Next 'Blatt INPUT bereinigen Sheets("Input").Range("N8:N11, P6, B8:B11, B13, B14, A16, B16, N16:P16, S2, T2").Value = "" <-- HIER 'letzte belegte Zelle in Spalte G loLastRow = WorksheetFunction.Max(Sheets("Sales").Cells(Rows.Count, 7).End(xlUp).Row, 3)
Hab ich mal ein bisschen versucht aber es funktioniert nicht :( (08.08.2014, 05:04)schauan schrieb: Wenn ich zu dir"bewegen" sag, läufst Du dann los oder wackelst du dann mit den Ohren? Ich weiß nicht, bei deiner bisherigen Hilfe schlacker ich mit den Ohren <-- positiv gemeint! So eine Hilfe hätte ich wirklich nicht erwartet!!!! :100: Danke Schauan und bis gleich mal Viele Grüße Alex
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
08.08.2014, 16:43
(Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2014, 16:45 von schauan.)
Hallo ALex, also, die Theorie nochmal erweitert. Ich hatte heute früh das mit dem End With erwähnt. Du kannst also nicht nach dem End With nochmal mit .unprotect arbeiten. Entweder musst Du dann auch das End With nach unten schieben, oder ein neues With / End With programmieren, oder Du teilst Excel genau das Objekt mit, was Du da ungeschützt haben willst. Mal ein paar Körperbezogenen Beispiele. Code: Mit der rechten Hand .Bewegen.Senkrecht .stillhalten Ende mit der rechten Hand Mit der linken Hand .Bewegen.waagerecht .stillhalten Ende mit der linken Hand
würde die Rechte Hand senkrecht bewegen und dann aufhören, aber nur die rechte Hand. Anschließend die Linke, aber waagerecht. Mit dem folgenden code würden sich erst die rechte bewegen, dann beide Hände, dann hört die linke auf und dann die rechte. Kannst Du ja mal ausprobieren Code: Mit der rechten Hand .Bewegen.Senkrecht Mit der linken Hand .Bewegen.waagerecht .stillhalten Ende mit der linken Hand .stillhalten Ende mit der rechten Hand
Du siehst, dass auch die Zuordnung der With's und End With's beachtet werden muss, wenn diese geschachtelt werden. Wenn Du jetzt irgendwo nach den End With's - Bzw. Ende mit der ... Hand Bewegen.waagerecht programmierst, weiß Excel - bzw. Du - nicht, was bewegt werden soll. Du könntest daher ohne With folgendes programmieren RechteHand.Bewegen.waagerecht und anschließend RechteHand.stillhalten Bei Deinem Versuch fehlt also das Objekt. Der code für das Excelprojekt könnte so aussehen: Code: Sheets("Input").unprotect Sheets("Input").Range("N8:N11, P6, B8:B11, B13, B14, A16, B16, N16:P16, S2, T2").Value = "" Sheets("Input").protect
Mit With würde das so aussehen: Code: With Sheets("Input") .unprotect .Range("N8:N11, P6, B8:B11, B13, B14, A16, B16, N16:P16, S2, T2").Value = "" .protect End With
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.07.2014
Version(en): 2007/2010
Hallo Schauan, RESPEKT! Tatsächlich versteht man (wenn es auch eine untypische Art ist) worum es hier geht ich habe den Fehler gemacht, die Mappe vor dem Weiterlaufen nicht manuell zu entsperren. Die Idee kam gerade erst und natürlich funktioniert es so, wie du es beschrieben hast D A N K E ! Eine Sache ist aber wirklich komisch :19: Der Sheet_Change Code in "Dieser Arbeitsmappe" ist bei uns beiden identisch. In der Mustertabelle färbt er die Zelle grün. Bei mir in der Originaltabelle nicht. Ich habe unterschiedliche "Bedingte formatierungen" in den Zellen (mit farblicher Markierung) hinterlegt. So z.B. dass wenn jemand erst "I" auswählt kommt in "J" "Select Timeline ("K"). Quasi eine erinnerung, dass der Kunde noch den Zeitraum bestimmt, in dem er das Material haben möchte. Könnte es daran liegen, dass es nicht funktioniert? Viele Grüße und Danke für alles!!! With Person ("Schauan") .hut ziehen und vor ihm verbeugen .so lange wie er in diesem Projekt hilft End With :100:
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Alex,
die bedingte Formatierung überschreibt die "normale" Zellfarbe. Wenn Du also von C bis M diese Formatierung hast, bleibt von der per code gesetzten Farbe bei Wirksamkeit der definierten Bedingungen nix übrig. Eventuell hätte man da aber auch auf das Setzen der Farben per code verzichten und gleich alles über die bedingte Formatierung regeln können. Das Setzen der Farbe per code kann bei größeren Datenmengen den Vorteil haben, dass es die Mappe weniger belastet.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.07.2014
Version(en): 2007/2010
Hallo Schauan, das mit der Bedingten Formatierung hat (zumindest so wie ich es versucht habe) nicht funktioniert. Die bedingte Formatierung implizierte, dass jeder Wert >0 gefärbt würde und da u.a. in "E" & "F" durch die Preise automatisch größer 0 waren, haben sich die beiden direkt gefärbt. Mir gefällt deine Variante deutlich besser ich kann die bedingte Formatierung auch wieder entfernen (zumindest die Farbe dahinter) wenn du evlt. eine möglichkeit hast, wie ich dem Kunden aufzeigen kann, dass er, wenn er nur "I" auswählt einen Laufzeitfehler hat (irgendwie sichtbar). Viele Grüße Alex PS: Wie viele Stunden hat dein Tag so im Schnitt?!
Registriert seit: 10.04.2014
Version(en): 2016 + 365
09.08.2014, 01:19
(Dieser Beitrag wurde zuletzt bearbeitet: 09.08.2014, 01:22 von Rabe.)
Hi, (08.08.2014, 23:51)Alex105 schrieb: wenn du evlt. eine möglichkeit hast, wie ich dem Kunden aufzeigen kann, dass er, wenn er nur "I" auswählt einen Laufzeitfehler hat (irgendwie sichtbar). vielleicht mit einer Message-Box? Oder ebenfalls per VBA: wenn K = leer und I ungleich leer, dann setze den Cursor in K. Zwangsweises Anspringen der Zelle in K (oder J, wie gewünscht)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Alex,
Du könntest in Spalte I auch eine Gültigkeit vereinbaren, dass dort nur etwas eingetragen werden kann, wenn in der gleichen Zeile in K etwas steht. Das deckt jedoch nicht den Fall ab, dass jemand hinterher den Inhalt von K löscht und den Inhalt von I drin lässt.
Du könntest auch in der Gültigkeit in K vereinbaren, dass leere nicht erlaubt sind, um das Löschen zu vermeiden. Das hat aber den Nachteil, dass bei versehentlichem Eintrag dieser nicht mehr gelöscht werden kann.
Du könntest in K3 auch folgende Bedingung für eine bedingte Formatierung definieren =UND(I3<>"";K3="") K3 damit z.B. gelb oder rot färben und dann mit dem Pinsel das Format nach unten übertragen.
Bei welcher Aktion kommt nochmal der Laufzeitfehler?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
|