Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

addieren über Schleife

addieren über Schleife
12.12.2012 08:36:37
Newbi
Hallo Zusammen,
Für die Arbeit benötige ich einen Code, der die verschiedenen Ausprägungen einzelner Versuche in allen möglichen Kombinationen addiert. Da ich hunderte von Experimenten habe, die jedoch immer die Ergebnisse in gleicher Form präsentieren, würde mir ein Makro jede Menge Arbeit abnehmen.
Beispiel: Versuch A gibt als Ergebnis X eine 0,4 für Ergebnis Y eine 0,56 und für Ergebnis Z eine 0,2 aus. Zusammen macht das 1,16. Nun gibt es jedoch eine unbestimmte Anzahl “ N“ an Versuchen, die immer 3 Ergebnisse liefern. Der Code soll auch die Ergebnisse von B bis hin zu N für X, Y und Z addieren. Z.B: XA (0,4) + YB (0,3) + ZN (0,23) = 0,93
--------A;--- B;--- N;
X;-- 0,4-- 0,2-- 0,15
Y;-- 0,56-- 0,3-- 0,54
Z;-- 0,2-- 0,4-- 0,23
(Die Leerzeichen sind nur eingefügt, damit es im Post auch als Tabelle zu erkennen ist)
Diejenige Kombination, die eine Summe kleiner 1 hat, soll in ein anderes Tabellenblatt kopiert werden, sodas jeder wert einer Zelle zugewiesen ist. Für obiges Beispiel wäre das etwa so:
Tabellenblatt2:
A1 ist A; B1 ist X; C1 ist 0,4
A2 ist “B“; B2 ist “Y“; C2 ist “0,3“
A3 ist “N“; B2 ist “Z“; C3 ist “0,23“
A4 ist 0,93
Vielen Dank für die Hilfe vorab

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bahnhof
12.12.2012 09:54:45
Klaus
Hallo Newbi,
wir sprechen uns in diesem Forum gerne mit Realnamen / Vornamen an, wenn du mit einem nicht so offensichlichem Pseudonym postest steigen deine Chancen hier Hilfe zu erhalten.
Zu deinem Problem, ich verstehe nur Bahnhof. Und richtig gut sehen kann man deine ASCII-Tabelle auch nicht. Bitte lade mal eine Musterdatei hoch und erkläre das Problem präziser.
Z.B: XA (0,4) + YB (0,3) + ZN (0,23) = 0,93
Was ist denn XA und warum?
Grüße,
Klaus M.vdT.

Bahnhofs-Schleife : Transponieren und Filtern
12.12.2012 11:06:24
NoNet
Hallo Newbi,
m.E. benötigst Du dazu kein VBA wenn Du die Tabelle etwas anders anordnest (transponierst) und dann nach der Summe filterst :
ABCDE
1
2
3
4
5
6
7

Funktionen im Tabellenblatt
Zelle Formel 
E2   =SUMME(B2:D2) 
E3   =SUMME(B3:D3) 
E4   =SUMME(B4:D4) 
E5   =SUMME(B5:D5) 
E6   =SUMME(B6:D6) 
E7   =SUMME(B7:D7) 

Nun kannst Du nach der Summe in Spalte E filtern (und das Resultat ggf. in ein anderes Blatt kopieren) !
Gruß, NoNet
PS @Klaus :
wir sprechen uns in diesem Forum gerne mit Realnamen / Vornamen an,

Hoffentlich bekomme ich jetzt keinen Ärger mit dem Forum...

Anzeige
OT: Realnamen
12.12.2012 11:43:39
Klaus
Hallo NoNet,
die FAQ https://www.herber.de/forum/faq.htm kennst du ja bestimmt, auch den Punkt in dem steht dass "Nick-Names" unerwünscht sind. Ständen wir beide also vor Gericht, und wären die Forums-FAQ gültige Gesetze, dann bekäme ich Recht :-) Aber ich bin hier ja (zum Glück!!) nicht die Forumspolizei.
Tatsächlich ist das aber ein Grund, warum ich gerne in diesem Forum unterwegs bin. Ich kann diese neumodischen Foren nicht ausstehen, in denen Leute mit Namen wie "1337 3x31 h4xx0r" posten und die Beiträge vor Smileys und meterlangen Signaturen überquellen. Aus ähnlichen Gründen bin ich auch nicht bei Facebook, Twitter oder sonstwo zu finden.
Ja, die optische Form speziell deiner Beiträge stört mich! Noch schlimmer finde ich zB die riesigen animierten Signaturen, die Hajo gerne verwendet ... nur um mal ein weiteres Beispiel zu nennen.
Und ja, ich bin mir der durchgehend hohen Qualität deiner Beiträge absolut bewusst und empfinde tiefen Respekt vor deinem Excel-Wissen. Diese Themen kann ich durchaus unterscheiden.
Ob du nur mir zu liebe deine Beitragsform änderst, bleibt dir überlassen (ich denke mal nicht, oder?). Ich hätt mich auch nicht dazu herabgelassen, dir eine Nachricht zu einem so trivialem Thema zu schreiben, aber: Ätsch, du hast angefangen!
Nur falls wir uns irgendwann im echten Leben begegnen sollten (Zufälle gibts ja) und feststellen dass wir uns aus dem Herber-Forum kennen, bitte bitte lass dich dann nicht mehr mit "NoNet" anreden!
Ich nehme mir auch weiterhin heraus, neue Poster auf die hier herrschende Netiquette hinzuweisen. Das Recht nimmst du dir ja auch gerne bei Punkten die dir wichtig sind (Beweis: https://www.herber.de/forum/messages/1290320.html ).
Grüße,
Klaus M.vdT.

Anzeige
AW: OT: Realnamen
12.12.2012 12:07:08
Rudi
Hallo,
bitte bitte lass dich dann nicht mehr mit "NoNet" anreden
Muss nicht, kann aber.
Er reagiert sowohl auf seinen Vornamen als auch auf NoNet ;-)
Gruß
Rudi, der auch nicht so heißt.

Outlaws : Wer wirft den ersten Stein ;-) ?
12.12.2012 12:14:22
NoNet
Hallo Klaus,
Klaro kenne ich diese Forums-FAQ, in den meisten Punkten stimme ich auch zu (bzw. bin sogar absolut der gleichen Meinung), aber in Puncto "Realnamen" sehe ich das eben etwas freizügiger und bekenne mich hier offen als "Gesetzloser" (Outlaw ;-) - wer ohne Sünde ist, der werfe den ersten Stein (aber aufpassen dass er/sie nicht im Glashaus sitzt ;-) - ich werde das jedenfalls nicht tun.
Mir ist es im EXCEL-Forum relativ egal, ob ich mit Adam oder Eva, Rudi oder Rudolf, Lisa oder Elisabeth oder eben mit Newbie, Hajo oder NoNet kommuniziere - für mich sind das alles gleichgestellte Menschen und den Wahrheitsgehalt des angegebenen Namens kann ich ohnehin nicht verifizieren (wer sagt, dass hinter "Klaus" nicht eine Frau - möglicherweise meine Nachbarin steckt ? ;-).
In einem "Beziehungs-Forum" wäre es mir freilich nicht egal, ob das nun oder , aber das ist ja auch eine andere Baustelle...
Die Form, der Inhalt, das Thema und das Niveau der Kommunikation interessieren mich in einem Excel-Forum viel eher und die stimmt hier im Forum ja überwiegend (ob mit oder ohne Smileys oder nicht, bleibt eben jedem selbst überlassen, sollte den eigentlichen Beitrag jedoch nicht "überschatten").
Nur falls wir uns irgendwann im echten Leben begegnen sollten (Zufälle gibts ja) und feststellen dass wir uns aus dem Herber-Forum kennen, bitte bitte lass dich dann nicht mehr mit "NoNet" anreden!

Nun : Auf den jährlich stattfindenden Exceltreffen können sich Excel-Forenteilnehmer tatsächlich mal LIVE begegnen und hier wird meist der Realname genannt, einige bleiben aber auch beim Nicknamen und es stört niemanden wirklich ernsthaft.
Gruß, NoNet (unverändert ;-)

Anzeige
AW: Outlaws : Wer wirft den ersten Stein ;-) ?
12.12.2012 13:15:59
Klaus
Hi NoNet und Rudi,
ich bin nicht die Nachbarin und habe sogar ein Bild in meinem Profil! OK, natürlich könnte das auch ein Bild von sonst wem sein und ich bin in Wirklichkeit Angela Merkel ... aber das ist nunmal so im Internet. Vielleicht bist DU ja Angela Merkel.
Natürlich werfe ich nicht mit Steinen ... wenn man sich die Mühe macht und meine Beiträge alle recherchiert, findet sich sicherlich auch einer in dem ich ein sinnloses Bild hochgeladen habe oder so ... und ich benutze diese :-) Emoticon Sachen, die bestimmt auch jemand anders als unseriös und störend empfindet.
Wir haben verschiedene Meinungen, und das ist ja auch gut so. Und ich schaue mir lieber den ganzen Tag animierte GIFs an, als hier auf Beiträge von dir, Rudi und auch Hajo zu verzichten.
Jetzt ist aber gut mit dem Offtopic! Sonst verstoßen wir damit noch mehr gegen die Forumsregeln :-)
Grüße,
Klaus M.vdT.
P.S.: Ich sehe es als entgegenkommen, dass du den letzten Beitrag nicht versmiliest hast!

Anzeige
Steinewerfer
12.12.2012 13:47:17
Rudi
Hallo,
Vielleicht bist DU ja Angela Merkel.
Jetzt werd' mal nicht ausfallend.
... als hier auf Beiträge von dir, Rudi und auch Hajo zu verzichten.
Stimme zu 75% zu. =Mittelwert(100%(1); 50%(2))
Kannst du steigern, wenn du NoNet und dich auch noch mit rein nimmst. Hajo wird dann immer unwichtiger.
;-)))
Gruß
Rudi

AW: Outlaws : Wer wirft den ersten Stein ;-) ?
14.12.2012 09:05:13
Klaus
Rudolf, Lisa oder Elisabeth oder eben mit Newbie, Hajo oder NoNet
Wobei ich mir ziemlich 100%ig sicher bin, dass "Hajo" sein Realname und kein Nickname ist.
Grüße,
Klaus M.vdT.

So jung noch und schon so ...
12.12.2012 13:38:28
Luc:-?
…konservativ, Klaus…!? ;-)
(Falls dein Bild zeitnah ist.)
Gruß Luc :-?

Anzeige
AW: So jung noch und schon so ...
12.12.2012 13:52:35
Klaus
Hallo Luc,
ja das Bild ist zeitnah! Aber jung wurd ich schon länger nicht mehr genannt, hab auch schon über drei Dekaden "auf der Uhr".
Das mit dem "konservativ" ist so ne Sache ... ich errinnere mich noch gut an meine düstere Heavy Metal Phase, mit langen Haaren und Nietenarmbändern und allem, als wärs gestern - und plötzlich macht es click, man ist Ü30, trägt gerne (!!!) Anzüge und ist verheiratet. Und wildfremde Excelpäpste nennen einen Konservativ :-) das Leben läuft zu schnell!
Grüße,
Klaus M.vdT.

Ja, ja! Übrigens hab ich da grad was ...
12.12.2012 14:19:58
Luc:-?
…gelesen, Klaus,
was dich evtl tröstet:
Es dauert bloß 20 Jahre, und der Liberale ist zum Konservativen geworden – ohne sein Gedankengut auch nur im geringsten verändert zu haben. (R.A.Wilson in Die Illuminati-PapiereConspiracy Digest Interview 4, rororo 2008, 12.Auflage, ©1980)
Ansonsten, was soll ich da sagen, der ich mich noch gut an Mersey Beat, John Mayall's Einfluss auf Stones u.a., Underground usf erinnern kann… ;-)
Gruß Luc :-?

Anzeige
AW: addieren über Schleife
12.12.2012 20:42:54
Newbi
Hallo Zusammen,
ich glaube die Diskussionist hier wohl etwas aus dem Ruder gelaufen. Ums mal vorweg zu nehmen, mein richtiger Name ist Justus und das werde ich beim nächsten Thema auch angeben. Für diesen behalte ich mal noch den Namen Newbi, damit es nicht alzu verwirrend wird.
A B N
x 0,4 0,2 0,15
y 0,56 0,3 0,54
z 0,2 0,4 0,23
NoNet, die Tabelle zu transponieren hilft nicht, da ich nicht nur die Summen benötige, sondern alle möglichen Kombinationen von A, B bis hin zu N, bei denen das addieren von x, y und z kleiner 1 ist. Also nicht nur die Summe über A, sondern das x kann z.B auch aus N stammen, hier 0,15 und mit dem y aus B (0,3) und mit dem z aus A (0,2) addiert werden, da die Summe = 0,65 und damit kleiner 1 ist.
Vielen Dank für weitere Hinweise
Newbi (Justus)

Anzeige
sorry, aber immer noch Bahnhof ...
13.12.2012 13:02:51
Klaus
Hallo Justus,
sorry - ich verstehe immer noch nicht, was wann wo wie addiert werden soll. Magst du mal eine Musterdatei hochladen?
Es reicht ja, wenn du zB 4 Zeilen und 4 Spalten in der Beispieldatei hast. Wenn du dann noch das Wunschergebniss händisch einträgst so dass wir sehen worauf die Formeln hinaus laufen sollen, klappts
bestimmt auch mit der Zugeinfahrt des Verständniss :-)
Viele Grüße und sorry für das oben ausufernde Off-Topic:
Klaus M.vdT.

AW: sorry, aber immer noch Bahnhof ...
13.12.2012 21:44:14
Newbi
Hallo Klaus,
ich habe die Datei mit hinterlegtem Makro hochgeladen. Das funktioniert und erklärt hoffentlich dann auch besser was ich eigentllich will :-).
Meine Problem ist nun, dass das Makro nicht nur über die erste Tabelle laufen soll, sondern auch über alle darauffolgenden, wobei zu beachten ist, dass das Grundgerüst der Tabelle immer gleich ist und im gleichen Abstand zur vorherigen Tabelle liegt.
https://www.herber.de/bbs/user/82997.xlsm
Vielen Dank vorab,
Justus

Anzeige
verstanden! und gelöst.
14.12.2012 08:34:23
Klaus
Hi Justus,
hier ist dein neuer Code.
Beachte bitte: in deiner Beispieldatei hast du erklärende Texte rechts von den Tabellen stehen gehabt. Die müssen weg! (Grund: es werden die Anzahl Spalten gezählt)
Dein Button ruft Summieren auf. Ändere den um, damit der die Sub VieleTabellen aufruft.
Ich habe meine Codeergänzungen alle kommentiert, und den Originalcode nie gelöscht sondern immer nur auskommentiert. Wenn du den Code auf deine Masterdatei anwendest (die ist bestimmt größer mit mehr Tabellen?), lies bitte die Kommentare in meiner "VieleSummieren" Sub um zu verstehen welche Variablen du anpassen musst.
Mit Rücksicht auf dein Level habe ich den Code-Aufruf einfach gehalten, mit einem kopierbaren Aufruf pro Tabelle im Masterblatt.
Unten hab ich noch ein Beispiel, wie man viele Tabellen per Spalte jeweils aufrufen könnte - das aber auskommentiert, schaus dir an wenn du wirklich viele Tabellen hast.
Public Sub VieleTabellen()
'** dies Makro ruft das "Tabellen summieren" x-mal auf
Dim wksMy As String
Dim iCol As Integer
Dim lRow As Long
'hier das ZIEL-Worksheet definieren
wksMy = "sheet3"
'löscht Ziel
Worksheets(wksMy).Cells.ClearContents
'Tabelle #1 startet in Zeile 2, Spalte 2
lRow = 2
iCol = 2
Call Summieren(lRow, iCol, wksMy)
'Tabelle #2 startet in Zeile 9, Spalte 2
lRow = 9
iCol = 2
Call Summieren(lRow, iCol, wksMy)
'Tabelle #3 startet in Zeile 16, Spalte 2
lRow = 16
iCol = 2
Call Summieren(lRow, iCol, wksMy)
'** die drei Zeilen kannst du fortsetzen bis der Arzt kommt
'** einfach Copy, Paste und die lRow Variable hochsetzen
'** Alternative: den Aufruf in eine Schleife (wenns immer 7 Zeilen sind!!)
'iCol = 2
'For lRow = 2 To 16 Step 7
'Call Summieren(lRow, iCol, wksMy)
'Next lRow
'** dann ist es kürzer, und wenns mal 100 Tabellen werden ....
End Sub
'** = Kommentare von Klaus
'Public Sub Summieren()
Public Sub Summieren(lRow As Long, iCol As Integer, wksMy As String)
'** ich lasse das SUB mit variablen Zeilen und Spalten (und Ziel-Blatt) aufrufen
Dim lLastRow As Long
'** Kommentar von Klaus: Eine extra Variable
Dim dest As Worksheet
Dim cl1 As Range
Dim cl2 As Range
Dim cl3 As Range
Dim x_Werte As Range
Dim y_Werte As Range
Dim z_Werte As Range
Dim destrg As Range
Dim Summe As Double
'Set dest = Worksheets("sheet3") 'Festlegung Sheet3 als Zieltabelle
Set dest = Worksheets(wksMy)
'** hier mache ich das Ziel-Worksheet variabel, nur für den Fall der Fälle
'dest.Cells.Clear                'löschen der Zieltabelle
'** Das nehme ich mal raus, bringt ja nichts wenn
'** nach jeder Tabelle gelöscht wird .. dann währs ein Syssiphus-Makro
'Set destrg = dest.Cells(1, 1)   'Festlegung der Zielzelle als A1
lLastRow = dest.Cells(Rows.Count, 1).End(xlUp).Row + 1
Set destrg = dest.Cells(lLastRow, 1)
'** als Ziel nicht die erste Zeile, sondern die erste FREIE Zeile
'Bestimmung des X Wertes, wobei range("A2").end(xltoright).column bedeutet, dass von A2 bis  _
zur letzten rechten Spalte
'(cells(2, 2)) = cells(Reihe, Spalte) = Zeile 2 Reihe 2, also B2
'    Set x_Werte = Range(Cells(2, 2), Cells(2, Range("A2").End(xlToRight).Column))
'    Set y_Werte = Range(Cells(3, 2), Cells(3, Range("A3").End(xlToRight).Column))
'    Set z_Werte = Range(Cells(4, 2), Cells(4, Range("A4").End(xlToRight).Column))
Set x_Werte = Range(Cells(lRow, iCol), Cells(lRow, Range("A" & lRow).End(xlToRight).Column)) _
Set y_Werte = Range(Cells(lRow + 1, iCol), Cells(lRow + 1, Range("A" & lRow + 1).End( _
xlToRight).Column))
Set z_Werte = Range(Cells(lRow + 2, iCol), Cells(lRow + 2, Range("A" & lRow + 2).End( _
xlToRight).Column))
'** Das "SET" der Werte, aber variabel pro Tabelle
For Each cl1 In x_Werte
For Each cl2 In y_Werte
For Each cl3 In z_Werte
'                ** TEST-Selects
'                cl1.Select
'                cl2.Select
'                cl3.Select
Summe = cl1.Value + cl2.Value + cl3.Value
If Summe 
Grüße,
Klaus M.vdT.

Anzeige
Nachschlag!
14.12.2012 08:50:44
Klaus
Hi,
hatte noch ein kleines Manko. Such mal nach dieser Stelle im Code:
                    For idx = LBound(rgarr) To UBound(rgarr)
destrg.Offset(idx, 0).Value = Cells(1, rgarr(idx).Column).Value
und tausche die aus gegen
                    For idx = LBound(rgarr) To UBound(rgarr)
'destrg.Offset(idx, 0).Value = Cells(1, rgarr(idx).Column).Value
destrg.Offset(idx, 0).Value = Cells(lRow - 1, rgarr(idx).Column).Value
'** Überschrift aus aktueller Tabelle holen, nicht aus Zeile 1
dann klappt es auch mit den Bezeichnern der Werte!
Übrigens gefällt mir in deinem original-Makro nicht, dass so häufig ohne Referenzierung Zellen abgefragt werden. Wenn du 100%ig sicher bist, dass dies Makro IMMER vom Sheet "Start" als aktiver Tabelle aufgerufen wird, ist das egal.
Aber wegen der Sicherheit würd ich da einen Width-Rahmen drumbasteln. Kannst dich ja nochmal melden.
Grüße,
Klaus M.vdT.

AW: Nachschlag!
14.12.2012 19:18:04
Newbi
Hallo Klaus,
ich hab dein Makro getestet, bei mir kommt jedoch immer ein Fehler: type mismatch.
Die erste Tabelle wird jedoch nach wie vor berechnet, die folgenden aber nicht. Wenn ich die 1. Tabelle erweitere und eine Spalte hinzufügen, kommt auch die Fehlermeldung
Die Excel mit deinen Makro habe ich beigefügt und hoffe auf Hinweise, die mir das Brett vorm Kopf weg nehmen
https://www.herber.de/bbs/user/83014.xlsm
Vielen Dank nochmal vorab,
Justus

AW: Nachschlag!
14.12.2012 20:51:13
Newbi
Hallo Klaus,
ich habs. Ich stand wirklich auf dem Schlauch.
Dein Code klappt perfekt.
Danke
Gruß
Justus

Danke für die Rückmeldung! owT
16.12.2012 00:19:27
Klaus
.

Trotzdem nochmal ne Nachfrage:
14.12.2012 08:39:58
Klaus
Hey Justus,
dein Makro, hattest du das schon als du diesen Thread erstellt hast?
Denn genau genommen hast du eingangs gefragt "Wie summiere ich diese N Werte?", gerade gelöst habe ich aber "Wie wende ich die Lösung für Summieren auf N Tabellen nacheinander an?"
Grüße,
Klaus M.vdT.

AW: Trotzdem nochmal ne Nachfrage:
14.12.2012 17:20:43
Newbi
Hallo Klaus,
Super vielen vielen Dank. Ich bin noch nicht dazu gekommen es zu testen, werde es heute Abend nachholen.
Das erleichtert mir wirklich sehr viel.
Zu deiner letzten Frage, die ursprüngliche Frage konnte zwischendurch gelöst werden. Die Erweiterung ist natürlich das besondere Etwas. Daher... Vielen herzlichen dank
Grüße,
Justus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige