Mit Makro Berechnungen in Tabelle ausführen

Hallo erst mal …
In einer Tabelle von rund 1600 Zeilen und 8 Spalten möchte ich Folgendes ausführen lassen:
Falls in einer Zeile in der Spalte 6 und in der Spalte 7 Werte eingesetzt sind, dann multipliziere diese und weise das Ergebnis in der Spalte 8 (dieser Zeile) aus.
Das sollte -möglichst in einem Rutsch- in der gesamten Tabelle durchgeführt werden.

Ich könnte mir vorstellen, daβ die Geschichte gar nicht so wahnsinnig schwer ist, für mich als VBA-Lagastheniker aber leider unlösbar. Vielleicht kann mir da ja jemand helfen. Herzlichen Dank vorab!

Hudot

In einer Tabelle von rund 1600 Zeilen und 8 Spalten möchte ich
Folgendes ausführen lassen:
Falls in einer Zeile in der Spalte 6 und in der Spalte 7 Werte
eingesetzt sind, dann multipliziere diese und weise das
Ergebnis in der Spalte 8 (dieser Zeile) aus.

Hallo Hudot,

Alt+F11, oben im Editor Einfügen—Modul, nachfolgenden Code reinkopieren,
ggfs. w-w-w-Signatur „…mehr auf…“ liquideren.
Editor schließen. Alt+F8, Makro „Multiziplieren“ ausführen lassen.
An Kopie der Originaldoc austesten.

Gruß
Reinhard

Option Explicit

Sub Multiziplieren()
Dim Zei As Long
With ActiveDocument.Tables(1)
 For Zei = 1 To .Rows.Count
 If Pruef(Zei, 6) And Pruef(Zei, 7) Then
 .Cell(Zei, 8).Range.Text = Val(.Cell(Zei, 6).Range.Text) \* Val(.Cell(Zei, 7).Range.Text)
 End If
 Next Zei
End With
End Sub

Function Pruef(Zei, Spa) As Boolean
With ActiveDocument.Tables(1)
 If IsNumeric(Replace(.Cell(Zei, Spa).Range.Text, Chr(7), "")) Then
 If Replace(.Cell(Zei, Spa).Range.Text, Chr(7), "") "" Then
 Pruef = True
 End If
 End If
End With
End Function

Hallo,

ich hab’  ein Makro zusammengebastelt, das mit gewissen Einschränkungen funktioniert. Das ganze mit einer „Do … Loop“-Schleife, die Zeile für Zeile abarbeitet. Damit könnte ich gut leben, wenn ich -um andere, weitere Schritte anzufügen- die Schleife beenden könnte. Könnte mir vielleicht jemand zeigen, wie die Zeile „Loop Until“ … Tabellenende aussehen müβte? Ich wäre wirklich sehr dankbar!

Hudot

ich hab’  ein Makro zusammengebastelt, das mit gewissen
Einschränkungen funktioniert. Das ganze mit einer „Do …
Loop“-Schleife, die Zeile für Zeile abarbeitet. Damit könnte
ich gut leben, wenn ich -um andere, weitere Schritte
anzufügen- die Schleife beenden könnte. Könnte mir vielleicht
jemand zeigen, wie die Zeile „Loop Until“ … Tabellenende
aussehen müβte? Ich wäre wirklich sehr dankbar!
:

Hallo Hudot,

was genau funktioniert nicht bei Verwendung meines Codes?

Um eine Schleife abzubrechen gibt es viele Möglichkeiten.
Wie soll das hier laufen, ich schreibe nacheinader Codes für 20-50 Arten so eine Schleife abzubrechen und du suchst du dir dann eine aus die bei dir funktioniert?

Naja, das kannste knicken. Zeige deinen Code, das tunt das ganze zeitlich.
Nachdem du auf meinen Erstbeitrag geantwortet hast.

Gruß
Reinhard

Hallo Reinhard,

erst mal (wieder) herzlichen Dank für Deine Mühe, ich hoffe, ich kann Dir auch 'mal etwas Gutes tun!  Ich bin so, wie ich Deine Anweisung verstanden habe, vorgegangen, hab also den Code in ein Modul kopiert … dabei bilden sich 2 Abschnitte, der erste endet mit „End Sub“, dann beginnt ein zweiter, der mit Function beginnt. Wenn ich das Makro starte, kommt die Fehlermeldung „Fehlermeldung beim Kompilieren - Innerhalb einer Prozedur ungültig“ bezogen auf „Option Explicit“. Hab ich da irgend etwas falsch gemacht?

Herzliche Grüβe,
Hudot

Hallo Hudot,

ich hoffe, :ich kann Dir auch 'mal etwas Gutes tun!

echt?, Mein Wunschzettel für Weihnachten ist lang :smile:

  Ich bin so, wie ich
Deine Anweisung verstanden habe, vorgegangen, hab also den
Code in ein Modul kopiert … dabei bilden sich 2
Abschnitte, der erste endet mit „End Sub“, dann beginnt ein
zweiter, der mit Function beginnt.

Ja, so soll es sein. Ganz oben das Option Explicit.

Dann die Sub-Prozedur
Sub abc()

End sub

Dadrunter die Functions-Prozedur
Function xyz()

End function

Wenn ich das Makro starte,
kommt die Fehlermeldung „Fehlermeldung beim Kompilieren -
Innerhalb einer Prozedur ungültig“ bezogen auf „Option
Explicit“. Hab ich da irgend etwas falsch gemacht?

Ja, es stand nicht ganz oben oder du hast da im Modul noch andere Prozeduren und durchs Reinkopieren Option Explicit doppelt o.ä.

Ich hatte den Code getestet mit Word 2000, funktionierte,…

Gruß
Reinhard

Hallo Reinhard,

ich hab’s hingekriegt, Dein Makro funktioniert problemlos …   Die Geschichte läuft sehr gut!!!

Nocheinmal herzlichsten Dank!!!

Harald

Hallo Reinhard,

ich bitte um Entschuldigung, ich hatte -als ich „mein“ Makro, das mit der Schleife, gebastelt hatte… , und dann meine Frage hierzu bei w-w-w eingestellt habe-, nicht gesehen, daβ Du bereits geantwortet und mir ein gut funktionierendes Makro angeboten hast.
Hoffentlich liegt es am Schlafmangel, aber ich hab’ nicht nur Deinen Code zunächst unvollständig kopiert, danach hab ich das Makro auch noch an einer Tabelle ausprobiert, die nur 7 Spalten hatte … das konnte nicht funktionieren.
Also sei mir bitte nicht böse, ich bin Fan Deiner Arbeit und des Codes, den Du mir erstellt hast. Gaaaaaaaaaaaaaaaaanz herzlichen Dank!

Hallo Reinhard,

schick mir doch bitte Deinen Wunschzettel!

Liebe Grüβe

Hudot