Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1116to1120
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vorbelegung

Vorbelegung
Sandra
Hallo zusammen,
stehe vor folgemdem Problem.
Wenn ich in A2 was eintrage, dann soll in D2 60 % und E2 40 % eingetragen werden. Dieser Wert soll aber auch manuell überschrieben werden können (z.B. D2 = 70 %). Diese Art Wenn-Formel möchte ich dann bis A1000 runterziehen.
Kann mir hier jemand helfen?
Vielen Dank
Viele GRüße
Sandra
AW: Vorbelegung
Heinz
Hallo Sandra,
in einer Zelle können nicht gleichzeitig eine Formel und ein Wert stehen. Wenn du einmal einen Wert manuell eingegeben hast, ist die Formel unwiderruflich weg (außer natürlich gleich danach mit zurück).
Du könntest eventuell folgende Formel (in D2) verwenden (indem du in F2 den neuen Wert einträgst):
=WENN(F2"";F2;A2) , was allerdings nicht viel Sinn ergibt, da könntest du ja gleich den Wert in A2 verändern, oder?
in E2 würde immer die Formel =100-D2 stehen.
Gruß
Heinz
AW: Vorbelegung
Sandra
Gibt es denn eine andere Lösung für mein Problem? Beispielsweise über VBA?
AW: Vorbelegung
Christian
Hallo Sandra,
Schreibe zB in D1 den Wert 0,6 (Format = %)
In D2 die Formel: = A2 * $D$1
in E2 die Formel: = A2 - D2
Jetzt kannst du die Anteile zentral in der Zelle D1 ändern. Das gilt dann natürlich für alle Zeilen D2 bis Ende und E2 bis Ende.
Gruß
Christian
Anzeige
AW: ähnliches problem...
Sandra
Hallo Robert,
vielen Dank für den Beitrag. Ich habe von VBA aber eigentlich keine Ahnung.
ICh möchte - wenn ich in A2 was eintrage - , dass in D2 60 % und in E2 40 % eingetragen wird. Dieser Wert soll anschließend manuell änderbar sein (= also keine Formel, wie ich jetzt gelernt habe).
Die Funktion oder wie man das nennt, soll bis A1000 möglich sein. Es handelt sich hier um ein Kassenbuch, was sich so langsam füllt.
Kann mir hier jemand helfen?
VG
Sandra
Anzeige
kannst ja mal testen ob es so geht.
Tino
Hallo,
kommt als Code in Tabelle
Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
Dim Bereich As Range 
Set Bereich = Intersect(Range("A2:A1000"), Target) 
 
If Not Bereich Is Nothing Then 
 With Bereich 
    .Offset(0, 3).FormulaR1C1 = "=IF(RC[-3]="""","""",RC[-3]*60%)" 
    .Offset(0, 3).Value = .Offset(0, 3).Value 
    .Offset(0, 4).FormulaR1C1 = "=IF(RC[-4]="""","""",RC[-4]*40%)" 
    .Offset(0, 4).Value = .Offset(0, 4).Value 
 End With 
End If 
 
End Sub 
 

Gruß Tino
Anzeige
..da tut sich nichts-warum?..
robert
Bei mir tut sich aber was...
Sandra
Also bei mir tuts sich was. Aber in den Spalten D und E werden folgende Werte eingetragen.
24089,4 16059,6
Überschreiben kann ich sie auch.
Jetzt muss da nur noch 60 % bzw 40 % stehen. Dann glaube ich, ist es genau das was ich gerne
hätte. :-)
AW: Bei mir tut sich aber was...
Nepumuk
Hallo,
versuch es mal so:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Bereich As Range
    
    Set Bereich = Intersect(Range("A2:A1000"), Target)
    
    If Not Bereich Is Nothing Then
        Application.EnableEvents = False
        With Bereich
            .Offset(0, 3).Value = 0.6
            .Offset(0, 4).Value = 0.4
        End With
        Application.EnableEvents = True
    End If
    
    Set Bereich = Nothing
End Sub

