Hallo!
meine Idealvorstellung:
- Datei mit mehreren Blättern
- in allen gibt es ein Eingabefeld fuer eine Nummer (600-680)
- wenn ich in einem Blatt was eingebe gilt die Nummer in allen Blättern
- wenn ich ins nächste Blatt wechsle, steht die neue Nummer dort auch
- wenn ich stattdessen was anderes eingebe, gilt diese Nummer
- und zwar im zweiten wie im ersten Blatt etc…
- außerdem möchte ich das mit den „Drehfeldern“ (+1/-1-Schaltfläche)
kombinieren
wie kann man das realisieren?
(Wert wird aus der jeweils letzten Eingabe in verschiedenen Feldern genommen oder aus den „Drehfeldern“ bestimmt und in allen Feldern als Festwert angezeigt)
fuer Tips Vielen Dank im Voraus!
cu
kai
hi,
- Datei mit mehreren Blättern
- in allen gibt es ein Eingabefeld fuer eine Nummer (600-680)
- wenn ich in einem Blatt was eingebe gilt die Nummer in allen
Blättern
- wenn ich ins nächste Blatt wechsle, steht die neue Nummer
dort auch
- wenn ich stattdessen was anderes eingebe, gilt diese Nummer
- und zwar im zweiten wie im ersten Blatt etc…
mach dir einmal in jedem blatt an der betreffenden stelle einen verweis auf die zelle im ersten blatt, wo deine nummer steht.
am besten setzt du dich im 2. sheet in die entsprechende zelle, tipps = und klickst dann auf die entsprechende zelle im ersten blatt, dann enter-taste. es müsste dann in etwa foilgendes in die zelle des 2. blatts eingetragen werden:
=Tabelle1!A1
das ist der verweis auf zelle 1 des dings, das „Tabelle1“ heißt.
- außerdem möchte ich das mit den „Drehfeldern“
(+1/-1-Schaltfläche)
kombinieren
???
weiß ich nicht, was du meinst.
hth
m.
Hallo Kai,
eine Lösung, bei der du nur die Drehfelder benutzt kann ich anbieten.
Wenn dein zu ändernder Wert immer in der Zelle A4 jeder Tabelle steht, dann trägst du unter Eigenschaften für die Drehfelder für ‚LinkedCell‘ A4 ein.
Zusätzlich muß du für jedes Drehfeld folgenden Code eingeben:
Private Sub SpinButton1\_Change()
Dim Wert As Integer
Application.ScreenUpdating = False
Wert = Application.Range( **"A4"** ).Value
TabelleAktuell = ActiveSheet.Name
For Each X In ActiveWorkbook.Sheets
If X.Name = TabelleAktuell Then GoTo naechste1
X.Select
Application.Range(( **"A4"** ).Value = Wert
naechste1:
Next X
Sheets(TabelleAktuell).Select
Application.ScreenUpdating = True
End Sub
Fall dein Wert in einer anderen Zelle steht, dann muß du den Code entsprechend anpassen.
Ich hatte auch einen Versuch gestartet, bei einer Änderung des Wertes durch Direkteingabe den Wert in den anderen Tabellen automatisch zu aktualisieren. Funktionierte aber nicht, da sich der VBA-Code durch wiederholten Aufruf in einer Endlosschleife verfing.
Gruß
Franz
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Franz (Kai),
da ist ne Klammer zuviel in:
Application.Range(( „A4“ ).Value = Wert
Probiers mal so für Drehfelder: (Code ins Tabellenblattmodul
Private Sub SpinButton1\_Change()
Dim X
Application.ScreenUpdating = False
For Each X In ThisWorkbook.Worksheets
If X.Name ActiveSheet.Name Then X.[A4] = ActiveSheet.[A4]
Next X
Application.ScreenUpdating = True
End Sub
oder/und für Direkteingabe: (Code in "DieseArbeitsmappe")
Private Sub Workbook\_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim X
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each X In ThisWorkbook.Worksheets
If X.Name Sh.Name Then X.[A4] = Sh.[A4]
Next X
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Gruß
Reinhard
Wenn dein zu ändernder Wert immer in der Zelle A4 jeder
Tabelle steht, dann trägst du unter Eigenschaften für die
Drehfelder für ‚LinkedCell‘ A4 ein.
Zusätzlich muß du für jedes Drehfeld folgenden Code eingeben:
Private Sub SpinButton1_Change()
Dim Wert As Integer
Application.ScreenUpdating = False
Wert = Application.Range( „A4“ ).Value
TabelleAktuell = ActiveSheet.Name
For Each X In ActiveWorkbook.Sheets
If X.Name = TabelleAktuell Then GoTo naechste1
X.Select
Application.Range(( „A4“ ).Value = Wert
naechste1:
Next X
Sheets(TabelleAktuell).Select
Application.ScreenUpdating = True
End Sub
Fall dein Wert in einer anderen Zelle steht, dann muß du den
Code entsprechend anpassen.
Ich hatte auch einen Versuch gestartet, bei einer Änderung des
Wertes durch Direkteingabe den Wert in den anderen Tabellen
automatisch zu aktualisieren. Funktionierte aber nicht, da
sich der VBA-Code durch wiederholten Aufruf in einer
Endlosschleife verfing.
Gruß
Franz
2 „Gefällt mir“
Hallo Reinhard,
das ist ja eine super Vereinfachung von meinem Ansatz für den Spinbutton!
Hi Franz (Kai),
da ist ne Klammer zuviel in:
Application.Range(( „A4“ ).Value = Wert
Die Klammer ist mir beim Editieren reingeruscht 
Probiers mal so für Drehfelder: (Code ins
Tabellenblattmodul
Private Sub SpinButton1_Change()
Dim X
Application.ScreenUpdating = False
For Each X In ThisWorkbook.Worksheets
If X.Name ActiveSheet.Name Then X.[A4] =
ActiveSheet.[A4]
Next X
Application.ScreenUpdating = True
End Sub
oder/und für Direkteingabe: (Code in „DieseArbeitsmappe“)
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal
Target As Range)
Dim X
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each X In ThisWorkbook.Worksheets
If X.Name Sh.Name Then X.[A4] = Sh.[A4]
Next X
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Gruß
Reinhard
Für die Direkteingabe hatte ich versucht den Code ebenfalls im Tabellenmodul anzulegen, dabei kam es zu einer Endlosschleife, da der Code ja nach jeder Wertänderung erneut aufgerufen wurde
Auf die Idee, den entsprechenden Code für die Arbeitsmappe anzulegen bin ich nicht gekommen.
Gruß
Franz
Hallo!
Danke an Euch beide! fuer die Tips
-> muss ich erstmal in Ruhe testen…
cu
kai
1 „Gefällt mir“