PDA

Vollständige Version anzeigen : Select-Case


luetko
25.09.2010, 16:40
Hallo zusammen,

bei der als Anhang beigefügten Excel Tabelle habe ich folgende Problem und benötige ein wenig VBA-Unterstützung.

In der Tabelle wird aufgrund einer "An- und Ab"- Zeit die verbrauchten Minuten errechnet. Bedingt durch die "Art" sind die verbrauchten Minuten verschieden berechnet.

Dies habe ich durch eine Select Case - Anweisung gelöst.

Mein Problem ist nun, dass ich per VBA die bislang auf eine Zelle beschränkte Berechnung auf alle anderen erweitern möchte - ganz gleich wie viele Zeilen die Tabelle hat.

Ich hoffe ich konnte mein Problem halbwegs verständlich rüberbringen und
danke schon für Eure Hilfe

Gruß
luetko

hary
25.09.2010, 16:59
Hallo Luetko
ich sehe in Deiner Tabelle nur Brutto/Soli usw,
falsche Mappe????
gruss hary

luetko
25.09.2010, 17:09
Hallo hary,

jeep, die falsche erwicht.

Jetzt aber die Richtige.

hary
25.09.2010, 17:27
Hallo
so?
Sub Test1()
Dim i As Long
With Worksheets("einsatzliste")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
Select Case Cells(i, 5).Value
Case Is = "E"
.Cells(i, 7).FormulaR1C1 = "=IF((RC[-1]>30),(RC[-1]-30)*0.2+12,12)"
Case Is = "T"
.Cells(i, 7).FormulaR1C1 = "=IF((RC[-1]>30),(RC[-1]-30)*0.2+8,8)"
Case Is = "TA"
.Cells(i, 7).FormulaR1C1 = "=IF((RC[-1]>30),(RC[-1]-30)*0.2+6,6)"
End Select
Next
End With
End Sub
gruss hary

luetko
25.09.2010, 19:40
Hallo hary,


Funktioniert perfekt !!!
vielen Dank für Deine Hilfe.

Gruß

luetko

BoskoBiati
26.09.2010, 07:20
Hallo,

bei Betrachtung der Tabelle sind mir mehrere Dinge aufgefallen:
1. es wird in F eine Formel eingesetzt und in G eine solche mit VBA erzeugt. Warum dieses? für G hätte man in gleicher Weise eine Formel einsetzen können.
2. die Zeit-Formel in F führt bei Zeiten über Mitternacht zu einem Fehler
3. die Formel in F hat zuviel Klammern.
Die Formel in G könnte man ohne Wenn formulieren:

<table border='1' cellspacing='0' cellpadding='2' valign='middle' colspan='8' style='font-family:Arial; color:#000000; background-color:#FFFFFF; font-size:10px; font-weight:normal; font-style:normal; '><colgroup><col width='28pt'><col width='31,5pt'><col width='60pt'><col width='30pt'><col width='37,5pt'><col width='27pt'><col width='29,25pt'><col width='60pt'></colgroup><tr style='background-color:#FAFAFA'><td align='middle' colspan='8'>Arbeitsblatt mit dem Namen 'einsatzliste'</td></tr><tr style='background-color:#cacaca'><td>*</td><td align='middle'>A</td><td align='middle'>B</td><td align='middle'>C</td><td align='middle'>D</td><td align='middle'>E</td><td align='middle'>F</td><td align='middle'>G</td></tr><tr><td style='background-color:#cacaca' align='middle'>49</td><td align='left' style='font-family:Calibri; font-size:11px; ' >Sa.</td><td align='left' style='font-family:Calibri; font-size:11px; ' >02.10.2010</td><td align='right' style='font-family:Calibri; font-size:11px; ' >11:40</td><td align='right' style='font-family:Calibri; font-size:11px; ' >12:51</td><td align='left' style='font-family:Calibri; font-size:11px; ' >TA</td><td align='right' style='font-family:Calibri; font-size:11px; ' >71</td><td align='right' style='font-family:Calibri; font-size:11px; ' >14,20 €</td></tr><tr><td style='background-color:#cacaca' align='middle'>50</td><td align='left' style='font-family:Calibri; font-size:11px; ' >So.</td><td align='left' style='font-family:Calibri; font-size:11px; ' >03.10.2010</td><td align='right' style='font-family:Calibri; font-size:11px; ' >09:17</td><td align='right' style='font-family:Calibri; font-size:11px; ' >10:24</td><td align='left' style='font-family:Calibri; font-size:11px; ' >E</td><td align='right' style='font-family:Calibri; font-size:11px; ' >67</td><td align='right' style='font-family:Calibri; font-size:11px; ' >19,40 €</td></tr><tr><td style='background-color:#cacaca' align='middle'>51</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td></tr><tr><td style='background-color:#cacaca' align='middle'>52</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td><td align='right' style='font-family:Calibri; font-size:11px; ' >*</td></tr></table><br><table border='3' cellspacing='0' cellpadding='2' valign='middle' colspan='3' style='color:#000000; background-color:#FFFFFF; font-family:Arial; font-size:10px;'><tr style='background-color:#aaeeaa'><td>Zelle</td><td>Format</td><td align='right'>Wert</td></tr><tr><td>F50</td><td>Standard;;</td><td align='right'>67</td></tr><tr><td>G50</td><td>_-* #.##0,00 €_-;;</td><td align='right'>19,4</td></tr><tr><td>F51</td><td>Standard;;</td><td align='right'>0</td></tr><tr><td>G51</td><td>_-* #.##0,00 €_-;;</td><td align='right'>0</td></tr></table><br><table border='3' cellspacing='0' cellpadding='2' valign='middle' colspan='2' style='table-layout:auto; color:#000000; background-color:#FFFFFF; font-family:Arial; font-size:10px;'><colgroup><col width='40pt'><col></colgroup><tr style='background-color:#eeaaaa'><td>Zelle</td><td>Formel</td></tr><tr><td>F50</td><td><Span style='color:#222222'>=WENN</Span><Span style='color:#0000DD'>(B50<Span style='color:#0000DD'><</Span>>"";REST</Span><Span style='color:#222222'>(D50-C50;1)</Span><Span style='color:#0000DD'>*1440;0)</Span><Span style='color:#222222'></Span></td></tr><tr><td>G50</td><td><Span style='color:#222222'>=MAX</Span><Span style='color:#0000DD'>(0;F50-30)</Span><Span style='color:#222222'>*0,2+</Span><Span style='color:#0000DD'>(</Span><Span style='color:#222222'>(E50="E")</Span><Span style='color:#0000DD'>*12+</Span><Span style='color:#222222'>(E50="T")</Span><Span style='color:#0000DD'>*8+</Span><Span style='color:#222222'>(E50="TA")</Span><Span style='color:#0000DD'>*6)</Span><Span style='color:#222222'></Span></td></tr><tr><td>F51</td><td><Span style='color:#222222'>=WENN</Span><Span style='color:#0000DD'>(B51<Span style='color:#0000DD'><</Span>>"";REST</Span><Span style='color:#222222'>(D51-C51;1)</Span><Span style='color:#0000DD'>*1440;0)</Span><Span style='color:#222222'></Span></td></tr><tr><td>G51</td><td><Span style='color:#222222'>=MAX</Span><Span style='color:#0000DD'>(0;F51-30)</Span><Span style='color:#222222'>*0,2+</Span><Span style='color:#0000DD'>(</Span><Span style='color:#222222'>(E51="E")</Span><Span style='color:#0000DD'>*12+</Span><Span style='color:#222222'>(E51="T")</Span><Span style='color:#0000DD'>*8+</Span><Span style='color:#222222'>(E51="TA")</Span><Span style='color:#0000DD'>*6)</Span><Span style='color:#222222'></Span></td></tr></table><table style='font-family:Arial; font-size:7pt'><tr><td style='color:#333333'>Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg</td></tr></table>

hier auch noch als Code:

Sub Test1()
Dim i As Long
With Worksheets("einsatzliste")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(i, 6).FormulaR1C1 = "=mod(rc[-2]-rc[-3],1)*1440"
.Cells(i, 7).FormulaR1C1 = "=MAX(0,RC[-1]-30)*0.2+((RC[-2]=""E"")*12+(RC[-2]=""T"")*8+(RC[-2]=""TA"")*6)"
Next
End With
End Sub