Zellbereich auswählen mit VBA
#1
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
Top
#2
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?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
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
Top
#4
Hallo Peggy,

(04.10.2018, 05: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
Top
#5
Moin Peggy!
(04.10.2018, 05: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
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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Peggymaus
Top
#6
Danke Euch. Funktioniert super.

Sorry für den Zirkelbezug.

War wirklich ein Schreibfehler von mir.

LG.

Peggy
Top


Gehe zu:


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