Die Spalte D und E als Prozent formatieren!
Momentan ist es aber so, wenn der Wert in Spalte A nochmal geändert wird, das Programm wieder die 60% bzw. 40% rein schreibt. Wenn das nicht sein soll, dann müssen wir das ganze in eine Schleife packen und eine Abfrage vor dem schreiben setzen.
Gruß
Nepumuk
Anzeige
AW: ..hier meine Datei...
Sandra
Hallo Nepumuk,
das klappt bestens. Beim sortieren bleiben die Werte auch erahlten. Wenn ich da jetzt doch noch einmal an Spalte A ran muss, dann muss ich dran denken. Im Normalfall sind die Werte 60 / 40, so dass es selten zu einer Korrektur kommen wird.
Könntest Du mir vielleicht zeigen, wie man das umbauen müsste, wenn man statt Spalte A nun auf Spalte B prüfen will. Und hier die Besonderheit: nur bei Eingabe 2 und 5 sollen die Zellen D und E mit 60 und 40 vorbelegt werden.
Könnte nämlich sein, dass mein Chef diese Variante bevorzugt. Auch hierfür vielen Dank!
VG
Sandra
Anzeige
AW: ..hier meine Datei...
Nepumuk
Hallo Robert,
so wie ich das verstanden habe, soll da tatsächlich immer 60% bzw. 40% drin stehen. Aber nich die vom eingegebenen Betrag sondern einfach so, ohne was zu berechnen.
Gruß
Nepumuk
@Robert
Tino
Hallo,
es wird in die Spalte D 60% von A eingetragen und in E 40% von A.
Der Code kommt in die entsprechende Tabelle nicht in ein Modul.
Gruß Tino
Habe noch ne Frage...
Sandra
Hallo Nepumuk,
das klappt bestens. Beim sortieren bleiben die Werte auch erahlten. Wenn ich da jetzt doch noch einmal an Spalte A ran muss, dann muss ich dran denken. Im Normalfall sind die Werte 60 / 40, so dass es selten zu einer Korrektur kommen wird.
Könntest Du mir vielleicht zeigen, wie man das umbauen müsste, wenn man statt Spalte A nun auf Spalte B prüfen will. Und hier die Besonderheit: nur bei Eingabe 2 und 5 sollen die Zellen D und E mit 60 und 40 vorbelegt werden.
Könnte nämlich sein, dass mein Chef diese Variante bevorzugt. Auch hierfür vielen Dank!
VG
Sandra
Anzeige
danke ich bin aber nicht Nepumuk,
Tino
Hallo,
vielleicht bin ich mal irgendwann so Gut wie er. ;-)
Für Spalte B mach aus der Zeile
Set Bereich = Intersect(Range("A2:A1000"), Target)
diese
Set Bereich = Intersect(Range("B2:B1000"), Target)
Gruß Tino
Stopp, ich habe meinen Beitrag
Sandra
einfach wiederholt, weil plötzlich nur noch Robert im Mittelpunkt stand. :-)
Deine Lösung betrifft aber nur die Änderung der Spalte, ich hatte aber auch was anderes gefragt.
Könntest Du mir vielleicht zeigen, wie man das umbauen müsste, wenn man statt Spalte A nun auf Spalte B prüfen will. Und hier die Besonderheit: nur bei Eingabe 2 und 5 sollen die Zellen D und E mit 60 und 40 vorbelegt werden.
Wenn Männer sich unterhalten, bleiben die Frauen auf der Strecke..... :-(
Anzeige
AW: Stopp, ich habe meinen Beitrag
Tino
Hallo,
hier mit zwei Varianten, einmal den Prozentwert aus Spalte B wenn in B 5 oder 6 steht.
Format der Zelle wird auf Standard gestellt.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range

Set Bereich = Intersect(Range("B2:B1000"), Target)
 
If Not Bereich Is Nothing Then
 Application.EnableEvents = False
 With Bereich
    .Offset(0, 2).FormulaR1C1 = "=IF(AND(RC[-2]<>2,RC[-2]<>5),"""",RC[-2]*60%)"
    .Offset(0, 2).NumberFormat = "General"
    .Offset(0, 2).Value = .Offset(0, 2).Value
    .Offset(0, 3).NumberFormat = "General"
    .Offset(0, 3).FormulaR1C1 = "=IF(AND(RC[-3]<>2,RC[-3]<>5),"""",RC[-3]*40%)"
    .Offset(0, 3).Value = .Offset(0, 3).Value
  End With
 Application.EnableEvents = True
End If
 
End Sub
Und hier wird 60% oder 40% in die Zellen geschrieben und das Format auf Prozent gestellt.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range

Set Bereich = Intersect(Range("B2:B1000"), Target)

If Not Bereich Is Nothing Then
 Application.EnableEvents = False
 With Bereich
    .Offset(0, 2).FormulaR1C1 = "=IF(AND(RC[-2]<>2,RC[-2]<>5),"""",60%)"
    .Offset(0, 2).NumberFormat = "0%"
    .Offset(0, 2).Value = .Offset(0, 2).Value
    .Offset(0, 3).NumberFormat = "0%"
    .Offset(0, 3).FormulaR1C1 = "=IF(AND(RC[-3]<>2,RC[-3]<>5),"""",40%)"
    .Offset(0, 3).Value = .Offset(0, 3).Value
 End With
 Application.EnableEvents = True
End If

End Sub
Gruß Tino

www.VBA-Excel.de


Anzeige
meinte, wenn in Spalte B 2 oder 5 steht. oT.
Tino
Variante 2 funktoniert aber nicht. Es
Sandra
passiert gar nichts, Tino.
Und ich habe den neuen Beitrag nur eröffnet, weil ich von Dir keine Antwort mehr erhalten habe. Was sollte ich sonst tun? Immer wieder Frage offen?
Ich habe m.E. nett formuliert. Jedenfalls passiert bei Deiner zweiten Variante nix. Bei 2 oder 5 hätte ich nun einen Eintrag erwartet. Mache mal wieder Frage offen. :-)
AW: Variante 2 funktoniert aber nicht. Es
Tino
Hallo,
ich bin auch nur ein Mensch und kann keinen Code aus dem Ärmel schütteln.
hier die Beispieldatei.
Den zweiten Code habe ich auskommentiert,
falls dieser gewünscht diesen aktivieren (Hochkommas löschen) und den anderen löschen.
https://www.herber.de/bbs/user/65904.xls
Gruß Tino
Anzeige
Problem besteht noch
Sandra
Hallo Tino,
natürlich bist Du nur ein Mensch und ich kenne Dich eigentlich auch nur als einen sehr hilfsbereiten. Aber ich weiß ehrlich nicht, warum Du jetzt so böse auf mich bist.
Zum Fehler selbst:
Ich bekomme in einer geschützten Datei (die Felder, wo Du die Werte einträgst sind aber ungeschützt) immer einen Laufzeitfehler (Anwendungs- oder objektdefinierter Felder). Im Editor ist diese Zeile markiert:
.Offset(0, 6).FormulaR1C1 = "=IF(AND(RC[-6]2,RC[-6]5),"""",60%)"
Weißt Du woran es liegen könnte? Habe es schon versucht, den Schutz vorher rauszuznehmen, aber der Fehler kommt trotzdem.
Wenn nicht, ist es auch kein Weltuntergang. Dann trage ich die Werte manuell ein.
Liebe Grüße
Sandra
AW: Problem besteht noch
Tino
Hallo,
ich finde es einfach nicht schön einfach einen neuen Beitrag anzufangen und die anderen links liegen zu lassen.
Zu Deinem Problem, kannst Du mal eine Datei hochladen wo dieser Fehler auftritt.
Kann auch geschützt sein, schreibe nur das Kennwort dabei damit ich damit was machen kann.
Wenn ich dich richtig verstanden habe, möchtest Du die 2. Variante.
Gruß Tino
AW: Problem besteht noch
Sandra
Hallo,
ich habe es doch schon begründet. Es wurden zwischen Euch beiden immer mehr Beiträge und meine Fragen wurden nicht "beachtet" bzw. wieder überschrieben. Ich kann ja verstehen, dass Du Robert helfen willst aber es gehört sich auch nicht von Robert, da einfach seine eigenen Beiträge reinzubringen. Ich würde zumindest nicht machen. Aber das Thema ist nun durchgekaut, es tut mir leid. Du warst ja gar nicht gemeint.
Ich habe die Tabelle jetzt aus der Datei kopiert und da funktioniert der Code. Jetzt verstehe ich die Welt gar nicht mehr. Muss mal schauen, was sich da gegenseitig ärgert. Die ganze Datei kann ich Dir nämlich nicht zu schicken.
Weißt Du spontan, woran sowas liegen könnt?
Liebe Grüße
Sandra
AW: Problem besteht noch
Tino
Hallo,
so spontan weis ich auch nicht.
Ist die Tabelle geschützt, kannst Du dies Zeile noch einfügen und testen.
ActiveSheet.Protect Password:="xxx", UserInterfaceOnly:=True
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range

Set Bereich = Intersect(Range("B2:B1000"), Target)

If Not Bereich Is Nothing Then
 Application.EnableEvents = False
 'Dein Passwort anpassen 
 ActiveSheet.Protect Password:="xxx", UserInterfaceOnly:=True
    With Bereich
       .Offset(0, 2).FormulaR1C1 = "=IF(AND(RC[-2]<>2,RC[-2]<>5),"""",60%)"
       .Offset(0, 2).NumberFormat = "0%"
       .Offset(0, 2).Value = .Offset(0, 2).Value
       .Offset(0, 3).NumberFormat = "0%"
       .Offset(0, 3).FormulaR1C1 = "=IF(AND(RC[-3]<>2,RC[-3]<>5),"""",40%)"
       .Offset(0, 3).Value = .Offset(0, 3).Value
    End With
 Application.EnableEvents = True
End If

End Sub
Gruß Tino
@ Tino : jetzt kappt es -->
Sandra
Habe jetzt alle Blätter mit den Codes in eine neue Datei gepackt und da funktioniert es.
Vielen Dank und schönes Wochenende!
super, noch schönes WE oT.
Tino
@Sandra...
robert
hi,
dass du nicht allein auf der welt bist, hast du schon mitbekommen-oder?
schau dir mal einige beiträge an,
da kann es schon vorkommen, dass querfragen kommen, die das ursprüngliche thema betreffen.
ungeduld-dein name ist .....
und es freut mich zu lesen, dass du genau weisst, was zu tun und nicht zu tun ist.
gruß
robert
AW: @Tino...
robert
hi Tino,
der code steht doch in meiner datei im tabellenblatt1 !
auch bei deiner datei zum spielen tut sich nichts !!!
irgendwelche einstellungen falsch ?
gruß
robert
sind Makros aktiv bei Dir? oT.
Tino
ja das wars! aus-PERSONL.XLS owT
robert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige