Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Aktuellen eingetragenen Wert aus Zelle auslesen un

Aktuellen eingetragenen Wert aus Zelle auslesen un
16.05.2014 11:40:52
Anja
Liebe Excel-Cracks,
ich hoffe auf Hilfe, weil ich mit meinem Problem nicht weiterkomme.
Ich habe eine Arbeitsmappen in der mehrere Tabellenblätter vorhanden sind. In der Zelle A4 befindet sich eine Auswahlliste aus der Kundennamen ausgewählt werden können. Diese Auswahlliste befindet sich auch den anderen Tabellenblättern an derselben Stelle.
Wenn ich jetzt in einem Tabellenblatt einen Namen aus der Auswahlliste auswähle, möchte ich dass er auch in allen anderen Tabellenblättern geändert wird. Das heißt, egal auf welchem Tabellenblatt ich einen Namen auswähle, soll er automatisch auch in den anderen Tabellenblättern in der Auswahllisten (Zelle A4) angezeigt werden, damit man ihn nicht jedes Mal neu auswählen muss, wenn man das Tabellenblatt wechselt.
Mit Formeln funktioniert das nicht, weil sie überschrieben werden, wenn man einen neuen Namen auswählt.
Ich habe mittelmäßige VBA-Kenntnisse.
Würde mich sehr freuen, wenn jemand eine Lösung einfällt. Vielen Dank.
Anja

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktuellen eingetragenen Wert aus Zelle auslesen un
16.05.2014 11:54:51
Arthur
Hallo Anja.
Vorschlag: Einfach einen Verweis [=Tabelle3!$A$4] in die Zellen, die ebenfalls ausgewählt werden sollen ... wenn immer nur in einem der Blätter eine Auswahl stattfinden soll.
Vorschlag VBA: Die Routine Private Sub Worksheet_Change(ByVal Target As Range) in jedem Tabellen nutzen. Abfragen, ob die Range-Adresse richtig ist und wenn, dann die anderen Zellen ändern. Achtung: Das Ändern löst den Event wieder aus, weswegen Application.EnableEvent=False kurzfristig gesetzt werden muss.
Gruß, Arthur

Anzeige
AW: Aktuellen eingetragenen Wert aus Zelle auslesen un
16.05.2014 14:22:50
Hagen
Hallo Anja,
Hab auch mal sowas gebraucht, kann man so lösen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Tabelle As Worksheet
On Error Resume Next
If Intersect(Range("A4"), Target) Is Nothing Then
Else
For Each Tabelle In ActiveWorkbook.Worksheets
Tabelle.Range("A4").Value = Target.Value
Next Tabelle
End If
End Sub
Das hier einfach in den Code von jeder Tabelle, dann ändert er bei der eingabe von iwas in A4 all A4, aller Tabellenblätter.
Gruß Hagen

Anzeige
AW: Aktuellen eingetragenen Wert aus Zelle auslesen un
17.05.2014 21:30:15
Anja
Hallo,
danke erst einmal für Eure Rückmeldungen.
Arthur
Mit dem Verweis, das klappt nicht, weil die Formel immer wieder überschrieben würde, wenn sie in das Auswahlfeld eingetragen ist. Zum anderen weiß Excel ja dann nicht, welcher der neuste Eintrag ist. Ich will, dass man in jedem Tabellenblatt aus der Liste Namen auswählen kann und dieser dann automatisch in den andern Blättern übernommen wird.
Hagen
Ich habe Deinen Code in alle Tabellenblätter kopiert. Wenn ich dann einen Namen aus der Auswahlliste auswähle hört Excel nicht mehr auf zu rechnen und stürzt dann ab.
Was läuft da falsch?
Das 2. Problem ist, dass ich bereits eine „Private Sub Worksheet Change(ByVal Target As Range)“Routine in einem der Tabellenblätter habe und Excel wegen dem doppelt vergebenen Namen meckert.
Hast Du einen Vorschlag?
Danke
Gruß
Anja

Anzeige
AW: Aktuellen eingetragenen Wert aus Zelle auslesen un
18.05.2014 04:14:28
Anja
Hallo zusammen,
habe die Lösung gefunden. Ich habe aus allen Lösungsvorschlägen folgendes gebastelt, was auch jetzt funktioniert:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Tabelle As Worksheet
On Error Resume Next
If Intersect(Range("A4"), Target) Is Nothing Then
Else
For Each Tabelle In ActiveWorkbook.Worksheets
Application.EnableEvents = False
Tabelle.Range("A4").Value = Target.Value
Application.EnableEvents = True    Next Tabelle
End If
End Sub
Vielen Dank an alle.
Gruß
Anja

Anzeige
AW: Aktuellen eingetragenen Wert aus Zelle auslesen un
18.05.2014 10:06:30
Hajo_Zi
Hallo Anja,
was ist offen?
Gruß Hajo

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Aktuellen eingetragenen Wert aus Zelle auslesen und synchronisieren


Schritt-für-Schritt-Anleitung

Um den aktuellen Wert aus einer Zelle auszulesen und in anderen Tabellenblättern zu synchronisieren, kannst Du folgenden VBA-Code verwenden:

  1. Öffne deine Excel-Arbeitsmappe und gehe zu dem Tabellenblatt, wo Du die Auswahlliste hast (z. B. in Zelle A4).

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Wähle im Projekt-Explorer das entsprechende Tabellenblatt aus.

  4. Kopiere den folgenden Code in das Code-Fenster:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim Tabelle As Worksheet
       On Error Resume Next
       If Intersect(Range("A4"), Target) Is Nothing Then
           Exit Sub
       End If
       Application.EnableEvents = False
       For Each Tabelle In ActiveWorkbook.Worksheets
           Tabelle.Range("A4").Value = Target.Value
       Next Tabelle
       Application.EnableEvents = True
    End Sub
  5. Wiederhole die Schritte 3 und 4 für jedes Tabellenblatt, in dem Du den Wert synchronisieren möchtest.

  6. Schließe den VBA-Editor und teste die Auswahlliste, indem Du einen Wert auswählst.


Häufige Fehler und Lösungen

  • Excel stürzt ab oder bleibt stehen: Wenn Du einen Namen auswählst und Excel nicht mehr reagiert, stelle sicher, dass die Zeile Application.EnableEvents = False vor der Schleife und Application.EnableEvents = True nach der Schleife steht. Dies verhindert, dass das Änderungsereignis erneut ausgelöst wird.

  • Doppelte Sub-Routine: Wenn Du bereits eine Private Sub Worksheet_Change-Routine in einem Tabellenblatt hast, solltest Du die bestehenden Codes zusammenführen, um Konflikte zu vermeiden.


Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die folgende Formel ausprobieren, um den Wert aus einer Zelle auszulesen:

  1. In Zelle A4 eines anderen Blattes kannst Du den Verweis auf die Zelle des ursprünglichen Blattes setzen:

    =Tabelle1!A4

    Beachte, dass diese Methode nur funktioniert, wenn der Wert nicht überschrieben wird.

  2. Falls Du mehrere Werte aus einer Zelle auslesen möchtest, kannst Du die Funktion TEXTSPLIT in Excel 365 verwenden, um die Werte in separate Zellen zu trennen.


Praktische Beispiele

Hier ist ein Beispiel für die Anwendung des Codes:

  • Du hast eine Auswahlliste in Zelle A4 in mehreren Tabellenblättern. Wenn Du in einem Blatt "Kunde A" auswählst, wird dieser Name automatisch in allen anderen Blättern in Zelle A4 angezeigt.

  • Um spezifische Werte wie ein Datum aus einem Auswahlfeld in Excel auszulesen, kannst Du den Code anpassen, um den Datumswert zu berücksichtigen.


Tipps für Profis

  • Optimierung des Codes: Überlege, ob Du den Code weiter optimieren kannst, indem Du nur bestimmte Blätter aktualisierst oder nur unter bestimmten Bedingungen das Synchronisieren durchführst.

  • Fehlerprotokollierung einführen: Füge eine Fehlerbehandlung hinzu, um Probleme bei der Ausführung des Codes besser zu diagnostizieren.

  • Makros aktivieren: Stelle sicher, dass die Makros in deinen Excel-Einstellungen aktiviert sind, damit der VBA-Code korrekt funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich den Wert einer Zelle in eine andere Zelle kopieren? Verwende den Code Tabelle.Range("Zielzelle").Value = Tabelle.Range("Quellzelle").Value, um den Wert von einer Zelle auf eine andere zu kopieren.

2. Funktioniert das in jeder Excel-Version? Der VBA-Code sollte in den meisten modernen Excel-Versionen (z. B. Excel 2013, 2016, 2019, 365) funktionieren. Hinweis: Die Funktionalität kann je nach Excel-Version variieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige