VBA Befehl mit Variable

Hallo zusammen,
ich versuche einen VBA Befehl mit einer Variablen auszustatten, es gelingt mir aber bisher nicht.
Der Befehl soll so oder so ähnlich aussehen.
Die Variable wurde bereits in einer Funktion deklariert und bestimmt.
Nun soll der Wert dort eingesetzt werden.

Sheets(1).Range(„Q2:LetzteZeile“).Select

Hat jemand eine Idee?

ich versuche einen VBA Befehl mit einer Variablen
auszustatten, es gelingt mir aber bisher nicht.
Der Befehl soll so oder so ähnlich aussehen.
Die Variable wurde bereits in einer Funktion deklariert und
bestimmt.
Nun soll der Wert dort eingesetzt werden.
Sheets(1).Range(„Q2:LetzteZeile“).Select

Hi Kristin,

meinst du so:

Sheets(1).Range(„Q2:Q“ & LetzteZeile).Select

Muß das Select sein bzw. was geschieht weiter mit der Selection?

Gruß
Reinhard

Hat jemand eine Idee?

Suuuuper! Das hat funktioniert!
Ich möchte damit alle nach dem Filter noch sichtbare Zellen bis zu der letzten (die über eine Textbox angegeben wird) summieren.
Dies erweist sich jedoch als ziemlich schwierig.

Deine Antwort hat mir aber schon weiter geholfen.
Kannst du noch mehr Support geben?!

Liebe Grüße!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich möchte damit alle nach dem Filter noch sichtbare Zellen
bis zu der letzten (die über eine Textbox angegeben wird)
summieren.

Hi Kristin,

geht es nicht so:

cells(letztezeile+1,17).formulalocal="=summe(Q2:Q" & letztezeile & „)“

Okay, 17 war jetzt geschätzt :frowning:, schau halt mal was Q hat.

Wenn nicht, dann so eventuell:

Summe = 0
For Each Zelle In Sheets(1).Range("Q2:Q" & LetzteZeile)
 If Zelle.Hidden = False Then Summe = Summe + Zelle.Value
Next Zelle

Gruß
Reinhard

Ich möchte damit alle nach dem Filter noch sichtbare Zellen
bis zu der letzten (die über eine Textbox angegeben wird)
summieren.

Hi Kristin,

geht es nicht so:

Das hier hat super funktioniert! Jedoch nicht wenn ich meine Spalte Q dann filter - er summiert weiterhin alle Daten.

cells(letztezeile+1,17).formulalocal="=summe(Q2:Q" &
letztezeile & „)“

Okay, 17 war jetzt geschätzt :frowning:, schau halt mal was Q hat.

Das hört sich sehr gut an, ich kriege es aber gerade nicht übersetzt, da stimmt irgendwas nicht, bei mir steht jetzt:
Dim Sum As Integer
Sum = 0
For Each Cell In Sheets(1).Range(„Q2:Q“ & LetzteZeile)
If Cell.Hidden = False Then Sum = Sum + Cell.Value
Next Cell

Wenn nicht, dann so eventuell:

Summe = 0
For Each Zelle In Sheets(1).Range(„Q2:Q“ & LetzteZeile)
If Zelle.Hidden = False Then Summe = Summe + Zelle.Value
Next Zelle

Gruß
Reinhard

Hi Kristin,

Das hier hat super funktioniert! Jedoch nicht wenn ich meine
Spalte Q dann filter - er summiert weiterhin alle Daten.

cells(letztezeile+1,17).formulalocal="=summe(Q2:Q" &
letztezeile & „)“

ja, es ging ja erstma um die Syntax von Cells.

Das hört sich sehr gut an, ich kriege es aber gerade nicht
übersetzt, da stimmt irgendwas nicht, bei mir steht jetzt:
Dim Sum As Integer
Sum = 0
For Each Cell In Sheets(1).Range(„Q2:Q“ & LetzteZeile)
If Cell.Hidden = False Then Sum = Sum + Cell.Value
Next Cell

War mein Fehler,
so klappt es:

Option Explicit
'
Sub tt()
Dim Sum As Integer, Cell As Range, LetzteZeile As Long
LetzteZeile = 30
Sum = 0
For Each Cell In Sheets(1).Range("Q2:Q" & LetzteZeile)
 If Cell.EntireRow.Hidden = False Then Sum = Sum + Cell.Value
Next Cell
Range("Q" & LetzteZeile + 1) = Sum
End Sub

Gruß
Reinhard

Tut mir echt Leid, aber ich habe so meine Probleme damit…
Kenne dieses Option Explicit nicht und habe das nun folgendermaßen angepasst und geschrieben:

Sub tt()
Dim Sum As Integer, Cell As Range, LetzteZeile As Long
LetzteZeile = 49
Sum = 0
For Each Cell In Sheets(1).Range(„Q31:Q“ & LetzteZeile)
If Cell.EntireRow.Hidden = False Then Sum = Sum + Cell.Value
Next Cell
Range(„Q“ & LetzteZeile + 1) = Sum
End Sub

Private Sub CommandButton2_Click()
Dim LetzteZeile As Integer
LetzteZeile = TextBox1.Text

[B6] = [tt(Q:Q)]

Kennst du mir bitte noch ein letztes Mal helfen? Ich stehe gerade irgendwie auf dem Schlauch…
In meiner Zelle B6 steht bei dem o.g. Quelltext immer #Name?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Kristin,

Tut mir echt Leid, aber ich habe so meine Probleme damit…
Kenne dieses Option Explicit nicht und habe das nun
folgendermaßen angepasst und geschrieben:

Option Explicit hat nix mit deinem Problem zu tun, kannst es kurzfristig gedacht auch weglassen.
Langfristig gedacht ist es sehr hilfreich, denn es zwingt dich dazu alle Variablen mit Dim o.ä. zu deklarieren.
Einstellen kannst du das im Editor unter Extras–Optionen–Variblendeklaration erforderlich.
Dann erscheint es automatisch in jedem neuen Modul.

Wenn du mal stundelang im längeren Code nach einem Fehler gesucht hast, der darauf beruht daß du wahlweise LezteZeile und LetzteZeile als variablennamen benutzt hast obwohl du die gleiche meintest, dann wirste verstehen wie hilfreich Option Explicit ist…

Zum Problem, probiers mal so:

Option Explicit
'
Private Sub CommandButton2\_Click()
Dim Sum As Integer, Cell As Range, LetzteZeile As Long
LetzteZeile = TextBox1.Text
For Each Cell In Sheets(1).Range("Q31:Q" & LetzteZeile)
 If Cell.EntireRow.Hidden = False Then Sum = Sum + Cell.Value
Next Cell
Range("B6") = Sum
End Sub

Gruß
Reinhard

*Juhu, juhu, juhu*
*In die Luft spring, Salto mach und wieder sicher auf dem Boden landet*

DANKE Reinhard!

Das funktioniert! Du weißt gar nicht wie dankbar ich dir bin.
Hmm dabei war das im letzten Schritt jetzt nur noch eine Kleinigkeit.
Puhhhh, ein gutes Ende nach einer langen Operation! :o)
1000 Dank an dich!

Kristin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wenn man dann noch daran denkt die Summe immer wieder auf 0 zu setzen läuft es einwandfrei! Danke! :smile:

*Juhu, juhu, juhu*
*In die Luft spring, Salto mach und wieder sicher auf dem
Boden landet*

DANKE Reinhard!

Das funktioniert! Du weißt gar nicht wie dankbar ich dir bin.
Hmm dabei war das im letzten Schritt jetzt nur noch eine
Kleinigkeit.
Puhhhh, ein gutes Ende nach einer langen Operation! :o)
1000 Dank an dich!

Kristin

Zum Problem, probiers mal so:

Option Explicit

Private Sub CommandButton2_Click()
Dim Sum As Integer, Cell As Range, LetzteZeile As Long
LetzteZeile = TextBox1.Text
For Each Cell In Sheets(1).Range(„Q31:Q“ & LetzteZeile)
If Cell.EntireRow.Hidden = False Then Sum = Sum +
Cell.Value
Next Cell
Range(„B6“) = Sum
End Sub

Gruß
Reinhard