Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
516to520
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
516to520
516to520
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte bei best. Bedingung summieren - VBA????

Werte bei best. Bedingung summieren - VBA?
15.11.2004 11:30:43
birgit
Hallo Forum!!!
Habe eine knifflige Aufgabe, die ich wohl ohne Euch nicht lösen kann.
Folgendes Problem:
Habe eine Excel-Datei mit mehreren sheets.
Im sheet 1 in der Zelle C2 steht eine vierstellige Nummer. Nun soll in allen darauffolgenden sheets (sheets 2 bis sheets.count) nach dieser Nummer in der Zelle E45 gesucht werden. Wird die Nummer gefunden soll die Werte in der Zelle G45 der entsprechenden sheets in der Zelle C3 vom sheet 1 summiert werden.
Wie müsste so ein Makro aussehen?
Hoffe Ihr könnt mir helfen!
Gruß
birgit

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte bei best. Bedingung summieren - VBA?
15.11.2004 11:35:07
Frank
Hi
haben Deine Arbeitsblätte eine bestimmte Namenskonvetion?. Wenn ja, geht das auch ohne VBA. agenommen sie heißen Tabelle2 - Tabelle10, dann nutze
=SUMMENPRODUKT(SUMMEWENN(INDIREKT("'" & ZEILE(2:10) $ "'!E45");C2;INDIREKT("'" & ZEILE(2:10) $ "'!G45")))
Gruß
Frank
AW: Habe Bsp.-Datei hochgeladen - VBA?
Ingolf
Hallo Birgit,
nachfolgend hab ich das Makro nochmal auf deine hochgeladene Datei angepasst, die war vorhin noch nicht da.

Sub Addieren()
Dim wks As Worksheet
Dim dblSumme As Double
Dim varPruef As Variant
Dim lngZiel As Long
With ThisWorkbook.Worksheets(1)
For lngZiel = 1 To .Cells(Rows.Count, 2).End(xlUp).Row
If .Cells(lngZiel, 2) = "Personalkosten" Then
dblSumme = 0
For Each wks In ActiveWorkbook.Worksheets
If wks.Index > 1 Then
varPruef = .Cells(lngZiel - 1, 3) 'Prüfzahl in Variable übergeben
If wks.Range("E45") = varPruef Then  'Wenn Eintrag in E45 der Prüfzahl entspricht...
If IsNumeric(wks.Range("G45")) = True Then  'Wenn Zahl...
dblSumme = dblSumme + wks.Range("G45")   '...addieren,...
Else                                        '...sonst...
MsgBox "Falscher Eintrag!" & vbCr & vbLf & vbLf & "Wert in Zelle G45 der Arbeitsmappe " & _
vbCr & vbLf & vbLf & "    " & Chr(34) & wks.Name & Chr(34) & vbCr & vbLf & vbLf & _
" erwartet.", vbCritical + vbOKOnly, "Addieren"       '...Fehlernachricht
wks.Activate
Range("G45").Select  'Fehlerhafte Zelle zur Korrektur auswählen
Exit Sub
End If
End If
End If
Next wks
.Cells(lngZiel, 3) = dblSumme 'Summe eintragen
End If
Next lngZiel
End With
End 

Sub  'Addieren
Gruß Ingolf

Anzeige
AW: Werte bei best. Bedingung summieren - VBA?
Ingolf
Hallo Birgit,
als VBA-Makro:

Sub Addieren()
Dim wks As Worksheet
Dim dblSumme As Double
Dim varPruef As Variant
varPruef = ActiveWorkbook.Worksheets(1).Range("C2")  'Prüfzahl in Variable übergeben
dblSumme = 0
For Each wks In ActiveWorkbook.Worksheets
If wks.Index > 1 Then
If wks.Range("E45") = varPruef Then  'Wenn Eintrag in E45 der Prüfzahl entspricht...
If IsNumeric(wks.Range("G45")) = True Then  'Wenn Zahl...
dblSumme = dblSumme + wks.Range("G45")   '...addieren,...
Else                                        '...sonst...
MsgBox "Falscher Eintrag!" & vbCr & vbLf & vbLf & "Wert in Zelle G45 der Arbeitsmappe " & _
vbCr & vbLf & vbLf & "    " & Chr(34) & wks.Name & Chr(34) & vbCr & vbLf & vbLf & _
" erwartet.", vbCritical + vbOKOnly, "Addieren"       '...Fehlernachricht
wks.Activate
Range("G45").Select  'Fehlerhafte Zelle zur Korrektur auswählen
Exit 

Sub      'Makro zum korrigieren abbrechen, danach Neustart (manuell)
End If
End If
End If
Next wks
ActiveWorkbook.Sheets(1).Range("C3") = dblSumme     'Summe eintragen
End 

Sub  'Addieren
Gruß Ingolf

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige