Clever-Excel-Forum

Normale Version: Zellbereich auswählen mit VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

möchte per VBA einen Zellbereich auswählen.

Anfangs Zelle B4 steht fest bis Zelle H... (Die Zeilennummer hierfür wird per Formel in der Zelle J1 ermittelt.)

Mein Code schaut bisher so aus:


Sub Formatierung()
'
' Formatierung Makro
'

'
   Dim strX As String
   strX = Range("j1").Value
   ActiveSheet.Range("B4:H" & strX).Select
   Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(6, 7), _
       Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub

Jedoch erscheint dann immer Laufzeitfehler 1004.

Wo liegt der Fehler?

LG.

Peggy
Hallöchen,

zuerst mal wäre gut, wenn Du auch schreibst, in welcher Zeile der Fehler auftritt.
Dann wäre noch von Vorteil, wenn Du mal den Inhalt Deiner Zelle J1 und der Variable strX prüfst
Letztendlich müsste da wohl nur eine Zahl drin stehen. Dim strX As String wäre demzufolge falsch. Oder willst Du bis in die Zelle HA4 oder weiter?
Guten Morgen,

der Fehler tritt in folgender Zeile auf:

ActiveSheet.Range("B4:H" & strX).Select

in meiner Zelle J1 steht die Formel =Max(J1:J1500).
Im aktuellen Fall ist das Ergebnis 6.

VBA soll dann demzufolge den Bereich B4 bis H6 markieren.

LG.

Peggy
Hallo Peggy,

(04.10.2018, 04:37)Peggymaus schrieb: [ -> ]in meiner Zelle J1 steht die Formel =Max(J1:J1500).
Im aktuellen Fall ist das Ergebnis 6.

VBA soll dann demzufolge den Bereich B4 bis H6 markieren.

das ist korrekt, unabhängig davon, ob die Variable als String oder Long deklariert wurde.
In meiner Testdatei funktioniert es. Zeige uns doch Deine Datei.

Gruß Uwe
Moin Peggy!
(04.10.2018, 04:37)Peggymaus schrieb: [ -> ]in meiner Zelle J1 steht die Formel =Max(J1:J1500)
Ergibt bei mir einen Zirkelbezug mit dem Ergebnis 0
(ist aber wahrscheinlich nur ein Schreibfehler von Dir)

Ich würde bei Variablen aber nicht die String-Variante Range("B4:H" & Variable) nehmen, sondern
Range(Cells(4, 2), Cells(Variable, 8))

Gruß Ralf
Danke Euch. Funktioniert super.

Sorry für den Zirkelbezug.

War wirklich ein Schreibfehler von mir.

LG.

Peggy