Zelleneingabe über mehrere Zellen im Excel

Hi zusammen,

ich habe das Problem, dass ich im Excel über mehrere Felder in ein gemeinsames Feld schreiben muss.

ALSO:

A1: hier gebe ich „2“ ein
A2: hier sollte die „2“ aus A1 ausgegeben werden

jetzt möchte ich aber, dass wenn ich in A2 „3“ reinschreibe, dass die „3“ auch an die A1 weitergegeben wird. Also soll die Eingabe auf eine Zelle durch mehrere Felder möglich sein.

Ist sowas im Excel überhaupt vorgesehen?

Hallo,
alle Felder markieren, Wert in das aktive Feld eintragen und mit Strg-Enter abschließen

Gruß
Vincenz

thx, ich habe allerdings das Problem, dass sich die Felder in verschiedenen Mappen befinden. desshalb möchte ich ja einen Wert einer anderen Mappe aus beschreiben können.

Hallo,
davon war für mich in deinem ersten Post aber nichts geschrieben.
Für mich hört sich das Problem ziemlich undurchdacht an.
Man kann bei Tabellen in einer Mappe so vorgehen, dass man im Prinzip ein Tabellenblatt für die Eingabe vorsieht und dann von den Auswertungstabellen aus auf die Eingabefelder verweist. In die Auswertetabellen sollte dann nichts mehr eingegeben werden.
Das ganze ist auch mappenübergreifend möglich. Excel verwendet allerdings absolute Pfade, so dass derart verbundene Mappen immer im gleichen Verzeichnis verbleiben müssen.

Gruß
Vincenz

thx, ich habe allerdings das Problem, dass sich die Felder in
verschiedenen Mappen befinden. desshalb möchte ich ja einen
Wert einer anderen Mappe aus beschreiben können.

dann anhand eines Beispiels:

ich habe mit der Verarbeitung von Kupfer zu tun und habe in einer Mappe eine Tabelle zur Kupferpreisberechnung, eine zur Lagerhaltung und eine zum Planen der Einkäufe. Jetzt habe ich das „Kupferpreis“-Feld in jeder der Tabellen und ich möchte den Preis auch von jeder Tabelle aus ändern können. Geht sowas?

Hallo,
liest/verstehst Du eigentlich, was ich Dir schreibe?
Vielleicht nicht ganz deutlich ausgedrückt von meiner Seite:
Vorraussetzung: Alle Tabellen in einer Mappe.
Tabelle1!A1: Kupferpreis in €/kg, als Beispiel 10 €/kg
Dann kann ich in der Tabelle Lager in einer beliebigen Zelle eintragen: =Tabelle1A1 als Verweis auf den Kupferpreis/Kg und erhalte auch dort 10 angezeigt, bzw kann damit rechnen.
Schreibe ich da jetzt den neuen Kupferpreis mit sagen wir 12 €/kg hinein, habe ich die Formel überschrieben und die Formel ist weg. Tabelle1!A1 bekommt davon nichts mit. Wie auch, da ist ja ein Wert eingetragen und kein Verweis.
Also nochmal:
Erstelle ein Tabellenblatt, auf dem du alle „Eingaben“ sammelst und verweise in den Auswertetabellen Lager und Einkauf auf die Eingabetabelle. Ändern kannst Du die Werte nur in der Eingabetabelle.
Eine Alternative wäre ein Name „Kupferpreis“, den du jeweils über den Namensmanager ändern kannst. Halte ich nicht für gut.
Prinzipiell sollte man auch in Excel das EVA-Prinzip bei der Programmierung umsetzen Eingabe (E), Verarbeitung (V), Ausgabe (A). Wobei V und A bei Excel auf den Auswertungsblättern dann zusammenfallen.

Gruß
Vincenz

Zitat „Schreibe ich da jetzt den neuen Kupferpreis mit sagen wir 12 €/kg hinein, habe ich die Formel überschrieben und die Formel ist weg“

genau das war meine Frage, obs eine Möglichkeit gibt um trotz Eingabe die Formel beizubehalten.

und ja, ich lese natürlich was du schreibst:smile:

Hallo gamble,
mir erschließt sich der Sinn Deines Vorhabens leider nicht. Da lässt es sich schlecht Probleme lösen. Aber: Wenn A1 und A2 jeweils etwas berechnen und das Ergebnis zurückgeben, dann würdest Du mit der Eingabe einer Zahl in A1 oder A2 die jeweilige Formel durch die Eingabe vernichten.
Gruß Maria

Keine keine solche Funktion.
Am besten in A1 die entsprechende Formel eingeben. z.B. = Summe(a2+a3+a4) etc.

Hi,

so etwas ist in Excel eigentlich nicht vorgesehen. Es wäre wohl so etwas wie ein Zírkelbezug.

Man kann aber ein Makro programmieren, das diese Aufgabe erfüllt. Da es mich interessiert hat, habe ich mich daran versucht. Den VBA-Code füge ich hier hinzu.
Das Makro sollte im Visual Basic Editor im Bereich „DieseArbeitsmappe“ abgespeichert werden.
Die Prozedur „Workbook_SheetChange“ wird immer aufgerufen, wenn in der Arbeitsmappe etwas geändert wurde. Die Prozedur überprüft dann, ob die Zellen A1 oder A2 betroffen sind. Die betroffenen Zellen werden mit den „Const“-Definitionen zeile1/spalte1 und zeile2/spalte2 festgelegt, ebenso der Tabellenname. Es soll ja nur in einer Tabelle wirksam sein.
Eine Schwierigkeit war noch, dass die Prozedur erneut (verschachtelt) aufgerufen wird, sobald das Makro z.B. den Inhalt von Zelle A1 nach Zelle A2 kopiert. Eine undendliche Kette von Makroaufrufen würde entstehen, wenn dies nicht mit Hilfe der Variable „recursion“ verhindert werden würde.
Die „Beep“-Aufrufe sollen nur Anzeigen, dass das Makro aktiv geworden ist, sie können auch gelöscht werden.
(Die Einrückungen im Code wurden hier leider eintfernt.)

'Hier ist der Makro-Code:
'Name der Tabelle
Const TabellenName As String = „Tabelle1“
'1.Zelle = A1
Const zeile1 As Long = 1
Const spalte1 As Long = 1
'2.Zelle = A2
Const zeile2 As Long = 1
Const spalte2 As Long = 2
'Verhindere mehrfachen Aufruf
Private recursion As Boolean

Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Source As Range)
Dim a As Long, r1 As Long, c1 As Long, r2 As Long, c2 As Long
Dim copy1 As Boolean, copy2 As Boolean
If sh.Type = xlWorksheet Then
If sh.Name = TabellenName Then
If recursion = False Then
copy1 = False
copy2 = False
For a = 1 To Source.Areas.Count
With Source.Areas.Item(a)
r1 = .Row
c1 = .Column
r2 = r1 + .Rows.Count - 1
c2 = c1 + .Columns.Count - 1
End With
If zeile1 >= r1 And zeile1 = c1 And spalte1 = r1 And zeile2 = c1 And spalte2

Nochmals Hi,

jetzt ist mir im letzten Moment doch noch ein Fehler reingerutscht. Das Flag „recursion“ muss unbedingt gesetzt werden, bevor der Zellenwert geändert wird. Hier nochmal der richtige Makro-Code:

Option Explicit
'Name der Tabelle
Const TabellenName As String = „Tabelle1“
'1.Zelle = A1
Const zeile1 As Long = 1
Const spalte1 As Long = 1
'2.Zelle = A2
Const zeile2 As Long = 1
Const spalte2 As Long = 2
'Verhindere mehrfachen Aufruf
Private recursion As Boolean
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Source As Range)
Dim a As Long, r1 As Long, c1 As Long, r2 As Long, c2 As Long
Dim copy1 As Boolean, copy2 As Boolean
If sh.Type = xlWorksheet Then
If sh.Name = TabellenName Then
If recursion = False Then
copy1 = False
copy2 = False
For a = 1 To Source.Areas.Count
With Source.Areas.Item(a)
r1 = .Row
c1 = .Column
r2 = r1 + .Rows.Count - 1
c2 = c1 + .Columns.Count - 1
End With
If zeile1 >= r1 And zeile1 = c1 And spalte1 = r1 And zeile2 = c1 And spalte2