Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Wie in Excel bedingte Summe über mehrere Tabellenblätter hinweg?

Frage Entwicklung VB for Applications

Mitglied: diwaffm

diwaffm (Level 2) - Jetzt verbinden

02.03.2010 um 16:51 Uhr, 11480 Aufrufe, 3 Kommentare

Hi Leute,

ich habe hier eine Excel-Datei mit mehreren Tabellenblättern - für jeden Kunden eines sowie ein (geplantes) Summenblatt.

In den Kundenblättern gibt es eine Spalte mit dem Zahlungsziel und der Summe.
Nun würden wir gerne auf dem Summenblatt den Namen des Kunden, das Datum des Zahlungsziels und die Summe auflisten, wenn ein Zahlungsziel gegeben ist - und zwar für alle Kunden...

Notfalls könnte man die einzelnen Blätter "fest verdrahtet" ansprechen - das halte ich aber für wenig elegant - und könnte problematisch werden, wenn eim Kunde hinzukommt oder gestrichen wird.
Etwas eleganter, wäre wohl der Weg über eine Hilfstabelle, in der die Kunden und ihre Zuordnung zu den einzelnen Blättern gelistet sind.

Ideal wäre aber eine Lösung, die automatisch über alle Blätter läuft...
Doch da fällt mir nichts prikelndes zu ein...

ciao

dirk
Mitglied: WhisperingDeath
02.03.2010 um 18:26 Uhr
Ich würde ein eigenes Tabellenblatt anlegen, wo die Kunden mit einer Nummer versehen sind.
Danach würd ich in dem Summenblatt eine wenn funktion verschachtelt mit einer sverweis funktion machen.

Das sollte dann so aussehen:

wenn(A2<>0;sverweis(Suchkriterium;Matrix;Spaltenindex;FALSCH);"")

Je nach dem welchen Spaltenindex du eingibst kann zB Name, Summe usw. ausgegeben werden.

ich hoffe ich konnte dir helfen

lg
Bitte warten ..
Mitglied: bastla
02.03.2010 um 18:32 Uhr
Hallo diwaffm!

Da Du mit Details ja eher sparsam warst, ein VBA-Beispiel mit angenommenen Werten und für den Fall, dass es für jeden Kunden mehrere Summen (jeweils eben mit oder ohne Zahlungsziel) gibt:
01.
Sub ErstelleListe() 
02.
Summenblatt = "Gesamt" 
03.
AbZeileSum = 2 
04.
AbSpalteSum = 1 'Spalte A 
05.
 
06.
AbZeileKunde = 2 
07.
SpalteZZ = 5 'Spalte E 
08.
SpalteS = 7 'Spalte G 
09.
 
10.
'Alte Daten aus Summenblatt löschen 
11.
Range(Cells(AbZeileSum, AbSpalteSum), Cells(AbZeileSum, AbSpalteSum).End(xlDown).End(xlToRight)).ClearContents 
12.
ZeileSum = AbZeileSum 
13.
For Each Blatt In Worksheets() 
14.
    If Blatt.Name <> Summenblatt Then 
15.
        ZeileKunde = AbZeileKunde 
16.
        Do While Blatt.Cells(ZeileKunde, SpalteS) <> "" 
17.
            If Blatt.Cells(ZeileKunde, SpalteZZ) <> "" Then 
18.
                With Worksheets(Summenblatt) 
19.
                    .Cells(ZeileSum, AbSpalteSum) = Blatt.Name 
20.
                    .Cells(ZeileSum, AbSpalteSum + 1) = Blatt.Cells(ZeileKunde, SpalteZZ) 
21.
                    .Cells(ZeileSum, AbSpalteSum + 2) = Blatt.Cells(ZeileKunde, SpalteS) 
22.
                End With 
23.
                ZeileSum = ZeileSum + 1 
24.
            End If 
25.
            ZeileKunde = ZeileKunde + 1 
26.
        Loop 
27.
    End If 
28.
Next 
29.
MsgBox "Fertig." 
30.
End Sub
Außerdem bin ich davon ausgegangen, dass sich der Kundenname aus dem jeweiligen Tabellennamen ergibt.

Grüße
bastla
Bitte warten ..
Mitglied: diwaffm
04.03.2010 um 09:49 Uhr
Merci bastla,

Dein Skript hat es (beinahe) getroffen...
Ich musste es lediglich dahingehend anpassen, dass es auch Zeilen in der Tabelle gibt, in denen die Rechnungssumme leer sein kann.

Die Schleife muss sich also an der Spalte mit der Rechnungsnummer und nicht der mit der Summe orientieren.
Sonst wird nach der ersten leeren Summe die Berechnung abgebrochen.
Aber: Wie sollst Du das ohne die original-Datei wissen.

Was mir gefehlt hat, war die Schleife "For Each Blatt in Worksheets()".

Danke

Dirk
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst EXCEL Bedingte Formatierung wenn bestimmtes Jahr im Datum ist (6)

Frage von Hobi84 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel bedingte Formatierung per Formel mit übernehmen (16)

Frage von Florian86 zum Thema Microsoft Office ...

VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...