16.10.2019, 08:29 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2019, 08:33 von Quarzer.)
Hallo Leute,
ich habe mal eine Frage. Auf Arbeit wurde mir eine Excel-Tabelle vorgesetzt, die sich in Teilen automatisch selbst befüllt, ich aber nicht dahinterkomme wie es funktioniert. Z.b. werden in Zeile 10 die Spalten A bis G befüllt. Zu dem Zeitpunkt sind die Spalten H - L noch komplett leer. Es ist auch keine Formel oder dergleichen hinterlegt. Sobald jedoch Werte in die Spalten A bis G befüllt werden, werden die Spalten H - L automatisch mit Formeln befüllt, die auf die Spalten A-G zugreifen und entsprechend der Werte Daten ausgibt. Wie geht das?
17.10.2019, 07:34 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2019, 08:14 von Quarzer.)
Huhu.
habe da mal was angehangen. Derzeit stehen in den Spalten C/D/E keine Daten, sobald aber in den Spalten A/B was eingegeben wird, sind Formeln in den Spalten C/D/E hinterlegt.
Ich sehe gerade, dasss das Sheet nicht angehangen war. Von daher habe ich das oben nochmal getan. Wenn man da z.B. in A5 oder B5 was eingibt, wird C5 bis E5 von selbst befüllt, obwohl vorher nichts drin war. Ist das womöglich eine Tabellnfunktion? Und wenn ja, geht das auch außerhalb der Tabellen. Mit der STRG+L konnte ich gerade nicht soooo viel anfangen. Sry :(
Option Explicit Public Neu As Long Public Aelteste As Date Public Eingabe As Long Public loEnde As Long
Private Sub worksheet_activate() Application.MoveAfterReturnDirection = xlToRight Neu = Cells(Rows.Count, 1).End(xlUp).Row End Sub Private Sub worksheet_deactivate() Dim loLetzte As Long Dim loa As Long Application.MoveAfterReturnDirection = xlDown Application.EnableEvents = False Application.ScreenUpdating = False loLetzte = Cells(Rows.Count, 1).End(xlUp).Row If loLetzte > Neu Then With Sheets("Kasse") If .FilterMode Then .ShowAllData End With Range(Cells(3, 1), Cells(loLetzte, 8)).Sort key1:=Range("A1"), order1:=xlDescending, key2:=Range("B1"), order2:=xlAscending Cells(3, 7).FormulaLocal = "=kürzen(G4+((C3=""Umb"")+(C3=""bar""))*F3;2)" Cells(3, 7).AutoFill Destination:=Range(Cells(3, 7), Cells(loLetzte, 7)) Range(Cells(3, 7), Cells(loLetzte, 7)).Value = Range(Cells(3, 7), Cells(loLetzte, 7)).Value Range(Cells(3, 3), Cells(loLetzte, 5)).Validation.Delete End If Application.ScreenUpdating = True Application.EnableEvents = True End Sub Private Sub worksheet_Change(ByVal target As Range) Dim loLetzte As Long Dim loa As Long Dim Liste As String Dim rng As Range Dim loAnzahl As Long Dim loSpalte As Long If target.Count > 1 Then Exit Sub With Cells(2, 3).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlEqual, Formula1:="=Zahlart" End With With Cells(2, 2).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlEqual, Formula1:="=Nutzer" End With If target.Address = "$D$2" Then If target = "" Or target = "Taschengeld" Then Exit Sub Liste = Range("D2") With Cells(2, 5).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlEqual, Formula1:="=" & Liste End With End If If Intersect(target, Range("F2")) Is Nothing Then Exit Sub Application.EnableEvents = False Application.ScreenUpdating = False 'On Error GoTo Fehler If InStr(UCase(Cells(2, 3)), "BAR") > 0 Or InStr(UCase(Cells(2, 3)), "UNB") > 0 Or InStr(UCase(Cells(2, 3)), "MAS") > 0 Then Cells(2, 6) = -Cells(2, 6)
Eingabe = Eingabe + 1 If Aelteste = 0 Or Cells(2, 1) < Aelteste Then Aelteste = Cells(2, 1)
Range(Cells(2, 1), Cells(2, 8)).Insert shift:=xlDown With Range(Cells(2, 1), Cells(2, 8)).Borders .LineStyle = xlContinuous .Weight = xlThin End With
(17.10.2019, 08:15)Quarzer schrieb: Ist das womöglich eine Tabellnfunktion? Und wenn ja, geht das auch außerhalb der Tabellen. Mit der STRG+L konnte ich gerade nicht soooo viel anfangen. Sry :(
Hm... das war auch meine Gedanke. Aber ich kann einfach das Makro nicht finden auch mit STRG + F11 nicht... Bin ich zu doof? Bei mir sind alle Makro-Fenster leer. :(