VBA- Zellen Inhalt automatisch übernehmen aber manuelle ändern können.
Beispiel (Datei eingefügt): [
attachment=44327]
Im Januar in A5 steht „Projekt 122“, soll automatisch auch im Februar in der A5 stehen.
Soll aber gleichzeitig möglich sein manuell in der Zelle einzugreifen und anderen Text eingeben falls sich etwas verändert im Monat Februar.
JanuarA5 –> FebruarA5 & Manuelle danach veränderbar. Wenn manuelle verändert möglich wieder im vorherigen zustand (Text aus JanuarA5).
Könnte man dies mit VBA oder irgendeinen anderen Lösungsvorschlag bewerkstelligen?
Danke für jede hilfe,
Niko
Hallo Nico,
wozu der Unfug mit den Monatsblättern? So etwas gehört auf ein Tabellenblatt, dann löst sich dein "Problem" in Luft auf.
Die Kollegen sind einfache Benutzer und ich ein einfacher Laie in Sachen Excel Formeln, geschweige VBA
.
Wie auch immer, habe mir aus dem Internet diesen Code zusammengebastelt und mit einem Kontrollkästchen funktioniert es.
Code:
Sub BereichKopierenFeb1()
Sheets("Februar").Range("A9") = Sheets("Januar").Range("A9").Value
End Sub
Frage mich ob dies auch mit rechten Mausklick möglich ist ?
Wäre es so möglich?
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
'Me.Unprotect ("1234")
If Not Intersect(Target, Range("A5:A43")) Is Nothing Then
Target = IIf(Target = "", Sheets("Februar").Range("A5") = Sheets("Januar").Range("A5").Value, "")
Cancel = True
End If
'Me.Protect ("1234")
End Sub
Eureka!!!
Ein bisschen laienhaft hin und her geschnipselt und schon funktioniert es.
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
ActiveWorkbook.ActiveSheet.Unprotect ("1234")
If Not Intersect(Target, Range("A9:A18")) Is Nothing Then
Target = IIf(Target = "", Sheets("Januar").Range("A9").Value, "")
Cancel = True
End If
ActiveWorkbook.ActiveSheet.Protect ("1234")
End Sub
Danke nochmal füt Zeit und Mühe.
Hallo Nico,
Zitat:Die Kollegen sind einfache Benutzer und ich ein einfacher Laie in Sachen Excel Formeln, geschweige VBA.
ein Grund mehr, das auf einem Blatt unterzubringen. Wenn du das Kalendarium über die Blattbreite anwendest, reicht der Platz für über 40 Jahre. Auswertungen über Zeiträume sind auf einem weiteren Blatt ohne Probleme Möglich, auch für einzelne Monate. Über die Gliederungsfunktion lassen sich alle Jahre und Monate die nicht relevant sind per Mausklick ausblenden.
Dass dies so korrekt ist wie du schon erwähnst, daran besteht kein Zweifel.
Doch bitte zu bedenken, dass hier Laien am Werk sind, zeit bis jetzt investiert worden ist, die mir keiner bezahlt und ich es auch freiwillig machen für die Kollegen…es soll nicht ein Leben lang halten…nur bis zu Rente.
Habe eben ein Denkfehler begangen bei meinen Code geschnipsel. Es kopiert nur die Zelle A9 (bzw. A5) mit der rechten Maustaste. Wie kann ich es so machen das mit der rechten Maustaste es die selbe Zelle vom Vor Monat anzeigt?
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
ActiveWorkbook.ActiveSheet.Unprotect ("1234")
If Not Intersect(Target, Range("A5:A43")) Is Nothing Then
Target = IIf(Target = "", Sheets("Januar").Range("A5").Value, "")
Cancel = True
End If
ActiveWorkbook.ActiveSheet.Protect ("1234")
End Sub
Danke für Geduld und Verständnis
Hallo Nico,
hier deine Datei zurück:
[
attachment=44328]
Achte darauf,
wo der Code
steht! Wenn Du im Moment im
Februar in eine
leere Zelle der Spalte A was
schreibst, wird es bei Rechtsklick
rausgelöscht,
wenn in
Januar nichts steht.
Kann man anpassen.
Unter "
DieseArbeitsmappe" kannst du Code einstellen, der für
alle Tabellenblätter gilt. Du musst dann eben
einschränken -
siehe Code.
Ereigniscodes wie "
Worksheet_Change" haben in
Modulen nichts verloren und einfache
Subs nichts im
Klassenmodul der
Tabelle.
Versuche dir die Grundlagen anzueignen.
Danke...
Doch die Datei hat keinen Code der JanuarA5 –> FebruarA5 & Manuelle danach veränderbar ist. Wenn manuelle verändert wird und auf lee ist, wieder im vorherigen zustand (Text aus JanuarA5).
Zellen A5:A14, A18: A27.
STOP!
Sry....jetzt habe ich es kapiert...lol...schwer von Begriff heute
…hoffe es ist nur heute
Danke nochmals
שלום
Niko