Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1580to1584
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Excel Subtraktion in Schleife

VBA Excel Subtraktion in Schleife
18.09.2017 15:24:01
Jan
Liebes Forum,
ich arbeite an einer Prozessautomatisierung mit Hilfe von VBA.
Hierfür habe ich den beigefügten Quelltext entwickelt:

Sub test()
Dim Tab1 As Excel.Worksheet, Tab2 As Excel.Worksheet
Dim RngU As Range, rngRow As Range
Dim Wert As String
Dim Zahl As Variant
Dim Name As Variant
Dim FiltIt As Variant
Set Tab1 = Sheets("Tabelle1")
Set Tab2 = Sheets("Tabelle 2")
Dim lang As Integer
Dim groesse As Integer
Dim rng As Range
Dim rngNEW As Range
Sheets("Tabelle2").Activate
Range("B:Q").Activate
lang = Range("Q655352").End(xlUp).Row
Set RngU = Range("B2:Q" & lang)
For Each rngRow In RngU.Rows
Name = rngRow.Cells(1).Value
Wert = ">" & rngRow.Cells(rngRow.Cells.Count).Value
Zahl = rngRow.Cells(rngRow.Cells.Count).Value
Sheets("Tabelle1").Activate
If Tab2.AutoFilterMode Then Tab2.AutoFilterMode = False
groesse = Range("Q655352").End(xlUp).Row
Set rng = Range("C1:Q" & groesse)
On Error Resume Next
rng.AutoFilter Field:=1, Criteria1:=Name
rng.AutoFilter Field:=12, Criteria1:=Wert, Operator:=xlAnd
Set rngNEW = rng.Offset(1).Resize(rng.Rows.Count - 1).SpecialCells(  _
_
_
xlCellTypeVisible)
FiltIt = rngNEW.Columns(12).Cells(1).Value
FiltIt = FiltIt.Value - Zahl.Value
On Error GoTo 0
Tab1.Select
Next rngRow
End Sub

Kurz zum Ablauf des Programmteils:
1. Gehe in Tabelle 2 und nehme Wert und Namen
2. Gehe in Tabelle 1
3. Filter nach Namen aus Tabelle 2
4. Nehme Wert aus Tabelle 2 und ziehe ihn von Wert aus Tabelle 1 ab (Überschreibe den alten Wert in Tabelle 1 mit dem Ergebnis
5. Gehe wieder in Tabelle 2 und nehme den nächsten Wert und den nächsten Namen (siehe Schleife)
Ich hoffe, dass mein Quelltext den Großteil der Schritte beherrscht. Ich habe nur Probleme mit der Subtraktion:
Set rngNEW = rng.Offset(1).Resize(rng.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
FiltIt = rngNEW.Columns(12).Cells(1).Value
FiltIt = FiltIt.Value - Zahl.Value
On Error GoTo 0
Tab1.Select
Next rngRow
Das Programm erkennt die Variable Zahl, trotzdem findet die Subtraktion nicht statt.
Hat jemand eine Idee, wie die Subtraktion funktionieren kann?
Über Tipps freue ich mich! Vielen Dank und viele Grüße,Jan

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Excel Subtraktion in Schleife
18.09.2017 17:19:18
mmat
Hallo,
das hat doch schon sehr viel Schönes. Und natürlich wird auch abgezogen. Was fehlt ist ein Befehl, der das Ergebnis in die Zelle zurückzuschreibt. Irgendwie sowas:
rngNEW.Columns(12).Cells(1)=FiltIt
Dann funktioniert das vielleicht sogar (wenn das Filtern nach Name zu einem eindeutigen Ergebnis führt ...)
vg, MM
AW: VBA Excel Subtraktion in Schleife
18.09.2017 19:10:08
Jan
Vielen Dank für deine schnelle Rückmeldung!
Ich habe nun Ergänzungen vorgenommen und es funktioniert schon besser, der alte Wert wird ersetzt. Nur leider ist das Ergebnis noch nicht richtig.
If Tab2.AutoFilterMode Then Tab2.AutoFilterMode = False
groesse = Range("Q655352").End(xlUp).Row
Set rng = Range("C1:Q" & groesse)
On Error Resume Next
rng.AutoFilter Field:=1, Criteria1:=Name
rng.AutoFilter Field:=12, Criteria1:=Wert, Operator:=xlAnd
Set rngNEW = rng.Offset(1).Resize(rng.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
FiltIt = rngNEW.Areas(1).Cells(1, 12)
Ergebnis = FiltIt.Value - Zahl.Value
'Range(rngNEW.Columns(12).Cells(1).Value) = Ergebnis
rngNEW.Areas(1).Cells(1, 12).Value = Ergebnis
On Error GoTo 0
Tab1.Select
Next rngRow
Es geht nun denke ich um die Zeile: Ergebnis = FiltIt.Value - Zahl.Value
FiltIt und Zahl entsprichen den richtigen Werten. Nur Ergebnis ist immer 0.
Habr Ihr eine Lösung hierfür?
Anzeige
AW: VBA Excel Subtraktion in Schleife
20.09.2017 11:36:53
mmat
Bist du das mal im Einzelschrittmodus Durchgegangen? Was steht in "Ergebnis"?
Wie ist "Ergebnis" deklariert ?
Sorry, da fällt mir nix ausser allgemeinen Hinweisen ein ...

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige