For intZ = 0 To intZ - 1 und intZ läuft hoch?
21.12.2005 05:46:12
Reinhard
bin sehr ratlos,
Sub tt()
For intZ = 0 To intZ - 1
MsgBox intZ
Next intZ
End Sub
Da passiert genau was ich glaubte zu wissen, nämlich nicht viel bis gar nichts.
Aber hier wird die intZ-Schleife mehrfach ausgeführt, also intZ läuft erst bis 13, dann bis ca. 7 usw. !?
With Sheets("Datenbank")
For Each rng In .Range(rngSuch.Address)
For intZ = 0 To intZ - 1
If rng = myarr(0, intZ) And rng.Offset(0, 1) = myarr(1, intZ) Then _
rng.Offset(0, 17) = rng.Offset(0, 17) - myarr(2, intZ)
Next
Next
End With
Codeteil gehört zum nachfolgenden Code, der in der noch offenen Frage: https://www.herber.de/forum/messages/710695.html in der hochgeladenen Datei: https://www.herber.de/bbs/user/29426.xls steht. Im Originalcode kommen Fehlermeldungen, die habe ich korrigiert im nachfolgendn Code.
Gruß
Reinhard
Public lngSchlussDatenbank As Long
Sub t()
Dim lzeileS As Variant, lZeileE As Variant
Dim rng As Range, ranrngSuch As Range, rngErg As Range
Dim myarr
Dim intZ As Integer
With Sheets("Datenbank")
'Suchbereich in Fixwerte umwandeln
lngSchlussDatenbank = Range("G65536").End(xlUp).Offset(0, 0).Row
Range("A3:A" & lngSchlussDatenbank).Copy
Range("A3:A" & lngSchlussDatenbank).PasteSpecial Paste:=xlValues
lzeileS = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rngSuch = Range("A3:A" & lzeileS)
End With
With Sheets("Abrechnung")
lZeileE = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rngErg = Range("A4:A" & lZeileE)
ReDim myarr(2, lZeileE)
For Each rng In .Range(rngErg.Address)
myarr(0, intZ) = rng
myarr(1, intZ) = rng.Offset(0, 1)
myarr(2, intZ) = rng.Offset(0, 3)
intZ = intZ + 1
Next
End With
With Sheets("Datenbank")
For Each rng In .Range(rngSuch.Address)
For intZ = 0 To intZ - 1
If rng = myarr(0, intZ) And rng.Offset(0, 1) = myarr(1, intZ) Then _
rng.Offset(0, 17) = rng.Offset(0, 17) - myarr(2, intZ)
'rng.Offset(0, 2) = myarr(2, intZ)
'Wenn du willst das die vorhandenen Werte addiert werden sollen, dann änder die obere 'Zeile in:
' rng.offset(0,2) = rng.offset(0,2) + myarr(2,intz)
Next
Next
End With
End Sub
Sub Umwandlung()
Windows("29426.xls").Activate
Sheets("Datenbank").Activate
lngSchlussDatenbank = Range("G65536").End(xlUp).Row
ActiveCell.FormulaLocal = "=(WENN($G3>0;WERT($G3&TEXT($H3;""000""));))"
Range("A3").AutoFill Destination:=Range("A3:A" & lngSchlussDatenbank), Type:=xlFillDefault
End Sub
Sub tt()
For intZ = 0 To intZ - 1
MsgBox intZ
Next intZ
End Sub