Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Nur markierten Bereich berechnen und ausdrucken





Frage

Moin an Alle! So sieht die Sache z. Zt. aus: Ich markiere einen, nicht immer gleich großen Bereich auf einem Tabellen Blatt und drucke die Markierung aus. Nun möchte ich: Das wenn ich einen Bereich zum ausdrucken markiere, in dieser Markierung mehrere Berechnungen stattfinden z.B. Gesammtsumme, Qudratmeter usw. Ist so etwas, evtl. über ein Makro, möglich? Besten Dank im voraus! Rainer B.

Antwort 1 von Guenter

Hallo,

ja das geht.

Bei diesem Beispiel-Makro werden die markieren Zellen addiert und das Ergebnis in A1 geschrieben:


Option Explicit

Sub test()
  Dim cell As Range
  If Selection Is Nothing Then Exit Sub
  For Each cell In Selection.Cells
    Cells(1, 1).Value = Cells(1, 1).Value + cell.Value
  Next cell
End Sub


Gruß
Günter

Antwort 2 von Rainer B.



Danke das klappt wenn ich eine Spalte markiere.

Ich muß aber mehrere Spalten zum ausdrucken markieren und davon soll er aus Spalte "D", in der sich evtl. auch Text als Überschrift befindet, die Summe errechnen. Wenn möglich soll auch nach dem Ausdruck die Summe wieder auf Null gehen.

Ich weiß es ist vielleicht ein außergewöhnlicher Wunsch, aber evtl. kennt jemand eine Lösung.

Besten Dank in voraus!

Rainer B.

Antwort 3 von nighty

hi alle :)

dann so vielleicht :)

gruss nighty

Sub makro01()
With Worksheet
On Error GoTo fehler
For t% = Selection.Column To Selection.Column + Selection.Columns.Count - 1
For t1% = Selection.Row To Selection.Row + Selection.Rows.Count - 1
summe = summe + Cells(t1%, t%)
Next t1%
Next t%
End With
Beenden = _
MsgBox("Ergebnis der Addition des Markierten Bereiches " & Chr$(10) & Chr$(10) & summe & _
OK)
fehler:
If Err = 13 Then
t1% = t1% + 1
Resume Next
End If
End Sub





Antwort 4 von nighty

hi alle :)

oder so vor dem drucken aktiv

gruss nighty

einzufuegen alt f11 (vbeditor)/projektexplorer/tabelle1 alternativ mappe

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Sub makro01()
With Worksheet
On Error GoTo fehler
For t% = Selection.Column To Selection.Column + Selection.Columns.Count - 1
For t1% = Selection.Row To Selection.Row + Selection.Rows.Count - 1
summe = summe + Cells(t1%, t%)
Next t1%
Next t%
End With
Beenden = _
MsgBox("Ergebnis der Addition des Markierten Bereiches " & Chr$(10) & Chr$(10) & summe & _
OK)
fehler:
If Err = 13 Then
t1% = t1% + 1
Resume Next
End If
End Sub
End Sub

Antwort 5 von Rainer B.




@nighty

Wie ich lese gibst Du die Summe in einer MsgBox aus. Ich brauchte die Summe z.b. in Zelle A1, da aus der Summe auch noch die Quadratmeter und das Gewicht in Kilo ausgerechnet werden muss.

Danke und Grüße an alle

Rainer B.

Antwort 6 von nighty

hi alle :)

ausgabe der addition zelle a1

gruss nighty

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Sub makro01()
With Worksheet
On Error GoTo fehler
For t% = Selection.Column To Selection.Column + Selection.Columns.Count - 1
For t1% = Selection.Row To Selection.Row + Selection.Rows.Count - 1
Cells(1,1) = Cells(1,1) + Cells(t1%, t%)
Next t1%
Next t%
End With
fehler:
If Err = 13 Then
t1% = t1% + 1
Resume Next
End If
End Sub
End Sub

Antwort 7 von Rainer B.




Moin Nighty,

anscheinend bin ich zu dumm um deine Vorschlag einzubauen. Ich kann machen was ich will, es wird nichts berechnet.
Muß ich in Deinem Makro noch irgend wo angeben welche Spalte er berechnen soll?

Gruß
Rainer B.



Antwort 8 von Rainer B.




@nighty,

noch mal versucht und er rechnet. Nur in meiner Tabelle befinden sich auch Überschriften und andere Zahlen wie z.B. das Datum. Damit kommt das Makro beim berechnen durcheinander. Könnte man nicht eine bestimmte Spalte, ob wohl mehrere markiert sind, zum berechnen vorgeben?

z.B. Ich markiere von A2 bis G40 und aus der Markierung soll nur die Spalte D vor dem Drucken berechnet werden.

Ich kann mir vorstellen das es für Dich schwer zu verstehen ist, wenn man das Tabellenblatt nicht vor sich liegen hat.

Besten Dank

Rainer B.



Antwort 9 von nighty

hi rainer :)

ups Sub makro01() und einmal endsub waren zuviel :(

gruss nighty

nach deinen vorstellungen dann so ,bei einer beliebigen markierung(mehr als 1 zelle markiert) wird vor dem druck berechnet und in a1 ausgegeben

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Len(ActiveWindow.RangeSelection.Address) > 4 Then

rem hier von bis (zeilen)angeben ,zur zeit von 1 bis 5

For t = 1 To 5
Range("A1") = Range("A1") + Range("D" & t)
Next t
End If
End Sub

Antwort 10 von Rainer B.




hi nighty,

erst einmal besten Dank für Deine Mühe und Nerven mit mir!!!

Jetzt habe ich Deinen letzten Vorschlag eingebaut und nun kommt die Meldung
"Typen unverträglich"

Gruß
Rainer

Antwort 11 von nighty

hi rainer :)

das liegt an deinem spaerlichen infos :)

gruss nighty

p.s.
zur vorsicht,datum verboten,darum ja die bereichsangabe

Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error GoTo fehler
If Len(ActiveWindow.RangeSelection.Address) > 4 Then

rem hier von bis (zeilen)angeben ,zur zeit von 1 bis 5

For t = 1 To 5
Range("A1") = Range("A1") + Range("D" & t)
Next t
End If
fehler:
If Err = 13 Then
t1% = t1% + 1
Resume Next
End If
End Sub


Antwort 12 von Rainer B.




@ nighty

Noch mal besten Dank für Deine Geduld. Mit den Infos verstehe ich dich, ist ja alles nicht so einfach zu erklären.

Darf ich Dir evtl. eine Musterdatei per Mail zuschicken?

Gruß
Rainer

Antwort 13 von nighty

hi rainer :)

wenn es nicht zu umfangreich wird,dann schick mal :)

gruss nighty

Antwort 14 von Rainer B.




soeben geschehen!

Gruß
Rainer

Antwort 15 von nighty

hi alle

die gewuenschte loesung sah dann so aus :)
in einem commandbutton erstellt

gruss nighty

Private Sub CommandButton1_Click()
With Worksheet
On Error GoTo fehler
For t1% = Selection.Row To Selection.Row + Selection.Rows.Count - 1
summe = summe + Cells(t1%, 4)
Next t1%
End With
Cells(2, 1) = summe
Selection.PrintOut Copies:=1, Collate:=True
Cells(2, 1) = 0
Cells(2, 1).Select
fehler:
If Err = 13 Then
t1% = t1% + 1
Resume Next
End If
End Sub

Antwort 16 von Rainer B.



@nighty

falls Du hier noch mal im Forum vorbeischaust, hätte die Nervensäge Rainer noch mal 2 Fragen:
1.Kann man den Button zum Drucken vergrößern und wenn ja wie?
2.Kann man die Bezeichnung des Button (z.Zt. Drucken) auch umbenennen und wenn ja wie?

Ansonsten funzt es prima.

Gruß
Rainer

Antwort 17 von nighty

hi rainer :)

vergroesserung

Ansicht/Symbolleisten/Steuerelement-Toolbox dort entwurfsmodus anwaehlen,commandbutten selectieren,anhand der aeusseren kleinen karos die groesse veraenderbar ist.

namensaenderung

bis zur selectierung wie oben ,dann rechtsclick auf den selectierten button und dort eigenschaften anwaehlen,achte zeile sollte der name zu sehen sein(zur zeit "Drucken"),das wort Drucken mit doppelclick anwaehlen und den wuenschen anzupassen ist :)

gruss nighty

p.s.
oder eine vb loesung falls lieber ist :),doch glaub ich ist nicht von noeten ist,da ich ja die tabelle ein wenig kenne :)

Antwort 18 von nighty

hi alle :)

es waere noch generell zu sagen das ein makroaufruf im butten statt des codes z.b. call makroname im allgemeinen besser waere,weil nicht alle vb befehle tabellenduebergreifen sind,da in diesem falle nur ein sheet benutzt wird spielt dies also keine rolle :).

gruss nighty

Antwort 19 von Rainer B.




Danke nighty,

auch diese Erklärung war wieder super. Hat sofort geklappt.

Besten Dank

Rainer

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: