Herbers Excel-Forum - das Archiv

An IngoG!! und alle anderen!!

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: An IngoG!! und alle anderen!!
von: ralle

Geschrieben am: 03.03.2005 14:08:11
Hallo Ingo (oder alle anderen)
Hatte Dir vorhin mein Problem geschilder und Du hast mir auch eine Lösung gegeben.
Dachte es funktioniert jetzt, musste doch leider feststellen, dass das Makro nicht immer richtig summiert. Habe Dir mal nachfolgende Exceltabelle hochgeladen mit dem entsprechenden Makro. Wenn ich dies nun ausführe und die Nummer 10000 eingeben sollte als Summe 15.568,57 herauskommen. Das Makro gibt mir jedoch als ergebnis 24.014,8.
Nach meiner Meinung wird die Summe im sheet 4010 (8.445,73) nicht berücksichtigt.
Woran kann das liegen??
Gruß
ralle
https://www.herber.de/bbs/user/19159.xls
Bild

Betrifft: AW: An IngoG!! und alle anderen!!
von: UweD

Geschrieben am: 03.03.2005 14:32:59
Hallo
auf Blatt 4010
findet das Makro den Wert 10000 bereits in Zelle E12
mit dem Offset ergibt das dann Rückgabewert 0..
Durch Änderung des Suchranges nur auf Spalte A gehts
Sub test()
Dim sh As Worksheet
Dim rngFind As Range
Dim strSuchen As String
Dim sngSum As Single
strSuchen = InputBox("Nummer?")
If strSuchen = "" Then Exit Sub
For Each sh In Worksheets
Set rngFind = sh.Columns(1).Find(strSuchen, Cells(1, 1), lookat:=xlWhole)
If Not rngFind Is Nothing Then
If IsNumeric(rngFind.Offset(0, 4).Value) Then
sngSum = sngSum + rngFind.Offset(0, 4).Value
End If
Set rngFind = Nothing
End If
Next sh
MsgBox sngSum
End Sub


Gruß UweD
Bild

Betrifft: AW: An IngoG!! und alle anderen!!
von: Holger Levetzow

Geschrieben am: 03.03.2005 14:33:48
Hallo Ralle,
der "Fehler" liegt in der Find-Methode. In dem Blatt 4010 ist in Zelle E12 auch eine 10.000. Die findet Excel zuerst. 4 Zellen rechts daneben ist nichts, also rechnet Excel richtig.
ein Ausweg: ändere die Anweisung wie folgt:
Set rngFind = sh.Cells.Find(strSuchen, Cells(1, 1), LookAt:=xlWhole, searchorder:=xlByColumns)
Die Frage bleibt. Was geschieht, wenn in Spalte A keine 10.000 steht, aber in Spalte E eine (ist die Zelle 4 rechts neben E immer frei?!)?
Holger
Bild

Betrifft: 10000 kommt nochmal vor!!!
von: ingoG

Geschrieben am: 03.03.2005 14:35:10
Hallo nochmal,
das prob ist, dass in dem Sheet nochmal die 10000 vorkommt... als betrag.
also wenn Du
Set rngFind = sh.Range(A:A").Find(strSuchen, Cells(1, 1), lookat:=xlWhole)
benutzt sucht er nur in spalte a und es sollte wieder funzen.
Gruß Ingo
Bild

Betrifft: Danke an alle!!! :-))
von: ralle

Geschrieben am: 03.03.2005 14:42:58
Hallo alle zusammen!!
Habt alle recht vielen Dank. Ihr habt mir wirklich weitergeholfen. Auf soetwas wäre ich nun wirklich nicht gekommen. Ihr seid echt super und wirklich schnell.
Wünsche allen noch einen schönen Tag!
Gruß
ralle
 Bild