Registriert seit: 11.03.2015
Version(en): 2010
03.10.2018, 23:36
(Dieser Beitrag wurde zuletzt bearbeitet: 03.10.2018, 23:37 von Peggymaus.)
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 11.03.2015
Version(en): 2010
04.10.2018, 05:37
(Dieser Beitrag wurde zuletzt bearbeitet: 04.10.2018, 05:37 von Peggymaus.)
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Peggymaus
Registriert seit: 11.03.2015
Version(en): 2010
Danke Euch. Funktioniert super.
Sorry für den Zirkelbezug.
War wirklich ein Schreibfehler von mir.
LG.
Peggy