An IngoG!! und alle anderen!!

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
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

Beiträge aus den Excel-Beispielen zum Thema "Tabelle narrensicher machen"