Rechenoperationen in anderem WS ausführen
#1
Hallo,

ich habe gerade ein grundliegendes Problem.

also ich habe in meiner Mappe ein WS "Data" und ein WS "Chart". Jetzt soll mit den Daten aus "Data" eine Rechenoperation ausgeführt werden.
Schaltfläche dafür ist auf dem WS "Chart".

Mein Code dafür lautet:
Code:
Sub SMA60T()

Sheets("Data").Activate
Range("C2") = Application.Sum(Sheets("Data").Range(Cells(2, 2), Cells(46, 2)))

End Sub


Meine Frage: Kann man die Operation auch ausführen, ohne daß das WS "Data" angezeigt wird, quasi im Hintergrund?
Top
#2
Hallo

ungetestet


Code:
Sub SMA60T()
   With Sheets("Data")
       .Range("C2") = Application.Sum(.Range(.Cells(2, 2), .Cells(46, 2)))
   End With
End Sub

beachte die Punkte vor Range und Cells

MfG Tom
Top
#3
Super, funzt - Danke Thumbsupsmileyanim
Top
#4
... manchmal kann VBA einen ganz schön nerven.

gestern habe ich den Tipp von CrazyTom auf meinen Code angewendet - hat auch prächtig funktioniert. Heute Morgen wollte ich die gleiche Methode auf eine anderes Problem anwenden - und es funktioniert nicht Huh .


Zitat:Sub DATASweep2()
Dim reihe As Long
   
With Sheets("CSV Transfer")
     .Cells(3, 11) = Cells(Rows.Count, 1).End(xlUp).Row
End With

End Sub

Hierbei soll einfach die Anzahl der beschriebenen Reihen ermittelt werden. Mit der activate-Methode gibts die richtge Anzahl, aber mit with
gibt er mir 1 aus.
Top
#5
Moin,
nimm es sportlich  Blush , den wenn di nicht genügend Punkte hast, bist du nicht der Gewinner :05:
Zitat:With Sheets("CSV Transfer")
     .Cells(3, 11) = .Cells(Rows.Count, 1).End(xlUp).Row
End With

Zumindest glaube ich, dass dort der Hase im Pfeffer liegt. Der Punkt sorgt dafür, dass sich die folgenden Cells-Anweisung auf den mit With deklarierten Bereich bezieht und nicht auf das aktuelle Blatt.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#6
Moin!
Crazy Tom schrieb:beachte die Punkte vor Range und Cells
Dann lies Dir mal folgendes aufmerksam durch:
https://msdn.microsoft.com/de-de/library...aspx?f=255&MSPPError=-2147217396
(ist zwar VB, ist hier aber unerheblich)

Als Tipp:
Dein Code ermittelt die letzte beschriebene Zelle in Spalte A des aktiven Tabellenblatts.

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)
Top
#7
Beim nochmaligem Lesen fiel mir auf, dass man mich missverstehen könnte.
Mein Hinweis war natürlich an lapunta und nicht an Crazy Tom gerichtet.

(deutsche Sprache, schwere Sprache)
Blush

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)
Top
#8
... es war tatsächlich der fehlende Punkt.

Danke!
Top


Gehe zu:


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