Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Umwandlung in FormulaLocal
#11
Dafür gibt es bei diesen Tabellenobjekten strukturierte Verweis:
https://it-service-ruhr.de/tipp/excel-st...e-verweise

In "alten" Tabellen kannst Du mit Namen arbeiten:
http://www.online-excel.de/excel//singsel.php?f=60
und ff

Oder Du errechnest den Bereich mit Index(A2:index(A:A;Anzahl2(A:A)))
oder …

Das ist jetzt nicht persönlich gemeint:
Viel zu häufig wird VBA als Allzweckwaffe missbraucht, obwohl es eher das Skalpell sein sollte, wenn der Vorschlaghammer nix bringt.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#12
Hi,

Außerdem gibt es da wesentlich kürzere Formeln:

Arbeitsblatt mit dem Namen 'Tabelle1'
TUVWXYZAAABACADAE
3BBCDEE171717171717
4BCDEE1515

ZelleFormel
Z3=SUMME((WENN(T3="A";0;WENN(T3="B";2;WENN(T3="C";4;WENN(T3="D";6;WENN(T3="E";8)))))) + (WENN(U3="A";0;WENN(U3="B";2;WENN(U3="C";4;WENN(U3="D";6;WENN(U3="E";8)))))) + (WENN(V3="A";0;WENN(V3="B";1;WENN(V3="C";2;WENN(V3="D";3;WENN(V3="E";4)))))) + (WENN(W3="A";0;WENN(W3="B";1;WENN(W3="C";2;WENN(W3="D";3;WENN(W3="E";4)))))) + (WENN(X3="A";0;WENN(X3="B";1;WENN(X3="C";2;WENN(X3="D";3;WENN(X3="E";4)))))) + (WENN(Y3="A";0;WENN(Y3="B";1;WENN(Y3="C";2;WENN(Y3="D";3;WENN(Y3="E";4)))))))
AA3=SUMME(CODE(T3)-65;CODE(T3)-65;CODE(U3)-65;CODE(U3)-65;CODE(V3)-65;CODE(W3)-65;CODE(X3)-65;CODE(Y3)-65)
AB3=SUMME(CODE(T3)*2;CODE(U3)*2;CODE(V3);CODE(W3);CODE(X3);CODE(Y3))-520
AC3=SUMME(CODE(GROSS(T3))*2;CODE(GROSS(U3))*2;CODE(GROSS(V3));CODE(GROSS(W3));CODE(GROSS(X3));CODE(GROSS(Y3)))-520
AD3{=SUMME(CODE(T3:Y3);CODE(T3:U3))-520}
AE3{=SUMME(WENNFEHLER(CODE(GROSS(T3:Y3));0);WENNFEHLER(CODE(GROSS(T3:U3));0))-ANZAHL2(T3:Y3)*65-ANZAHL2(T3:U3)*65}
Z4=SUMME((WENN(T4="A";0;WENN(T4="B";2;WENN(T4="C";4;WENN(T4="D";6;WENN(T4="E";8)))))) + (WENN(U4="A";0;WENN(U4="B";2;WENN(U4="C";4;WENN(U4="D";6;WENN(U4="E";8)))))) + (WENN(V4="A";0;WENN(V4="B";1;WENN(V4="C";2;WENN(V4="D";3;WENN(V4="E";4)))))) + (WENN(W4="A";0;WENN(W4="B";1;WENN(W4="C";2;WENN(W4="D";3;WENN(W4="E";4)))))) + (WENN(X4="A";0;WENN(X4="B";1;WENN(X4="C";2;WENN(X4="D";3;WENN(X4="E";4)))))) + (WENN(Y4="A";0;WENN(Y4="B";1;WENN(Y4="C";2;WENN(Y4="D";3;WENN(Y4="E";4)))))))
AE4{=SUMME(WENNFEHLER(CODE(GROSS(T4:Y4));0);WENNFEHLER(CODE(GROSS(T4:U4));0))-ANZAHL2(T4:Y4)*65-ANZAHL2(T4:U4)*65}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#13
@Ralf:
Danke schon mal. Wenn ich es ohne VBA lösen kann, kannst du mir da eine Hilfestellung geben mit der INDEX-Funktion. Ich weiß gerade nicht recht wie ich diese aufbauen soll in Kombination mit der Index-Funktion. Im Prinzip würde es ja auch mit VBA-Code funktioneren, da dürfte doch nur ein kleiner Denkfehler drinen sein, oder?

@BoskoBiati:
Mein Code ist ziemlich lang, mir ging es jetzt primär darum, dass er funktioniert, da die Tabelle bald fertig gestellt werden muss. Da ich noch recht neu hier bin fehlt mir an manchen Stellen das Wissen. Wenn ich nun versuche deine Formeln zu kopieren, funkioniert es bei mir nicht. Hast du eine Idee, woran das liegen könnte?

Vielen Dank schon mal
Antworten Top
#14
Hi,

Zitat:Wenn ich nun versuche deine Formeln zu kopieren, funkioniert es bei mir nicht.


klasse Aussage! Was funktioniert nicht? kopieren oder die Formel?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#15
@BoskoBiati,

wenn ich deinen Code (2. Zeile) in die Zelle zur Berechnung der Summe einfüge, wird mir #WERT! angezeigt.

Code:
=SUMME(CODE(T3)-65;CODE(T3)-65;CODE(U3)-65;CODE(U3)-65;CODE(V3)-65;CODE(W3)-65;CODE(X3)-65;CODE(Y3)-65)
Antworten Top
#16
Hi,

wie Du aus meinem Tabellenausschnitt entnehmen kannst, funktionieren die Codes, bis auf den letzten, nur mit vollständig gefüllten Zeilen. Sollte es freie Felder geben müsste man die anderen Codes abwandeln:

Arbeitsblatt mit dem Namen 'Tabelle1'
TUVWXYZAAABACADAE
3BBCDEE171717171717
4BCDEE151515151515

ZelleFormel
Z3=SUMME((WENN(T3="A";0;WENN(T3="B";2;WENN(T3="C";4;WENN(T3="D";6;WENN(T3="E";8)))))) + (WENN(U3="A";0;WENN(U3="B";2;WENN(U3="C";4;WENN(U3="D";6;WENN(U3="E";8)))))) + (WENN(V3="A";0;WENN(V3="B";1;WENN(V3="C";2;WENN(V3="D";3;WENN(V3="E";4)))))) + (WENN(W3="A";0;WENN(W3="B";1;WENN(W3="C";2;WENN(W3="D";3;WENN(W3="E";4)))))) + (WENN(X3="A";0;WENN(X3="B";1;WENN(X3="C";2;WENN(X3="D";3;WENN(X3="E";4)))))) + (WENN(Y3="A";0;WENN(Y3="B";1;WENN(Y3="C";2;WENN(Y3="D";3;WENN(Y3="E";4)))))))
AA3=SUMME(CODE(T3)-65;CODE(T3)-65;CODE(U3)-65;CODE(U3)-65;CODE(V3)-65;CODE(W3)-65;CODE(X3)-65;CODE(Y3)-65)
AB3=SUMME(CODE(T3)*2;CODE(U3)*2;CODE(V3);CODE(W3);CODE(X3);CODE(Y3))-520
AC3=SUMME(CODE(GROSS(T3))*2;CODE(GROSS(U3))*2;CODE(GROSS(V3));CODE(GROSS(W3));CODE(GROSS(X3));CODE(GROSS(Y3)))-520
AD3{=SUMME(CODE(T3:Y3);CODE(T3:U3))-520}
AE3{=SUMME(WENNFEHLER(CODE(GROSS(T3:Y3));0);WENNFEHLER(CODE(GROSS(T3:U3));0))-ANZAHL2(T3:Y3)*65-ANZAHL2(T3:U3)*65}
Z4=SUMME((WENN(T4="A";0;WENN(T4="B";2;WENN(T4="C";4;WENN(T4="D";6;WENN(T4="E";8)))))) + (WENN(U4="A";0;WENN(U4="B";2;WENN(U4="C";4;WENN(U4="D";6;WENN(U4="E";8)))))) + (WENN(V4="A";0;WENN(V4="B";1;WENN(V4="C";2;WENN(V4="D";3;WENN(V4="E";4)))))) + (WENN(W4="A";0;WENN(W4="B";1;WENN(W4="C";2;WENN(W4="D";3;WENN(W4="E";4)))))) + (WENN(X4="A";0;WENN(X4="B";1;WENN(X4="C";2;WENN(X4="D";3;WENN(X4="E";4)))))) + (WENN(Y4="A";0;WENN(Y4="B";1;WENN(Y4="C";2;WENN(Y4="D";3;WENN(Y4="E";4)))))))
AA4=SUMME(CODE(T4&"A")-65;CODE(T4&"A")-65;CODE(U4&"A")-65;CODE(U4&"A")-65;CODE(V4&"A")-65;CODE(W4&"A")-65;CODE(X4&"A")-65;CODE(Y4&"A")-65)
AB4=SUMME(CODE(T4&"A")*2;CODE(U4&"A")*2;CODE(V4&"A");CODE(W4&"A");CODE(X4&"A");CODE(Y4&"A"))-520
AC4=SUMME(CODE(GROSS(T4&"A"))*2;CODE(GROSS(U4&"A"))*2;CODE(GROSS(V4&"A"));CODE(GROSS(W4&"A"));CODE(GROSS(X4&"A"));CODE(GROSS(Y4&"A")))-520
AD4{=SUMME(CODE(T4:Y4&"A");CODE(T4:U4&"A"))-520}
AE4{=SUMME(WENNFEHLER(CODE(GROSS(T4:Y4));0);WENNFEHLER(CODE(GROSS(T4:U4));0))-ANZAHL2(T4:Y4)*65-ANZAHL2(T4:U4)*65}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#17
@BoskoBiati,

vielen Dank dir, ich setze mich mal tiefer damit auseinander und würde bei Rückfragen mich nochmal melden. :)
Antworten Top
#18
Also die Lösung mit "Code" gefällt mir sehr gut.

Jetzt habe ich eine Frage bezüglich des Aufbaus. Ich habe eine Excel-Liste mit verschiedenen Spalten, wobei die Spalte P, sowie die Spalten T-Y manuell geändert werden können/sollen. Alle Daten werden anfangs aus zwei anderen Usprungsdateien gelesen. Durch das Verändern der Daten sollen Berechnungen angestoßen werden, wie beispielsweise die Spalte R bzw. LB %:


Code:
Sub LBProzentrechnen()
Dim Zeile As Integer

Zeile = 3

Set book = ActiveWorkbook

With book.Worksheets("Gehaltsdaten")

While (.Cells(Zeile, 1) <> "")

If (.Cells(Zeile, 25) <> "") Then
   .Cells(Zeile, 18).Value = Cells(Zeile, 19) * 0.9375
Else
   .Cells(Zeile, 18).Value = Cells(Zeile, 19) * 1.0714
End If

.Cells(Zeile, 18).NumberFormat = ("0.00")

Zeile = Zeile + 1

Wend

End With

End Sub

Ich habe es anfangs mit Workbook_Change und der Intersect-Methode versucht, jedoch kam es dabei durch die zunehmende Anzahl an Berechnungen (etwa 10) zu Konflikten, bzw. das Programm wurde nicht immer aufgerufen. Beispielsweise funktioniert bei einer Funktion Berechnung, sobald ich jedoch die 2. Funktion nach dem Prinzip einpflege, funktioniert die Berechnung nicht mehr. Nach dem Einpflegen zweier Funktionen sieht der Code folgendermaßen aus:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("T3:Z3000")) Is Nothing Then

   Target.Interior.ColorIndex = 6

End If

If Not Intersect(Target, Range("P3:P3000")) Is Nothing Then

   Target.Interior.ColorIndex = 6

End If

If Not Intersect(Target, Range("T3:Y50")) Is Nothing Then

Dim sourceline, destinationline As Integer
Dim Pfad As String
Dim Help1, Help2, Help3, Help4, Help5, Help6 As Integer
Dim Summe As Integer

destinationline = 3
sourceline = 3

While (Cells(destinationline, 1) <> "")

