Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1140to1144
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

Wert in Summenfunktion einbinden /Object/Variable

Wert in Summenfunktion einbinden /Object/Variable
MarkusB.
Hallo an alle!
Ich habe folgendes Problem... also ich möchte, dass ein gefundener Wert (rng.Value)
kopiert wird (copy.rng) ... so eigentlich ganz einfach... aber jetzt soll der kopierte Wert so in ein Zelle eingefügt werden, dass dieser in der Zelle als =summe(rng.Value) erscheint... also in die Summenfunktion eingebunden werden. Das kriege ich nicht hin. Hier mein Code:
Sub teste()
Dim n As Integer, i As Integer, test, wks As Worksheet
Dim z As Object
Dim x As Object
Dim rng As Object
Application.ScreenUpdating = False
With Sheets(1)
For i = 12 To .Cells(Rows.Count, 3).End(xlUp).Row
For n = 2 To Worksheets.Count
Set wks = Worksheets(n)
test = Application.Match(.Cells(i, 3), wks.Columns(3), 0)
If Not IsError(test) Then
Select Case n
Case Is = 3
'Set wks = Worksheets(n)
For Each rng In wks.Range(wks.Cells(test, 5), wks.Cells(test, 19))
If Len(rng.Value)  0 Then
                rng = FormulaR1C1 = "=SUM(rng.value)"  '--- >  Problem es wird immer FALSCH  _
in die Zelle geschrieben

rng.Copy
Sheets(1).Range("M" & i).Activate
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone,  _
SkipBlanks:=False, Transpose:=False
End If
Next
Case Is = 4
For Each rng In _
Worksheets(n).Range(Worksheets(n).Cells(test, 5), _
Worksheets(n).Cells(test, 13))
If Len(rng.Value)  0 Then
                rng = FormulaR1C1 = "=SUM(rng.value)"  '--- >  Problem es wird immer FALSCH  _
in die Zelle geschrieben
rng.Copy
Sheets(1).Activate
Range("N" & i).Activate
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone,  _
SkipBlanks:=False, Transpose:=False
End If
Next
End Select
End If
Next n
Next i
End With
Application.ScreenUpdating = True
End Sub

Könnte mir einer weiterhelfen? Muss ich noch ein anderes Object oder so anlegen oder die Formelgeschichte in eine zusätzliche Variable einbauen?
Hoffe es hat jemand eine Idee!
Vielen Dank und schönen Abend1
MarkusB.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wert in Summenfunktion einbinden /Object/Variable
24.02.2010 22:31:53
Ramses
Hallo
"...dass dieser in der Zelle als =summe(rng.Value) erscheint..."
Sei mir nicht böse,... aber das ist doch Unsinn.
Was soll der Effekt sein, wenn in der Zelle =SUMME(25) steht ?
Der Sinn des Codes ist auch nicht so ganz nachvollziehbar weil das Makro schon gar nicht startet wegen Syntaxfehlern.
Das "rng = FormulaR1C1 = ..." muss zumindest "rng.FormulaR1C1.." heissen.
Bei VBA-Gut sollten soche "Leichtsinnfehler" :-) eigentlich nicht passieren
rng.FormulaR1C1 = "=SUM(" & rng.value & ")"
... und schon sollte es funktionieren :-)
Habe deinen Code mal so umgebaut, dass beim Debuggen wenigstens keine Fehler mehr auftreten,... testen musst du selbst
Sub teste()
    Dim n As Integer, i As Integer, test As Variant, wks As Worksheet
    Dim z As Object
    Dim x As Object
    Dim rng As Object
    Application.ScreenUpdating = False
    With Sheets(1)
        For i = 12 To .Cells(Rows.Count, 3).End(xlUp).Row
            For n = 2 To Worksheets.Count
                Set wks = Worksheets(n)
                test = Application.Match(.Cells(i, 3), wks.Columns(3), 0)
                If Not IsError(test) Then
                    Select Case n
                        Case 3
                            For Each rng In wks.Range(wks.Cells(test, 5), wks.Cells(test, 19))
                                If Len(rng.Value) <> 0 Then
                                    rng.FormulaR1C1 = "=SUM(" & rng.Value & ")"
                                    rng.Copy
                                    Sheets(1).Range("M" & i).Activate
                                    Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                                End If
                            Next
                        Case 4
                            For Each rng In Worksheets(n).Range(Worksheets(n).Cells(test, 5), Worksheets(n).Cells(test, 13))
                                If Len(rng.Value) <> 0 Then
                                    rng.FormulaR1C1 = "=SUM(" & rng.Value & ")"
                                    rng.Copy
                                    Sheets(1).Activate
                                    Range("N" & i).Activate
                                    Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                                End If
                            Next
                    End Select
                End If
            Next n
        Next i
    End With
    Application.ScreenUpdating = True
End Sub

Gruss Rainer
Anzeige
AW: Wert in Summenfunktion einbinden /Object/Variable
25.02.2010 09:31:13
MarkusB.
Hallo Rainer!
Vielen Dank für den Hinweis und deine Mühe!
Du hast recht, es ist eigentlich sinnlos! Ich arbeite im Bereich Finanzen und da muss leider jede Zahl in der Summenfunktion stehen, das verstehe wer wolle! ;-) Es wäre sinnvoll, wenn mehrere Zellen in einer Summe zusammen kummuliert werden müssten.... aber naja, es wird halt so gewünscht....
Werde ab heute meine VBA-Kenntnisse auf "bescheiden" setzen ;-)
Teste nachher deinen Code!
Das Makro geht über mehere Tabellenblätter und gleicht jeweils in Spalte C die Werte vom ersten Tabellenblatt in Spalte C ab... u.s.w.
Viele Grüße und nochmals ein großes DANKE!!!
MarkusB.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige