Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 11863 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 ..
Ähnliche Inhalte
Microsoft Office
gelöst Bedingte Formatierung in Excel für verschiedene Dezimalstellen (6)

Frage von winget zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel Tabelle nach Spalte sortieren und Daten auf Tabellenblätter separieren (4)

Frage von Fastinator zum Thema Microsoft Office ...

Microsoft Office
gelöst VBA Excel Tabellenblätter als PDF speichern (8)

Frage von Florian86 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (31)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Windows Netzwerk
Netzwerk Neustrukturierung (15)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...