online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon rapperzahn vom 26.10.2020, 19:20 Options

| Makro: Ergebnis einer Rechnung PLUS Formel in Zelle ausgeben |

Moin Moin,

ich muss euch leider wieder belästigen: Ich schreibe wieder an einem Makro und zwar nimmt es intern eine Rechnung vor, das Ergebnis wird jetzt aber nicht einfach in einer Zelle ausgegeben, sondern nochmals mit einer Formel verknüpft.
Bsp:
interne Rechnung 2+2+2+2=8

dann soll in die Zelle nicht das Ergebnis (8) sondern dieses durch 12 geteilt werden und mit dem Wert aus der Zelle H12 multipliziert werden.


Ich habe dafür folgendes eingegeben:
  Worksheets("SUMMARY").Cells(12, 3).Value = "=" & SUMME & "/12*R[12]C[8]"
  Worksheets("Summary").Cells(12, 3).Value = MOUNT


Das Ergebnis der Rechnung, welches in der Variablen "Summe" steht, wird also durch 12 geteilt und mit H12 multipliziert.

Seltsamerweise gibt es da manchmal, je nach Datei, in der das Makro angewandt wird einen Fehler. Meine Frage: Was ist falsch?


Vielen Dank

Schönen Sonntagabend noch

rapperzahn


Antwort schreiben

Antwort 1 von Saarbauer vom 26.10.2020, 19:44 Options

Hallo,

Was für ein Fehler kommt den?

Etwas anderes, könnte auch mit dem Fehler zusammenhängen,

Zitat:
Worksheets("SUMMARY").Cells(12, 3).Value = "=" & SUMME & "/12*R[12]C[8]"
Worksheets("Summary").Cells(12, 3).Value = MOUNT


Du schreibst beide Male in die gleiche Zelle

Gruß

Helmut

Antwort 2 von rapperzahn vom 26.10.2020, 19:55 Options

Moin Moin,

danke, Saarbauer, eigentlich könnte ich mich direkt an dich wenden! ;-)
Mmmh, eine Fehlermeldung habe ich nicht bekommen, der bricht halt immer ab und fragt, ob man Debuggen möchte, aber ich werde es morgen nochmal auf Fehlerangabe hin durchlaufen lassen, zuvor jedoch meinen Fehler korrigieren *ups*.

Danke

rapperzahn

Antwort 3 von Saarbauer vom 26.10.2020, 20:31 Options

Hallo,

als Hinweis, der Fehler liegt in der Zeile die farbig hinterlegt ist.

Da du keine Angabe zur Fehlermeldung machen kannst, ist es schwierig hierzu was zu sagen.

Gruß

Helmut

Antwort 4 von coros vom 27.10.2020, 05:27 Options

Hallo,

das beide Befehle in die gleiche Zelle schreiben, ist glaube ich nicht das Problem. Das Problem an daran ist viel mehr, dass ich nciht verstehe, warum beide Befehle in die gleiche Zelle schreiben. Warum ist das so?

Mögliches Problem könnte sein, dass der Blattname nicht mit dem Namen in den Befehlen zusammen passen. Ich komme darauf, da rapperzahn schreibt

Zitat:
Seltsamerweise gibt es da manchmal, je nach Datei, in der das Makro angewandt wird einen Fehler. Meine Frage: Was ist falsch?

Der Befehl wird anscheinen nicht in einer, sondern in mehreren Dateien angewandt und wenn da der Blattname nicht stimmt, kommt es zum Fehler.

Weiteres Problem könnte z.B. sein, dass in manchen Dateien der Blattschutz aktiv ist.

Es gibt noch eine Vielzahl von Problemen, die auftreten können. Für eine genauere Fehlerbehebung müsste man schon wissen, welcher Laufzeitfehler auftritt und welche Zeile (wie bereits von Helmut geschrieben) nach dem Betätigen des Buttons "Debuggen" markiert wird. Auch wäre es nicht schlecht, wenn man die fehlerhafte Datei bekommen könnte.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von Saarbauer vom 27.10.2020, 07:30 Options

Hallo,

meine Vermutung lag und liegt bei

Worksheets("SUMMARY").Cells(12, 3).Value = "=" & SUMME & "/12*R[12]C[8]"

da ich nicht weiss was dahinter steckt., aber was @coros schreibt, könnte auch möglich sein

Gruß

Helmut

Antwort 6 von rapperzahn vom 27.10.2020, 21:17 Options

Moin Moin,

okay. Sorry, dass ich euch mit so wenigen Informationen versorgt habe. Der Code war übrigens richtig.
Zitat:
Sheets("Sheet1").Select
    Do While zahl < 501
    zahl = zahl + 1
    If Application.Trim(Worksheets("Sheet1").Cells(zahl, 2)) = _
           Application.Trim(Worksheets("Summary").Cells(24, 10)) Then
           SUMME = SUMME + Cells(zahl, 25).Value
           MOUNT = MOUNT + 1
                        
              End If
    If Application.Trim(Worksheets("Sheet1").Cells(zahl, 2)) = _
           Application.Trim(Worksheets("Summary").Cells(25, 10)) Then
           SUMMF = SUMMF + Cells(zahl, 25).Value
           MOUNS = MOUNS + 1
           End If
     If Application.Trim(Worksheets("Sheet1").Cells(zahl, 2)) = _
           Application.Trim(Worksheets("Summary").Cells(26, 10)) Then
           SUMMG = SUMMG + Cells(zahl, 25).Value
           MOUNM = MOUNM + 1
    End If
    If Application.Trim(Worksheets("Sheet1").Cells(zahl, 2)) = _
           Application.Trim(Worksheets("Summary").Cells(27, 10)) Then
           SUMMH = SUMMH + Cells(zahl, 25).Value
           MOUNN = MOUNN + 1
             
    End If
  Loop
 
 
 
   Sheets("SUMMARY").Select
  Range("D12").Select
 Range("D12").Value = "=" & SUMME & "/12*R[-4]C[8]"
  Range("C12").Select
  Cells(12, 3).Value = MOUNT
  Range("D13").Select
  Cells(13, 4).Value = "=" & SUMMF & "/12*R[-5]C[8]"
  Range("C13").Select
  Cells(13, 3).Value = MOUNS
  Range("D14").Select
  Cells(14, 4).Value = "=" & SUMMG & "/12*R[-6]C[8]"
  Range("C14").Select
  Cells(14, 3).Value = MOUNM
  Range("D15").Select
  Cells(15, 4).Value = "=" & SUMMH & "/12*R[-7]C[8]"
  Range("C15").Select
  Cells(15, 3).Value = MOUNN


Das war der Zusammenhang. Die Fehlermeldung kam nur bei einer Datei und zwar, wenn der Suchbegriff, der in der Zelle (25,10) etc. stand nicht im Dokument enthalten war.
Je nach Dokument sind nämlich hinten dem Suchbegriff unterschiedlich viele Leerzeichen, weshalb das Makro die Begriffe nicht findet.

Meine Frage würde also eher in die Richtung geben:

Gibt es eine Funktion, die nur nach Wortteilen, also Buchstaben sucht (wie die Strg+F- Funktion), dann aber den gefundenen Inhalt komplett (mit allen restlichen Zeichen) in die Zelle (25,10) schreibt.

Bsp.:

Die Funktion sucht nach "Hallo" und findet dann beim ersten "HALLO-DU-DA ". Diesen kompletten Inhalt soll sie dann in Zelle (25,10) kopieren. GIbt es so was?

Das wäre cool und würde wahrscheinlich die mögliche Fehlermeldung umgehen!

Vielen Dank

rapperzahn

Antwort 7 von Saarbauer vom 27.10.2020, 21:31 Options

Hallo,

richtig verstanden habe ich es nicht, aber texte kannst du nicht mit + zusammenaddieren, da ist & zuverwenden

SUMME = SUMME & Cells(zahl, 25).Value

Ausserdem hast du vor der While-Schleife alle Werte auf einen Anfangswert gesetzt, sonst kann es auch Probleme geben

Gruß

Helmut

Antwort 8 von sicci vom 28.10.2020, 01:29 Options

Hallo rapperzahn,

könnte Dir der cells.find Befehl helfen?

Cells.Find("hallo").Copy
Cells(25, 10).Insert

Grüße
sicci

Ähnliche Themen

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026