online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon AceRider vom 20.02.2019, 14:47 Options

Wert einer Zelle errechnen, in der Zielzelle soll keine Formel sein

Hallo, ich habe folgendes Problem:

In der Zelle A1 steht ein Wert (100), in der Zelle B1 ein weiterer (5%). In der Zelle C1 soll das multiplizierte Ergebnis stehen => 5. Allerdings soll in der Zelle C1 keine Formel hinterlegt sein, das Feld soll leer sein für manuelle Einträge.

Es soll also eine vorhandene aber nicht sichtbare Formel sein (analog einer bedingten Formatierung, die ja auch nicht sichtbar ist). Gerne möchte ich ohne Makros, Hilfsspalten etc. auskommen.

Ist höchstwahrscheinlich die gleiche Lösung: Wenn in Zelle A2 "Storno" steht, soll dieser Wert in Zelle B2 erscheinen- auch hier soll in Zelle B2 keine sichtbare Formel hinterlegt sein.

Vielen Dank für Eure Lösungsvorschläge!

Stefan


Antwort schreiben

Antwort 1 von Hajo_Zi vom 20.02.2019, 15:44 Options

Hallo Stefan,

keine Change ohne VBA.

Gruß Hajo

Antwort 2 von AceRider vom 20.02.2019, 16:43 Options

Schade :-(( Aber eine Lösung mit VBA wäre möglich? Wie sieht die aus?

Antwort 3 von DukeNT vom 20.02.2019, 16:45 Options

Hi Stefan,
in Zelle C1 schreibst du:
=WENN(A1<>"";WENN(B1<>"";(A1*B1);"");"")
Wenn in A1 und B1 werte stehen wird C1 berechnet.
Zelle C1 ist leer wenn A1 oder B1 leer sind.
Spalte B Zellen Formatieren auf "Prozent" einstellen.
Dann noch unter Ansicht "Bearbeitungsleiste" den Haken weg.
Damit wird die Formelzeile ausgeblendet.
Zwar nicht das gelbe vom Ei aber wenn es so geht?

Gruß Niels

Antwort 4 von Hajo_Zi vom 20.02.2019, 19:26 Options

Hallo Stefan,

unter der Tabelle

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Or Target.Address = "$B$1" Then Range("C1") = Range("A1") * Range("B1")
End Sub

Gruß Hajo

Antwort 5 von AceRider vom 21.02.2019, 12:12 Options

Funktioniert, vielen Dank für die Lösungsvorschläge!

In der ersten Anfrage habe ich leider nicht geschrieben, dass auch die Folgezeilen berücksichtigt werden sollen. Wie muss dann die Formel aussehen? Mit dem Ersetzen des Wertes "$a$1" durch "A1:A1000" war ich wenig erfolgreich....

Antwort 6 von Hajo_Zi vom 21.02.2019, 12:19 Options

Hallo Stefan,

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 Or Target.Column = 2 Then Cells(Target.Row, 3) = Cells(Target.Row, 1) * Cells(Target.Row, 2)
End Sub

Gruß Hajo

Antwort 7 von AceRider vom 21.02.2019, 12:58 Options

Klasse, bin begeistert, Hajo.

Eine Anschlussfrage: Wenn ich den Wert aus Spalte 2 wieder lösche, soll auch in Spalte 3 nichts mehr erscheinen (jetzt erscheint beim Löschen immer eine "0") => d.h. ich will den Ursprungszustand wieder haben.

Letzte Frage (hoffentlich): Wie sieht die Formel bei diesem Problem aus: Wenn in Zelle A2 "Storno" steht (+fortlaufende Zeilen), soll dieser Wert "Storno" in Zelle B2 erscheinen.

Antwort 8 von Hajo_Zi vom 21.02.2019, 13:34 Options

HAllo Stefan,

ich hoffe mal ich habe es richtig verstanden.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 Or Target.Column = 2 Then
If Target <> "" Then
If IsNumeric(Cells(Target.Row, 1)) And IsNumeric(Cells(Target.Row, 1)) Then
Cells(Target.Row, 3) = Cells(Target.Row, 1) * Cells(Target.Row, 2)
End If
Else
Cells(Target.Row, 3) = ""
End If
End If
If Target.Column = 1 And Target = "Storno" Then Target.Offset(0, 1) = Target
End Sub

Ich habe noch paar verbesserungen eingebaut

Gruß Hajo

Antwort 9 von AceRider vom 21.02.2019, 13:51 Options

Fast perfekt mit einer kleinen Änderung: Wenn nur in Spalte A oder B etwas steht (also entweder 100 oder 5%), dann soll in Spalte C nichts stehen.

Antwort 10 von Hajo_Zi vom 21.02.2019, 13:56 Options

Hallo Stefan,

sieht ein Beitrag mit Anrede und Gruß nicht persönlicher aus?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 Or Target.Column = 2 Then
If Target <> "" Then
If IsNumeric(Cells(Target.Row, 1)) And IsNumeric(Cells(Target.Row, 2)) _
And Cells(Target.Row, 1) <> "" And Cells(Target.Row, 2) <> "" Then
Cells(Target.Row, 3) = Cells(Target.Row, 1) * Cells(Target.Row, 2)
End If
Else
Cells(Target.Row, 3) = ""
End If
End If
If Target.Column = 1 And Target = "Storno" Then Target.Offset(0, 1) = Target
End Sub

Gruß Hajo

Antwort 11 von AceRider vom 21.02.2019, 14:19 Options

Hallo Hajo,

natürlich, Du hast Recht. Du wirst lachen, aber genau das habe ich bei meiner vorherigen Nachricht auch gedacht- nachdem ich sie abgeschickt habe :-)) Vor allem, da Du mir wirklich sehr weitergeholfen hast und ich jetzt Dank Deiner Hilfe wunschlos glücklich bin!

Vielen, vielen Dank für Deine kompetente Hilfe!

Viele Grüße
Stefan

Antwort 12 von AceRider vom 26.02.2019, 20:05 Options

Guten Abend Hajo & alle anderen lieben Helfer/Innen,

gerade ist mir aufgefallen, dass ich bei der vorherigen Anfrage einen Fehler eingebaut habe:

Wenn in Spalte B eine % Zahl steht, soll normal gerechnet werden (also z.B. 100 x 5%), nehme ich aber aus der Spalte B die % Zahl heraus, soll in C nichts stehen. Trage ich aber in die Spalte C eine manuelle Zahl ein, soll in Spalte B die % Zahl herausgenommen werden.

Ergänzt wird mein jetziges Problem durch drei neue Spalten. Steht in Spalte D das Wort Storno soll in Spalte A ebenfalls Storno übernommen werden (vorher sagte ich, dass das Wort Storno aus Spalte A in Spalte B übernommen werden solle). Dies habe ich selber hinbekommen:

If Target.Column = 4 And Target = "Storno" Then Target.Offset(0, -3) = Target

Wenn Spalte E leer ist, kann obige Formel verwendet werden. Wenn aber in Spalte D "Storno" steht und in Spalte E "Erl.", dann soll in Spalte A "Storno" stehen und es soll zusätzlich in Spalte E der Wert aus Zelle F stehen mit dem Zusatz "Storno verechnen". Beispiel: "Storno verechnen 500". Spalte G ist eine Spalte mit Gebühren, die verrechnet werden müssen.

Letztes Problem: Spalte A bezieht sich auf Spalte G (hier steht ein nicht währungsbereinigte Wert). Wenn ich in Spalte F den Wert ändere, ändert sich richtigerweise auch Spalte A. Aber es verändert sich nicht der Wert in Spalte B und C (C ist relevant)!

Gibt es auch dafür eine Lösung?? Der besseren Übersicht wollte ich die Excel Datei beigefügen, wußte aber nicht wie das geht....

Viele Grüße und vielen Dank!

Stefan

