berechnung in letzer zeile mit vb

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: berechnung in letzer zeile mit vb
von: Daniele
Geschrieben am: 23.06.2002 - 16:57:43

hallo,
wie kann man mit vb eine Berechnung (Summe) in der letzten Zeile (spalte C) einer Tabelle durchführen?
Bedingungen:
Das Makro wird in einer UserForm ausgeführt und die Tabellenlänge variiert.

kann mir jemand helfen?

gruss daniele

nach oben   nach unten

Re: berechnung in letzer zeile mit vb
von: Hajo_Zi
Geschrieben am: 23.06.2002 - 17:00:47

Hallo Daniele

da Du mit Userform arbeitest denke ich mal Du kennst Dich mit VBA aus

109. Letzte Zeile der Spalte C (=3)
Zeile als Long Definieren
Cells(Rows.Count, 3).End(xlUp).Row
oder
[C65536].End(xlUp).Row verursacht aber fehler wenn 65536 nicht leer
Hinweis von ManuelaM
If [a65536] = "" Then
letzte = [a65536].End(xlUp).Row
Else
letzte = 65536
End If


Gruß Hajo


nach oben   nach unten

Re: berechnung in letzer zeile mit vb
von: Daniele
Geschrieben am: 23.06.2002 - 17:52:41

Hallo Hajo

Danke für die schnelle Antwort.
ein wenig kenne mich schon aus aber das Meiste entnehme ich von Beispielen.
das Problem ist folgendes. mit der UserForm möchte ich eine Tabelle auswerten. dabei werden mit dem Spezialfilter die gefilterten Daten in eine neue Tabelle kopiert. Gleichzeitig möchte ich die Summe unter der letzten Zeile anfügen.
Mit Deiner Anweisung krieg ich es nicht richtig hin.

hier der Code, vielleicht kannst du den mal durchschauen?

Private Sub btnOK_Click()
Dim RegDB As Object
Dim RepData As Object
Dim RepDB As Object
Dim RepCrit As Object
Dim letzte As Long

If Range("Rep_KV").Value = "" Then Range("Rep_KV").Value = Range("Rep_K").Value
If Range("Rep_KR").Value = "" Then Range("Rep_KR").Value = Range("Rep_K").Value
If Range("Rep_KM").Value = "" Then Range("Rep_KM").Value = Range("Rep_K").Value
If Range("Rep_KG").Value = "" Then Range("Rep_KG").Value = Range("Rep_K").Value
Set RegDB = Range("Reg_Home").CurrentRegion
Worksheets("Report").Activate
Range("Rep_Home").Offset(1, 0).Clear
RegDB.AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("Criteria"), CopyToRange _
:=Range("A3:M3"), Unique:=False
Set RepDB = Range("Rep_Home").CurrentRegion
If RepDB.Rows.Count = 1 Then _
Set RepData = RepDB.Offset(1, 0) _
Else Set RepData = RepDB.Offset(1, 0).Resize(RepDB.Rows.Count - 1)
ActiveWorkbook.Names.Add Name:="Rep_Home", RefersTo:="=" & RepDB.Address
Range("Rep_Style").Copy
RepData.PasteSpecial xlFormats
Application.ScreenUpdating = True

HIER DIE SUMME (Alles andere klappt richtig):

letzte = Sheets("Report").Cells(Rows.Count, 3).End(xlUp).Row + 1
letzte.Offset(0, 3).FormulaR1C1Local = "=summe(Z(-1)S:Z4S3)"

ViewReport
Range("RepCritArea").ClearContents
Range("Rep_K").ClearContents
Unload Me
End Sub

nach oben   nach unten

Re: berechnung in letzer zeile mit vb
von: Hajo_Zi
Geschrieben am: 23.06.2002 - 18:00:18

Hallo Daniele

ich ahbe mir nun nicht den gesamten Code angesehen, versuche es so


    letzte = Sheets("Report").Cells(Rows.Count, 3).End(xlUp).Row + 1
    Cells(letzte, 3).FormulaLocal = "=summe(C1:C" & letzte - 1 & ")"

Gruß Hajo

nach oben   nach unten

Re: berechnung in letzer zeile mit vb
von: Daniele
Geschrieben am: 23.06.2002 - 18:07:30

Hallo Hajo

Klappt wunderbar. besten Dank und schönen Abend

Gruss, daniele


nach oben   nach unten

Re: berechnung in letzer zeile mit vb
von: Martin
Geschrieben am: 23.06.2002 - 18:07:55

Hallo Hajo,
ersetze diese Zeile
letzte.Offset(0, 3).FormulaR1C1Local = "=summe(Z(-1)S:Z4S3)"
mit
Sheets("Report").Cells(letzte, 3).FormulaR1C1Local = "=summe(Z(-1)S:Z4S3)"

dann müsste es gehen.

Grüße
Martin

nach oben   nach unten

Re: berechnung in letzer zeile mit vb
von: Daniele
Geschrieben am: 23.06.2002 - 18:32:00

Hallo Martin

genau so geht es

gruss aus der sonnigen schweiz
daniele


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "berechnung in letzer zeile mit vb"