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.

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?
Antworten 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
Antworten Top
#3
Super, funzt - Danke Thumbsupsmileyanim
Antworten 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.
Antworten 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!
Antworten 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)
Antworten 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)
Antworten Top
#8
... es war tatsächlich der fehlende Punkt.

Danke!
Antworten Top


Gehe zu:


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