Antwort 13 von Hajo_Zi vom 27.02.2019, 13:10 Options

Hallo Stefan,

hochladen kannst Du z.B. hier
http://www.uploadagent.de/index.php

Ich habe erstmal bis Mittwoch abend keine Zeit für Dein Problem.

Gruß Hajo

Antwort 14 von AceRider vom 27.02.2019, 20:14 Options

Ich habe sie hochgeladen, weiß aber nicht, wo sie gelandet ist... :-)))

Antwort 15 von Hajo_Zi vom 27.02.2019, 20:53 Options

Hallo Stefan,

nach dem hochladen wird Dir im oberen Teil ein Link angezeigt und den mußt Du in das Forum kopieren.

Gruß Hajo

Antwort 16 von AceRider vom 28.02.2019, 16:23 Options

Hallo Hajo,

die Tabelle befindet sich hier:

http://www.uploadagent.de/files/1172676165/Tabelle.xls

Gruß
Stefan

Antwort 17 von Hajo_Zi vom 28.02.2019, 18:10 Options

Hallo Stefan,

auf meinem Rechner ist jetzt leider der Testzeitraum für mein Office abgelaufen. Meine gekaufte Version installiere ich erst beim neuen Betriebssystem. Was am Wochende passieren wird. Also bin ich zur Zeit nur eingeschränkt Handlungsfähig. Ich kann Dein Problem wahrscheinlich mir erst am Sonntag ansehen. Ich hoffe mal das bis dahin schon jemand das Problem gelöst hat.

Gruß Hajo

Antwort 18 von AceRider vom 12.03.2019, 11:36 Options

Hallo Excelprofis,

ich hoffe mir kann jemand weiterhelfen, wollte den Thread wieder ein bißchen nach vorne bringen :-)

Viele Grüße

Stefan

Antwort 19 von Hajo_Zi vom 12.03.2019, 11:55 Options

Hallo Stefan,

ich hoffe mal ich habe viele Probleme erledigt.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
If Target.Column = 1 Or Target.Column = 2 Then
Application.EnableEvents = False
If Target <> "" Then
If IsNumeric(Cells(Target.Row, 1)) And IsNumeric(Cells(Target.Row, 2)) _
And Cells(Target.Row, 1) <> "" And Cells(Target.Row, 2) <> "" Then
Cells(Target.Row, 3) = Cells(Target.Row, 1) * Cells(Target.Row, 2)
End If
Else
Cells(Target.Row, 3) = ""
End If
Else
If Target.Column = 3 Then
Cells(Target.Row, 2) = ""
End If
End If
If Target.Column = 4 And Target = "Storno" Then
Target.Offset(0, -3) = Target
If Target.Offset(0, 1) = "Erl." Then
Target.Offset(0, 1) = "Storno verrechnen " & Target.Offset(0, 2)
End If
End If
Application.EnableEvents = True
End Sub

Das letzte Problem konnte ich nicht mehr testen, da zu wenig Werte in der Datei waren und bei mir in Spalte A nur noch Storno Stand und keine Verknüpfung.

Gruß Hajo

Antwort 20 von Hajo_Zi vom 12.03.2019, 12:28 Options

Hallo Stefan,

ich habe die Datei nochmal runtergeladen. Bei Änderung in Spalte F ändert sich nicht Spalte A, da diese sich auf G bezieht und G sich nicht auf F bezieht.

Was ist wenn in A schon Storno steht? oder der Wert in Spalte A überschrieben wurde, was im Code ja auch abgefangen wurde.

Gruß Hajo

Ähnliche Themen

Berechnungsergebnis in andere Zelle
micico  16.11.2007 - 180 Hits - 5 Antworten

rote werte übernehmen
nurich  03.12.2007 - 114 Hits - 1 Antwort

Befehl zum Kopieren eines Zellinhaltes in Wenn Formel verwenden
zug  16.04.2008 - 110 Hits - 1 Antwort

zelle mit formel überspringen
Noldi  23.06.2008 - 63 Hits - 11 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026