VBA- Zellen Inhalt automatisch übernehmen aber manuelle ändern können.
#1
VBA- Zellen Inhalt automatisch übernehmen aber manuelle ändern können.

Beispiel (Datei eingefügt): 
.xlsm   Test_Zeilen_Montage_pro_Kollege.xlsm (Größe: 39,73 KB / Downloads: 3)

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,

78
  Niko
Antworten Top
#2
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Niko
Antworten Top
#3
Die Kollegen sind einfache Benutzer und ich ein einfacher Laie in Sachen Excel Formeln, geschweige VBA 20 .
 
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.
Antworten Top
#4
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
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 Smile
Antworten Top
#6
Hallo Nico, 19 

hier deine Datei zurück: 21
[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. Dodgy

Versuche dir die Grundlagen anzueignen. Angel
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • Niko
Antworten Top
#7
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 16 …hoffe es ist nur heute 86
 
Danke nochmals

שלום 
78
  Niko
Antworten Top
#8
הרבה תודות. כל טוב
Antworten Top


Gehe zu:


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