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.

Suchen, Auswählen, Merken, Drucken
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)
Antworten Top
Hallo Schauan,

natürlich weißt du wieder, was ich zu tun habe Wink

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
Antworten Top
...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)
Antworten Top
Guten Morgen Schauan,

5:04???????????Huh 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, 04: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 Smile

Viele Grüße
Alex
Antworten Top
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 Wink

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)
Antworten Top
Hallo Schauan,

RESPEKT! Tatsächlich versteht man (wenn es auch eine untypische Art ist) worum es hier geht Smile 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 Smile

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:
Antworten Top
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)
Antworten Top
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 Smile 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?! Smile
Antworten Top
Hi,

(08.08.2014, 22: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)
Antworten Top
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)
Antworten Top


Gehe zu:


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