If Cells(sourceline, 20) = "" Then GoTo Sprung
If Cells(sourceline, 20) = "A" Then Help1 = 0
If Cells(sourceline, 20) = "B" Then Help1 = 2
If Cells(sourceline, 20) = "C" Then Help1 = 4
If Cells(sourceline, 20) = "D" Then Help1 = 6
If Cells(sourceline, 20) = "E" Then Help1 = 8
If Cells(sourceline, 21) = "A" Then Help2 = 0
If Cells(sourceline, 21) = "B" Then Help2 = 2
If Cells(sourceline, 21) = "C" Then Help2 = 4
If Cells(sourceline, 21) = "D" Then Help2 = 6
If Cells(sourceline, 21) = "E" Then Help2 = 8
If Cells(sourceline, 22) = "A" Then Help3 = 0
If Cells(sourceline, 22) = "B" Then Help3 = 1
If Cells(sourceline, 22) = "C" Then Help3 = 2
If Cells(sourceline, 22) = "D" Then Help3 = 3
If Cells(sourceline, 22) = "E" Then Help3 = 4
If Cells(sourceline, 23) = "A" Then Help4 = 0
If Cells(sourceline, 23) = "B" Then Help4 = 1
If Cells(sourceline, 23) = "C" Then Help4 = 2
If Cells(sourceline, 23) = "D" Then Help4 = 3
If Cells(sourceline, 23) = "E" Then Help4 = 4
If Cells(sourceline, 24) = "A" Then Help5 = 0
If Cells(sourceline, 24) = "B" Then Help5 = 1
If Cells(sourceline, 24) = "C" Then Help5 = 2
If Cells(sourceline, 24) = "D" Then Help5 = 3
If Cells(sourceline, 24) = "E" Then Help5 = 4
If Cells(sourceline, 25) = "A" Then Help6 = 0
If Cells(sourceline, 25) = "B" Then Help6 = 1
If Cells(sourceline, 25) = "C" Then Help6 = 2
If Cells(sourceline, 25) = "D" Then Help6 = 3
If Cells(sourceline, 25) = "E" Then Help6 = 4

Summe = Help1 + Help2 + Help3 + Help4 + Help5 + Help6

Cells(destinationline, 19) = Summe

Sprung:

destinationline = destinationline + 1

sourceline = sourceline + 1

Help1 = 0
Help2 = 0
Help3 = 0
Help4 = 0
Help5 = 0
Help6 = 0

Wend

End If


'LBProzent



If Not Intersect(Target, Range("S3:S50")) Is Nothing Then

Dim Zeile As Integer

Zeile = 3


While (Cells(Zeile, 1) <> "")

If (Cells(Zeile, 25) <> "") Then
   Cells(Zeile, 18).Value = Cells(Zeile, 19) * 0.9375
Else
   Cells(Zeile, 18).Value = Cells(Zeile, 19) * 1.0714
End If

   Cells(Zeile, 18).NumberFormat = ("0.00")

Zeile = Zeile + 1

Wend

End If

End Sub
 
Gibt es dabei eine generelle Empfehlung wie man allgemein Formeln einpflegt und dabei automatisch erkannt wird, wie viele Zellen gefüllt sind? Dabei muss es keine Lösung über VBA sein.

Bin über jeden Hilfe dankbar! 

Ich habe dem Ahnang eine TestDatei hinzugefügt.


Angehängte Dateien
.xlsm   Test_Datei.xlsm (Größe: 227,42 KB / Downloads: 3)
Antworten Top
#19
Hi,

weißt Du eigentlich, wie sehr es die Helfer ankotzt, wenn man sieht, dass nichts von dem umgesetzt wird, was man anbietet?
Ich hatte Dir hier: http://www.clever-excel-forum.de/Thread-...llenwerten schon den Code geändert, aber nichts davon hast Du bei Dir verwendet. Dann mach doch Deinen Sch... alleine! Angry Angry Angry
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#20
@BoskoBiati

Es tut mir leid, es bei mir untergegangen. Ich habe deine Codes nun eingepflegt, erhalte jedoch Fehlermeldungen. Ich werde am Mittwoch morgen (wenn ich das nächste mal auf der Arbeit bin), mir die Sachen wieder anschauen und genauere Auskunft geben.

Ich bin sehr dankbar über deine Hilfe und würde mich freuen, wenn du mir die Sache nicht zu übel nimmst und mir in Zukunft noch den ein oder anderen Tipp geben kannst/wirst. Ich bin leider noch ein Anfänger und verliere manchmal den Überblick.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste