Top-Themen

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

Excel VBA drei Tabellen verknüpfen mit Scripting.Dictionary

Mitglied: AndiDomme

AndiDomme (Level 1) - Jetzt verbinden

25.08.2011 um 10:48 Uhr, 6756 Aufrufe, 5 Kommentare

Hallo zusammen,

ich bin das erste mal in diesem Forum und hoffe, es kann mir jemand bei meinem Problem weiterhelfen.

Das Problem:

Ich habe Daten in drei Tabellen aus welchen ich eine Übersicht bzw. einen Auszug in einer vierten Tabelle erstellen will.



Datenquellen:

"TeilnehmerBausteine"
0d94be4ab4f73567df5830c74f5ad066 - Klicke auf das Bild, um es zu vergrößern

"Anwesenheit"
8e0d5d0f340f68b15f56898f2fca88da - Klicke auf das Bild, um es zu vergrößern

"Teilnehmer"
6130b205022fe674f1ff1e581d9128cb - Klicke auf das Bild, um es zu vergrößern


- Ergebnisliste:

"Beleg_Übersicht"
7551bed90f4f057dbc1984575d23c4dd - Klicke auf das Bild, um es zu vergrößern

Die ersten drei Tabellen stellen die Quelle für die vierte Tabelle dar wie im Beispiel. Ein wenig kenne ich Scripting.Dictionary schon und kann es auf einen Auszug aus einer Tabelle anwenden - doch geht das irgend wie auch in meinem Fall mit drei Tabellen oder gibt es vielleicht eine andere relativ schnelle Lösung?
Ich hoffe, die Tabellen können meine Vorstellung einigermaßen verständlich rüberbringen - ansonsten füge ich gerne noch zusätzliche Erklärungen bei.


Bis dahin

Andi
Mitglied: bastla
25.08.2011 um 11:11 Uhr
Hallo AndiDomme und willkommen im Forum!

Den Hinweis "Verwende eine Datenbank!" spare ich mir gleich mal ...

Da Du ja in allen Tabellen die "Kd.-Nr" als Schlüssel zur Verfügung hast, könntest Du diese einfach dazu verwenden, die zugeordnete Zeilennummer der Zieltabelle als Wert im "Dictionary" zu speichern - wenn Du dann jeweils sofort die Daten in die Zieltabelle überträgst, kannst Du ja zB per "InStr()" abfragen, ob der neue Wert (zB "E01") bereits in der entsprechenden Spalte enthalten ist ...

Grüße
bastla
Bitte warten ..
Mitglied: AndiDomme
25.08.2011 um 11:40 Uhr
Hallo Bastla,

vielen dank schon mal für deine promte Antwort.

das mit der Datenbank ist eigentlich völlig richtig - nur dürfen wir bei uns leider keine Datenbankanwendungen "zusammenschustern" bzw. benutzen. Aus diesem grunde habe ich ein Excel-Tool gebaut, welches mittlerweile über 100 Sheets und ca. 60 UserForms hat. nach und nach habe ich mir hier und dort Anregungen und Wege für verknüpfungen und Datenpräsentationen zusammengesucht. Das mit der Kd.-Nr. haber ich auch schon in einigen Fällen in welchen es nur um die Abfrage eines Sheets ging hingekriegt. Aber hier die Kombination von drei Sheets scheint mir doch ein wenig anspruchsvoller. ich weiß nicht so richtig, wo ich anfangen soll. Vielleicht kannst Du mir da mal einen Anstoß geben, der über "InStr()" hinausgeht ( mir fehlt hier schlicht die Anwendungskenntnis. Ich will keine komplette Lösung (so unverschämt bin ich dann auch nicht) - nur einen kleinen Denkanstoß.

Danke schon mal

Andi
Bitte warten ..
Mitglied: Biber
25.08.2011 um 12:02 Uhr
[OT]

Zitat von AndiDomme:
das mit der Datenbank ist eigentlich völlig richtig - nur dürfen wir bei uns leider keine Datenbankanwendungen
"zusammenschustern" bzw. benutzen. Aus diesem grunde habe ich ein Excel-Tool gebaut,
welches mittlerweile über 100 Sheets und ca. 60 UserForms hat.

Ich sach' ma' so:
Falls dein Cheffe das jetzt zufällig mitliest, dann könnte ihm die idee kommen, dass selbst eine legal lizenzierte Microsoft-Datenbank um das 5000fache kostengünstiger wäre als eine Handvoll Mitarbeiter, die jeden gatesverdammten Arbeitstach ein paar Stunden lang versuchen, eine Datenbank mit Excel zu simulieren.

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: bastla
25.08.2011 um 12:15 Uhr
Hallo AndiDomme!

Die Idee wäre in etwa folgende: Ausgangspunkt ist natürlich die Teilnehmertabelle - wenn Du diese zeilenweise verarbeitest und daraus die Zusammenfassungstabelle (Spalten A bis C) aufbaust, kannst Du im Dictionary zur "Kd.-NR" als Key die Zeilennummer der Zusammenfassungstabelle als Wert hinterlegen.

Wenn Du im nächsten Schritt die "TeilnehmerBausteine" zeilenweise durchgehst, kannst Du anhand der "Kd.-Nr" aus dem Dictionary die zugehörige Zeile auslesen und prüfen, ob in der Spalte D der Zieltabelle bereits ein entsprechender Eintrag existiert (sollte ja eigentlich für die belegten Bausteine ohnehin nicht der Fall sein) - etwa so:
If InStr(Cells(Zeilennr, "D").Value, Baustein) = 0 Then Cells(Zeilennr, "D").Value = Cells(Zeilennr, "D").Value & " ," & Baustein
wobei "Zeilennr" und "Baustein" Variablen sein sollen, deren Werte Du vorher ausgelesen / ermittelt hast.

Bei dieser Prüfung wäre ggf zu berücksichtigen, dass Teilstrings verglichen werden - "E01" wäre natürlich in "E010" enthalten und würde nicht eingetragen werden - konsistente Kürzel (immer gleiche Stellenanzahl) und Sortierung der Quell-Tabelle sollten diesem Problem aber vorbeugen können ...

Die restlichen Spalten sind dann anhand des "Ja" bzw überhaupt eines Eintrages (Note) in der "Anwesenheitstabelle" leicht zu befüllen ...

Grüße
bastla
Bitte warten ..
Mitglied: AndiDomme
25.08.2011 um 12:17 Uhr
Hallo Biber,

rennst Du bei mir offene Türen ein. Jedoch bleibt bei einer "Firma" mit ca. 20.000 Mitarbeitern manchmal die Vernunft auf der Strecke. Wenn Du nur einem Prozent von denen erlaubst, von Fall zu Fall an der Datenbank rum zu schrauben, kannst Du Dir ja vorstellen , was das Ergebnis ist. Unabhängig davon ist unsere "Bude" gerade dabei, auf ein neues Datenbanksystem umzustellen - kann nur noch Jahre dauern (bis dato Lotus). Das heißt aber im Umkehrschluss - jeder helfe sich so gut er kann.
Und ich habe dann halt für unsere Niederlassung erst mal das Excel-Tool gestrickt welches mittlerweile auch von anderen Niederlassungen gerne als Hilfe genutzt wird. Wenn dann mal eine neue Datenbank da ist - habe ich halt ein wunderbares Exceltraining hingelegt - kann ja nicht schaden.


Bis dahin

Andreas
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

EXCEL VBA Termindaten aus Tabelle Filtern

Frage von t3jxbusMicrosoft Office

Hallo, ich habe hier folgenden Codeblock gefunden für VBA im Excel: Das ganze funktioniert auch soweit super. Ich beschreibe ...

VB for Applications

Excel 2013 VBA Tabellen aufrufen

Frage von Just4fun1990VB for Applications5 Kommentare

Hallo Administrator.de User, ich habe leider folgendes Problem. Und zwar soll Excel bei einem inaktiven Fenster eine Tabelle aufrufen. ...

Datenbanken

Join über drei Tabellen

gelöst Frage von KimaroDatenbanken5 Kommentare

Hallo Admins, ich versuche gerade eine SQL Abfrage für meine Website zu basteln, aber irgendwie klappt das nicht so ...

VB for Applications

VBA Programm welches Personalien abfragt und in eine Excel-Tabelle einfüllt

gelöst Frage von 121803VB for Applications9 Kommentare

Hallo zusammen Ich habe den Auftrag, ein Programm zu erstellen, welches Personalien abfragt und in eine Excel-Tabelle einfüllt. Folgende ...

Neue Wissensbeiträge
Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 1 TagSonstige Systeme4 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Datenschutz

Microsoft und DSGVO - ob das wohl jemals klappt (Probleme beim Datenabfluss für Office Pro Plus)?

Tipp von VGem-e vor 1 TagDatenschutz3 Kommentare

Servus Kollegen, siehe Aber wer setzt schon MS Office Pro Plus ein? Wie dann der Stand beim "normalen" MS ...

Windows 10

Macht Windows 10.1809 Probleme mit gemappten Netzlaufwerken (betrifft wohl insbes. AMD-Hardware und Trend Micro AV-Produkte)?

Tipp von VGem-e vor 1 TagWindows 103 Kommentare

Moin Kollegen, grad dazu gefunden und Hatten wir dies nicht bei früheren W10-Upgrades ebenfalls? Da bleibt nur, das Upgrade ...

Humor (lol)

Das neue Miniatur Wunderland OFFICIAL VIDEO - worlds largest model railway - railroad

Information von StefanKittel vor 1 TagHumor (lol)2 Kommentare

Hallo, wer noch nie im Miniatur Wunderland war, sollte es dringend mal nachholen. Es gibt eine neues Video. Viele ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL Monitoring Tool - Quick and dirty?
Frage von george44DSL, VDSL15 Kommentare

Liebe Gemeinde, ich suche ein einfaches und vor allem schnell zu installierendes Monitoring-Tool zur kontinuierlichen Dokumentation (nur) der Internetanbindung. ...

Netzwerkgrundlagen
Werksreset HP 1920S-24G
gelöst Frage von HenereNetzwerkgrundlagen14 Kommentare

Servus zusammen, ich habe mir 2 neue Switche zugelegt, doch ich komme damit nicht ganz klar. Waren Vorführgeräte zum ...

LAN, WAN, Wireless
Gäste-WLAN durch DD-WRT AP nach einem MikroTik Routerboard
Frage von NukolarLAN, WAN, Wireless14 Kommentare

Hallo, wie der Titel schon sagt möchte ich gerne ein Gäste-WLAN innerhalb eines bestehenden LANs einrichten. Dass die Gäste ...

Exchange Server
Outlook findet Postfach nicht
Frage von MaximaxExchange Server11 Kommentare

Hallo, und zwar haben wir auf der Arbeit ein kleines (großes) Exchange 2016 Problem. Exchange meldete gestern, dass die ...