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

Zellen auf sich selbst beziehen

Forumthread: Zellen auf sich selbst beziehen

Zellen auf sich selbst beziehen
07.12.2005 12:47:26
John
Hallo,
folgendes Problem:
Ich hab eine Spalte in der der Jahresumsatz 2005 für den jeweilligen Artikel steht, jetzt sollte eine Spalte hinzukommen in der man die gerade verkaufte Anzahl einträgt. Diese Anzahl sollte dann zum Jahresumsatz hinzugerechnet werden und anschließend sollte ( möglichst ) dieser Umsatz aus der Zelle wieder gelöscht werden. Lösung mit einer gewöhnlichen Formel oder auch VBA.
Mit meinen bisherigen Versuchen habe ich nur Zirkelbezüge und Fehlermeldungen erhalten.
Kann mir da jemand helfen?
Vielen Dank
MfG
John
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen auf sich selbst beziehen
07.12.2005 12:53:42
Reinhard
Hi John,
Im Code von Tabelle1:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub '3=3te Spalte=C
Target.Offset(0, -1) = Target.Offset(0, -1) + Target.Value
Target.Value = ""
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen
Anzeige
AW: Zellen auf sich selbst beziehen
07.12.2005 13:03:20
John
Ui,das da war jetzt doch ein bisschen zu hoch für mich? Mit dem Code kann ich gar nix anfangen.
Gehts nicht noch etwas einfacher oder kannst du mir zumindest erklären, wohin mit dem Code und wie ich ihn verändern muss, sorry aber trotzdem schonmal danke.
john
AW: Zellen auf sich selbst beziehen
07.12.2005 13:14:47
Reinhard
Hi John,
Alt+F11, Doppelklick auf "Tabelle1", Code reinkopieren, ggfs anpassen, Editor schliessen.
In der ersten Zeile prüft der Code ob es die richtige Spalte ist, hier C, wenn nicht wird das Makro beendet.
Ist es C, so wird eine zelle nach links (Offset wird in der vba-Hilfe erklärt) der Wert der Zelle in C dazuaddiert.
Dann wird die zelle in C gelöscht.
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen
Anzeige
AW: Zellen auf sich selbst beziehen
07.12.2005 13:47:27
John
Hey sau cool,
das hat funktioniert.
so jetzt noch zwei Kleinigkeiten:
- wir haben 2 verschiedene arten von umsätzen, d.h. einmal Abholer, einmal Versand, d.h. ich benötige das ganze nochmal zu einer weiteren Spalte. Habe versucht den Mittelteil zu kopieren und nur die Spaltennummer zu ändern, dies funktioniert jedoch nicht. Wie gehts?
- dazu sollte noch der Bestand um diese Zahl verringert werden, (abholer und versand vom gleichen Bestand abziehen, logisch :-) )
Bin echt begeistert von der Geschwindigkeit wie dir hier geholfen wird.
Vielen Dank
john
Anzeige
AW: Zellen auf sich selbst beziehen
07.12.2005 13:53:22
Reinhard
Hi John,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Or Target.Column = 6 Then  '3=3te Spalte=C, 6=F
Target.Offset(0, -1) = Target.Offset(0, -1) + Target.Value
Target.Value = ""
End If
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen
Anzeige
AW: Zellen auf sich selbst beziehen
07.12.2005 14:04:39
John
Hey super,
das funktioniert jetzt.
Jetzt nur noch den Bestand um diese Zahl verringern ( In Spalte I [9] )
Wow, vielen dank
john
AW: Zellen auf sich selbst beziehen
07.12.2005 14:08:02
Reinhard
Hi John, meinst du das so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Or Target.Column = 6 Then  '3=3te Spalte=C, 6=F
Target.Offset(0, -1) = Target.Offset(0, -1) + Target.Value
cewlls(target.row,9)=cewlls(target.row,9)-target
Target.Value = ""
End If
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen
Anzeige
AW: Zellen auf sich selbst beziehen
07.12.2005 15:20:15
John
Super gut, genau so habe ich es gewollt, besten dank
AwTempo hängt von der Frage und davon ab,...
07.12.2005 14:11:58
der
...wer gerade im Forum ist, John.
Kann auch Tage dauern - auch keine Antwort ist möglich. Tempoverwöhnte Frager geben oft schon nach ein paar Stdd bis 1 Tag auf, weshalb dann späte Aw oft kein Feedback mehr bekommen, was die Antworter dann frustiert. Also immer noch mal schauen!
Gruß Luc :-?
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zellen auf sich selbst beziehen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei und gehe zu dem Arbeitsblatt, in dem Du die Änderungen vornehmen möchtest.

  2. Drücke Alt + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Doppelklicke auf "Tabelle1" (oder das entsprechende Arbeitsblatt), um das Code-Fenster zu öffnen.

  4. Füge den folgenden VBA-Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 3 Or Target.Column = 6 Then  '3=3te Spalte=C, 6=F
            Target.Offset(0, -1) = Target.Offset(0, -1) + Target.Value
            Cells(Target.Row, 9) = Cells(Target.Row, 9) - Target.Value  ' Bestandsänderung in Spalte I
            Target.Value = ""
        End If
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Teste die Funktion, indem Du eine Anzahl in Spalte C oder F eingibst. Der Umsatz in der vorherigen Spalte sollte sich entsprechend erhöhen, und der Bestand in Spalte I sollte verringert werden.


Häufige Fehler und Lösungen

  • Zirkelbezüge: Wenn Du einen Zirkelbezug erhältst, stelle sicher, dass Du nicht versehentlich eine Formel verwendet hast, die sich auf die Zelle selbst bezieht.

  • VBA-Code funktioniert nicht: Stelle sicher, dass Du den Code im richtigen Arbeitsblatt eingefügt hast. Kontrolliere auch, ob Makros in Excel aktiviert sind.

  • Syntaxfehler: Achte darauf, dass der VBA-Code korrekt eingegeben wurde. Ein kleiner Tippfehler kann dazu führen, dass der Code nicht funktioniert.


Alternative Methoden

Wenn Du dich nicht mit VBA anfreunden kannst, kannst Du auch folgende Methoden ausprobieren:

  • Formeln: Du kannst eine Hilfsspalte verwenden, um den neuen Wert zu berechnen. Dies ist jedoch nicht so flexibel wie die VBA-Lösung.

  • Excel-Tabelle nutzen: Verwende Excel-Tabellen, um Daten zu organisieren und dynamische Berechnungen zu ermöglichen, ohne ständig manuelle Anpassungen vornehmen zu müssen.


Praktische Beispiele

Angenommen, Du hast in Spalte C den Umsatz für Abholer und in Spalte F den Umsatz für Versand. Der Bestand befindet sich in Spalte I. Wenn Du in Zelle C2 eine Zahl (z.B. 10) eingibst, wird der Umsatz in der vorherigen Zelle (z.B. B2) um 10 erhöht und der Bestand in I2 um 10 verringert.

Damit kannst Du die Verkaufszahlen effizient verwalten und gleichzeitig den Bestand im Blick behalten.


Tipps für Profis

  • Verwende Datenüberprüfung: Setze Datenüberprüfung in den Zellen ein, um sicherzustellen, dass nur gültige Verkaufszahlen eingegeben werden.

  • Kommentiere Deinen Code: Wenn Du den VBA-Code schreibst, füge Kommentare hinzu, um die Funktionsweise zu erklären. Das hilft Dir und anderen, den Code in Zukunft besser zu verstehen.

  • Testen vor dem Einsatz: Probiere den Code in einer Testdatei aus, bevor Du ihn in einer produktiven Umgebung verwendest.


FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code anpassen? Du kannst die Spaltennummern im Code ändern, um ihn an Deine spezifischen Anforderungen anzupassen.

2. Was passiert, wenn ich einen Fehler mache? Falls Du einen Fehler machst, kannst Du den VBA-Editor erneut öffnen und den Code bearbeiten. Achte auf die korrekte Syntax.

3. Funktioniert das auch in Excel Online? Leider funktioniert VBA nicht in Excel Online. Du musst die Desktop-Version von Excel verwenden, um diese Funktion zu nutzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige