Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
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

Wieder SelectedSheets

Wieder SelectedSheets
04.04.2019 13:30:11
lanala
Hallo,
ich bins nochmal. Leider krieg ich das mit dem ActiveSheets nicht so hin wie ich gern hätte:

Sub Runden()
Dim Zelle As Object
Dim ws As Worksheet
Dim nZeile As Integer
Dim vSpalte As Integer
Dim vZeile As Integer
Dim nSpalte As Integer
For Each ws In ActiveWindow.SelectedSheets
nZeile = 1
nSpalte = 33
vSpalte = 32
'max. m/z kopieren 33
For vZeile = 1 To ws.Cells(65536, vSpalte).End(xlUp).Row
ws.Cells(nZeile, nSpalte) = ws.Cells(vZeile, vSpalte)
ws.Cells(nZeile, nSpalte + 1) = ws.Cells(vZeile, vSpalte)
nZeile = nZeile + 1
Next
'Aufrunden AG
For Each Zelle In Range("AG:AG")
If IsNumeric(Zelle) And Zelle  "" Then Zelle = WorksheetFunction.RoundUp(Zelle, 0)
Next
'Abrunden AH
For Each Zelle In Range("AH:AH")
If IsNumeric(Zelle) And Zelle  "" Then Zelle = WorksheetFunction.RoundDown(Zelle, 0)
Next Zelle
Next ws
End Sub

Also an sich funktioniert es bisher so wie ich es brauche. Allerdings funktioniert der Rundungsteil nur im der Zeit aktiven Fenster. Wahrscheinlich weil ich nach der Zeile For Each ws In ActiveWindow.SelectedSheets noch mal For Each Zelle In Range("AH:AH") stehen habe? Ich habe schon verschiedenes versucht um es umzustellen aber durch meine mangelnden Kenntnisse ist mir dies leider nicht gelungen.
Dachte dass dadurch dass das Next ws ganz unten steht es automatisch für alles gilt was dazwischen liegt. Aber wie gesagt ich habe nicht wirklich einen Plan und es war rein aus dem Bauchgefühl heraus. Freue mich aber über Erläuterungen.
Hat jemand eventuell noch einen Tipp?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wieder SelectedSheets
04.04.2019 13:41:51
Daniel
Hallo lanala,
du musst auch in den anderen For Schleifen einen kompletten Zellbezug, inklusive Worksheet, herstellen. Ansonsten bezieht er die Range auf das aktuell ausgewählte Arbeitsblatt, was hier immer noch dasjenige ist, aus dem du den Code startest.
Das heißt, vor die Ranges muss jeweils noch ein ws.
Oder du packst das ganze in With ws ... End With. Dann kannst du alle Zellbezüge nur mit .Cells bzw .Range herstellen.
Ich hoffe, das ist verständlich?
Gruß
Daniel
AW: Wieder SelectedSheets
04.04.2019 13:49:33
lanala
leider liest sich dein Beitrag für mich wie eine Fremdsprache ^^. Also ich verstehe schon das ich in die For Schleife noch einen Worksheet Bezug machen muss, dies war ja auch meine Vermutung. Wie genau der aber aussieht weiss ich leider nicht. Vor die Ranges ein ws schreiben so wie du es geschrieben hast funktioniert leider nicht aber du hast es wahrscheinlich auch nicht so gemeint ^^. Leider weiss ich deine Tipps nicht umzusetzen :S.
        'Aufrunden AG
For Each Zelle In ws Range("AG:AG")
If IsNumeric(Zelle) And Zelle  "" Then Zelle = WorksheetFunction.RoundUp(Zelle, 0)
Next

Anzeige
AW: Wieder SelectedSheets
04.04.2019 13:51:41
Daniel
Fast richtig, da fehlt jetzt nur noch der Punkt!
also ws.Range("AG:AG") etc.
AW: Wieder SelectedSheets
04.04.2019 13:54:58
lanala
ooo ^^ das hätte mir auch noch selbst einfallen können :D jetzt funktioniert es! Vielen vielen Dank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige