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
, 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
, 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! 
*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