Anzeige
Archiv - Navigation
552to556
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
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

code wird durch Zellaktualisierung aufgerufen

code wird durch Zellaktualisierung aufgerufen
21.01.2005 21:03:50
christian
Hallo Profis,
ich habe einen Code welcher durch Zelleingabe aufgerufen wird.
Nun möchte ich die Zelle in einer anderen Tabelle pflegen.
Wie kann ich erreichen, dass mein Code trotzdem ausgeführt wird?
Beispiel Tabelle 1 Zelle B 12 Eingabe 1, Tabelle 4 Zelle A1 =Tabelle1! b12,
wenn ich in Tabelle 4 A1 einen Wert eingebe funktioniert mein Code. Aber wenn ich in der gleichen Zelle einen Verweis auf eine andere Zelle mach nicht!!! Warum ?
Bitte um Vorschläge wenn möglich, danke Christian

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: code wird durch Zellaktualisierung aufgerufen
Ramses
Hallo
vielleicht zeigst du uns mal den relevanten Code.
Sonst wird das hier zum Ratespiel.
Gruss Rainer
AW: code wird durch Zellaktualisierung aufgerufen
21.01.2005 21:17:03
christian
Hallo Rainer,
hier kommt der Code!!

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Row = 1 And Target.Column = 1 Then
If Cells(1, 1) = 1 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_MGV").Range("A1:H172").Copy
ElseIf Cells(1, 1) = 2 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_Karneval").Range("A1:H140").Copy
ElseIf Cells(1, 1) = 3 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_Schuetzen").Range("A1:H140").Copy
Else
End If
Range("A23").Select
ActiveSheet.Paste
Cells(1, 1).Select
End If
Application.ScreenUpdating = True
End Sub

hoffentlich hilfts
Gruss Christian
Anzeige
AW: code wird durch Zellaktualisierung aufgerufen
Ramses
Hallo
Das Makro startet nur, wenn in der jeweiligen Tabelle direkte manuelle Änderungen durchgeführt werden.
Es kann also nicht funktionieren.
Das weitere Problem, alle EXCEL Ereignisse werden nicht ausgelöst, wenn es zu Wert-Änderungen durch DDE - Verbindugnen oder Verknüpfungen kommt.
Ein grundsätzliches Problem wirst du haben, wenn das Makro tatsächlich startet, weil es einen Blattwechsel vornimmt.
Ich kann dir daher nur empfehlen das Makro auch in die Tabelle zu kopieren wo du gerade deine Eingabe machst um das Makro zu starten.
Alternativ kannst du das Makro auslagern in ein Modul, und aus dem Change-Ereignis aufrufen

Private Sub Worksheet_Change(ByVal Target As Range)
Call BlattChangeMakro
End Sub

Und dein Makro in Modul und entsprechend umbenennen:
Sub BlattChangeMakro()
Application.ScreenUpdating = False
If Target.Row = 1 And Target.Column = 1 Then
....
Cells(1, 1).Select
End If
Application.ScreenUpdating = True
End Sub
Gruss Rainer
Anzeige
AW: code wird durch Zellaktualisierung aufgerufen
21.01.2005 22:16:16
christian
Hallo Rainer,
ehrlich gesagt verstehe ich davon nicht sehr viel.
Ich habe deine VOrschöäge ausprobiert komme damit aber nicht wirklich klar.
Wenn ich die Sache richtig verstehe dann soll ich den gleiche Code in die Tabelle kopieren in welcher ich die Eingabe mache. Krieg ich zwar hin geht aber nicht.
Woher weiss mein Code wen ich die Makro Sache mache in welcher Tabelle activeSheet ist?
Und wie kann ich die Zelle angeben in der die Eingabe gemacht wird?
Ich bin neu in dem Thema und bitte um Nachsicht!!!!!!
Danke Christian
AW: code wird durch Zellaktualisierung aufgerufen
Ramses
Hallo
"....Woher weiss mein Code wen ich die Makro Sache mache in welcher Tabelle activeSheet ist?..."
Das weiss er vorher auch nicht, weil du andere Tabellen anwählst ohne das Originalsheet wieder zu aktivieren.
Das ist auf jeden Fall kein Makro das ein VBA-Neuling geschrieben hat ;-)
Probiers einfach mal so aus:

Sub BlattChangeMakro()
Dim CurSheet as Worksheet
Set CurSheet = Worksheets(Activesheet.Name)
Application.ScreenUpdating = False
If Target.Row = 1 And Target.Column = 1 Then
If Cells(1, 1) = 1 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_MGV").Range("A1:H172").Copy
ElseIf Cells(1, 1) = 2 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_Karneval").Range("A1:H140").Copy
ElseIf Cells(1, 1) = 3 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_Schuetzen").Range("A1:H140").Copy
End If
Worksheets(CurSheet).Range("A23").Select
ActiveSheet.Paste
Cells(1, 1).Select
End If
Application.ScreenUpdating = True
End Sub

Gruss Rainer
Anzeige
AW: code wird durch Zellaktualisierung aufgerufen
PeterW
Hallo Rainer,
sorry für die Nachfrage aber sollte dem Makroaufruf nicht die Variable Target mit übergeben werden?
Gruß
Peter
Du hast recht ... :-)
Ramses
Hallo Peter
habe ich tatsächlich übersehen.
Die Übergabe müsste demnach erfolgen
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Call BlattChangeMakro(Target.Row, Target.Column)
End Sub

Sub BlattChangeMakro(myRow As Integer, myCol As Integer)
Dim CurSheet As Worksheet
Set CurSheet = Worksheets(ActiveSheet.Name)
Application.ScreenUpdating = False
If myRow = 1 And myCol = 1 Then
If Cells(1, 1) = 1 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_MGV").Range("A1:H172").Copy
ElseIf Cells(1, 1) = 2 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_Karneval").Range("A1:H140").Copy
ElseIf Cells(1, 1) = 3 Then
Range("A23:H200").Select
Selection.Delete Shift:=xlToLeft
Sheets("Brief_Schuetzen").Range("A1:H140").Copy
End If
Worksheets(CurSheet).Range("A23").Select
ActiveSheet.Paste
Cells(1, 1).Select
End If
Application.ScreenUpdating = True
End Sub
Gruss Rainer
Anzeige
Kleine Korrektur...
Ramses
Hallo
Das kommt davon :-)
Die Zeile
Worksheets(CurSheet).Range("A23").Select
mus heissen
CurSheet.Range("A23").Select
Gruss Rainer
AW: Kleine Korrektur...
22.01.2005 08:14:23
christian
Hallo Rainer und Peter,
danke für die konstruktiven Beitäge.
Ich werde das ganze ausprobieren und mich melden.
Übrifens der Code ist halb Forum und halb gebastelt mit aufzeichnen und kopieren aus anderem Code. Ich hab davon echt nicht viel Ahnung bin aber lernfähig.
Danke und Gruss Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige