Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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
vba summewenn abhängig von Spalten
Spalten
Hallo Allemiteinander
Stehe auf dem Schlauch. In den Spalten G1: H45 stehen Zahlen oder nichts, diese moechte ich mit VBA summieren wenn in den Spalten M bis Q der Zeile der Wert groesser 0(hier gelb) ist. Bsp. Rot soll nicht mitgezaehlt werden.
Die Eingaben erfolgen ueber UserForm zeilenweise. Ausgabe(hier 16) in MsgBox. Wie stelle ich das am geschicktesten an.
Bin fuer jeden Tip dankbar.
gruss hary
Tabelle1
 GHIJKLMNOPQ
14          23       
2  4              0 
32                  23
42                  12
52              33   
6  6          45     
7                     
8                     
9  waere                 
10  16                 

Tabellendarstellung in Foren Version 5.30


AW: vba summewenn abhängig von Spalten
22.02.2011 13:55:06
Spalten
Hallo harry,
Gibt es in M bis Q nur einen Wert?
Ich würde das über Formel lösen.

AW: vba summewenn abhängig von Spalten
22.02.2011 14:26:59
Spalten
Hallo Hajo
Ja, wenn dann steht entweder in Spalte G oder H eine Zahl und nur in einer der Spalten M bis Q derselben Zeile eine Zahl (Null oder groesser).
Zum besseren verstaendniss:
In Spalten G und H kommt die Achsenzahl von Waggons rein je nach dem ob der Waggon beladen oder leer ist. Diese Achsen(leer und beladen) sollen gezaehlt werden, aber nur wenn in M bis Q ein Wert groesser Null steht.
Also alle leeren und beladenen Achsen zaehlen bei denen ein Wert groesser Null in M bis Q ist.
Von 45 Zeilen sind aber nicht immer alle ausgefuellt.
gruss hary
Anzeige
AW: vba summewenn abhängig von Spalten
22.02.2011 14:35:14
Spalten
Hallo Hary,
per Formel und Hilfsspalte.
Tabelle2
 GHIJKLMNOPQ
14        2323       
2  4      0      0 
32        23        23
42        12        12
52        33    33   
6  6      45  45     
7          0         
8          0         
9  waere      0         
10  1616    0         

verwendete Formeln
Zelle Formel Bereich
L1 =SUMME(M1:Q1) 
L2 =SUMME(M2:Q2) 
L3 =SUMME(M3:Q3) 
L4 =SUMME(M4:Q4) 
L5 =SUMME(M5:Q5) 
L6 =SUMME(M6:Q6) 
L7 =SUMME(M7:Q7) 
L8 =SUMME(M8:Q8) 
L9 =SUMME(M9:Q9) 
I10 =SUMMEWENN(L1:L9;">0";G1:G9)+SUMMEWENN(L1:L9;">0";H1:H9) 
L10 =SUMME(M10:Q10) 

Tabellendarstellung in Foren Version 5.38


Gruß Hajo
Anzeige
AW: vba summewenn abhängig von Spalten
22.02.2011 15:22:33
Spalten
Danke Hajo
versuche es aber trotzdem noch mit Vba. Alleine des lernens Willen.
gruss hary
AW: vba summewenn abhängig von Spalten
22.02.2011 16:03:05
Spalten
so vllt.
Sub summieren()
Dim i, s As Long
For i = 1 To 45
If Cells(i, 13) > 0 _
Or Cells(i, 14) > 0 _
Or Cells(i, 15) > 0 _
Or Cells(i, 16) > 0 _
Or Cells(i, 17) > 0 Then
s = s + Cells(i, 7) + Cells(i, 8)
End If
Next
End Sub

Gruß
Jochen
@ Jochen
22.02.2011 17:10:06
hary
hallo Jochen
auch Dir Danke. habe mich fuer marc's Code entschieden, nachdem ich meinen fehler behoben habe.
Jetzt wo ich alle Threads gelesen habe, ging der Knoten auf.
gruss hary
Anzeige
AW: @ Jochen
22.02.2011 21:00:33
JoWE
oder so:
Sub summieren()
Dim i, s As Long
Dim sh As Worksheet
Set sh = ActiveWorkbook.Sheets(1)
For i = 1 To 45
If sh.Range(Cells(i, 13), Cells(i, 17)) _
.Find(0, Lookat:=xlWhole) Is Nothing Then
s = s + WorksheetFunction.Sum(sh.Cells(i, 7), sh.Cells(i, 8))
End If
Next
MsgBox s
End Sub

AW: @ Jochen
23.02.2011 09:06:09
hary
Moin Jochen
nochmal danke. Jetzt wo ich weiss wo der Fehler lag stehen alle Tueren auf. Auch meine eigenen ersten Versuche fruchten.
Fehlerbeschreibung:
Userform mit 20 Textboxen. Ubertragung deren Inhalte(Zahlen oder Buchstaben) mit einer Schleife.
Die 5 Textboxen fuer M bis Q sind auch darin. Da aber nur eine, eine Zahl enthielt und die anderen 4 leer sind kommt der Eintrag der leeren Textboxen als Leerzeichen in die betr. Zellen.
Habe es so geloest:
Zielzelle = Trim(TextBox)
und schon lief es.
gruss hary
Anzeige
Sicher nicht die eleganteste Lösung, aber
22.02.2011 14:13:58
Marc
...die lösung stimmt!
Gruß,Marc
Sub test()
summe = 0
For i = 1 To 45
Set rng = Range("M" & i & ":Q" & i)
For Each nm In rng
If nm.Value > 0 Then
Debug.Print WorksheetFunction.Sum(Cells(i, 7), Cells(i, 8))
summe = summe + WorksheetFunction.Sum(Cells(i, 7), Cells(i, 8))
Exit For
End If
Next nm
Next i
MsgBox summe
End Sub

AW: Sicher nicht die eleganteste Lösung, aber
22.02.2011 15:26:03
hary
Hallo Marc
Danke, liefert aber das falsche Ergebniss. Liegt wahrscheinlich an mir, brauche wohl mal 'ne Pause.
hier mal eine Bsp. Tabelle. Dein Makro ist eingebaut.
https://www.herber.de/bbs/user/73678.xls
gruss hary
Anzeige
zurueck, Fehler gefunden
22.02.2011 15:50:39
hary
Hallo Marc und evtl. Mitleser
hab den Fehler gefunden. Fehler lag im Uebertragungscode. Hatte dort, statt nix zum uebertragen, ein leerzeichen reingebaut.
mach jetzt doch Pause ;-)
gruss hary

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige