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.

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
Antworten 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)
Antworten 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
Antworten Top
#4
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
Antworten Top
#5
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
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
Antworten Top
#6
Danke Euch. Funktioniert super.

Sorry für den Zirkelbezug.

War wirklich ein Schreibfehler von mir.

LG.

Peggy
Antworten Top


Gehe zu:


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