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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Excel nach bestimmten Schema durchlaufen und Daten kopieren

Mitglied: Pat.bat

Pat.bat (Level 1) - Jetzt verbinden

13.08.2019 um 10:45 Uhr, 711 Aufrufe, 15 Kommentare, 1 Danke

Hallo zusammen,

Ich habe eine Excel Datei, die wie ungefähr so aufgebaut ist:

excelauslesen - Klicke auf das Bild, um es zu vergrößern

Dabei stellt die Range zwischen Start und Ende immer einen Datensatz da, den ich so in ein neues Excel Dokument kopieren möchte.
Bei Start steht immer der Name der jeweiligen Einrichtung.
Daran soll erkannt werden, welche Datenblöcke mit ins neue Excel Dokument kopiert werden.

Diese rohe Excel Datei besteht aus einer "Liste" von Einrichtungsblöcken, wobei dich diese nun in jeweils eigene Dateien kopieren möchte.

Dabei ist die Datei so Aufgebaut, das am Start des Blocks der Name der Einrichung steht und am Ende des Blocks immer Die Summe der Kosten.
Danach folgen immer 7 Zeilen die unwichtig sind bevor der nächste Block startet.

Der Prozess wird aus einer VB.Net Application angestoßen. Wobei ich mir vorstellen kann, das die Verarbeitung der Daten in Excel mit VBA vorgenommen werden könnte (Einfacher als es in VB.Net zu schreiben???)

Unter anderem bin ich mir jetzt noch sicher wie man diese Aufgabe am besten angeht.

Ich könnte jetzt sagen (Pseudocode):

Wäre das ein Weg den man gehen könnte, oder gibt es da effizientere Wege?

Kann man das genauso gut in VB.net machen oder macht sich sowas in VBA etwas komfortabler (obwohl sich beide ja ziemlich gleich sind)?

Weitere Infos: Die Excel Datei wird aus einem externen Programm heraus generiert. In meiner VB.Net Application würde ich diese generierte Datei auswählen und auf einen Button "Listen erstellen" drücken, der dann den Prozess ausführt.
Mitglied: 140777
13.08.2019, aktualisiert um 12:44 Uhr
Wat für dich zum fertsch machen (Speicherung der erzeugten Mappen unter deinen gewünschten Dateinamen kannst du ja hoffentlich noch selbst ergänzen )
Bitte warten ..
Mitglied: Pat.bat
13.08.2019 um 15:22 Uhr
Wow super, das ist schonmal eine große Hilfe.

Da die Zelle B15 mehr enthält als nur den Namen der Einrichtung (unter anderem auch die Adresse), habe ich definition von result so abgeändert:

wobei der xlPart Teil eigentlich ja wie "Text.Contains" funktionieren sollte. Allerdings findet er bei mir nichts.

Die Zelle sieht unter anderem so aus:

Funktioniert das dort anders mit xlPart oder warum findet er nicht den Eintrag in der Zelle?
Bitte warten ..
Mitglied: 140777
13.08.2019, aktualisiert um 15:34 Uhr
Weil im Beispiel-Code oben nur Spalte A ab Zeile 15 - Ende durchsucht wird
Bitte warten ..
Mitglied: Pat.bat
13.08.2019 um 15:53 Uhr
Zitat von 140777:

Weil im Beispiel-Code oben nur Spalte A ab Zeile 15 - Ende durchsucht wird

Sorry, hatte vergessen den Code darüber zu posten:

So hab ich es stehen und er findet nichts.
Bitte warten ..
Mitglied: 140777
13.08.2019, aktualisiert um 15:57 Uhr
Die Zelle ist verbunden oder passe mal den MatchCase an, kommt der Inhalt aus einer Formel?
Bitte warten ..
Mitglied: Pat.bat
13.08.2019, aktualisiert um 16:00 Uhr
Zitat von 140777:

Die Zelle ist verbunden oder passe mal den MatchCase an, kommt der Inhalt aus einer Formel?

genau die Zelle ist verbunden und hat einen Textumbruch drin.

Der Inhalt steht as Value drin, also nicht per Formel
Bitte warten ..
Mitglied: 140777
13.08.2019, aktualisiert um 16:11 Uhr
Zitat von Pat.bat:
genau die Zelle ist verbunden und hat einen Textumbruch drin.
Da hast du deinen Grund, darin findet der nichts wenn man den Suchbereich nicht auf alle Spalten der Verbundenen ausweitet. Deswegen habe ich nach der eindeutigen Spaltenbeschriftung "Fallnummer" gesucht und dann die Zelle eins nach oben geschoben , eine Adresse oder Name kann sich ja ändern.
Du kannst auch einen anderen festen Bezug nehmen und dann einen anderen Offset davon definieren.
Bitte warten ..
Mitglied: Pat.bat
13.08.2019, aktualisiert um 16:17 Uhr
Zitat von 140777:

Zitat von Pat.bat:
genau die Zelle ist verbunden und hat einen Textumbruch drin.
Da hast du deinen Grund, darin findet der nichts wenn man den Suchbereich nicht auf alle Spalten der Verbundenen ausweitet. Deswegen habe ich nach der eindeutigen Spaltenbeschriftung "Fallnummer" gesucht und dann die Zelle eins nach oben geschoben , eine Adresse oder Name kann sich ja ändern.


Mit Fallname findet er trotzdem nichts.

Aber wenn ich nach Fallname suche und sage er soll eine Zelle hoch rutschen und ab da an bis Summe alles kopieren, woher weiss er dann den Einrichtungsnamen und kann damit eine neue Tabelle erstellen?

Zum Hintergrund:

Eine Einrichtung hat einen Namen, wie hier zb. "ANKER Sozialarbeit Gemeinnützige GmbH".
Eine Einrichtung kann aber mehrere Standorte haben. D.h. alle Blöcke mit dem Namen der Einrichtung unabhängig von der Adresse sollen in eine neue Tabelle kopiert werden.

Daher meine Überlegung, die Zelle B15 mit einer Art Contains zu überprüfen. Der Name der jeweiligen Einrichtung ist immer gleich, aber die Adresse kann unterschiedlich sein.

Nachtrag:

Achso jetzt weiß ich was du bezwecken wolltest. Er zieht sich also die Zelle über Fallname und nimmt diese als Anhaltspunkt weitere Blöcke zu finden, die mit dem selben Wert anfangen.

Nur gibt es wie gesagt, 2 Probleme. Auch mit Fallname findet er nichts und der Name ist gleich, nur die Adresse ist unterschiedlich.
Bitte warten ..
Mitglied: 140777
13.08.2019, aktualisiert um 16:19 Uhr
Zitat von Pat.bat:
Mit Fallname findet er trotzdem nichts.
Dann ist die wohl auch verbunden. Funktioniert hier testweise einwandfrei, ohne Quelldaten vorliegen zu haben kann man ja leider nur raten.
Aber wenn ich nach Fallname suche und sage er soll eine Zelle hoch rutschen und ab da an bis Summe alles kopieren, woher weiss er dann den Einrichtungsnamen und kann damit eine neue Tabelle erstellen?
Mit entsprechendem Offset kein Problem
Wenn hier so viel mit Zellverbunden gearbeitet wird wirst du wohl doch auf eine Schleife ausweichen müssen außer du findest noch ein Merkmal jedes Datensatzes in dieser oder einer anderen Spalte anhand dessen man über einen Offset die Anfangszelle bestimmen kann.
Bitte warten ..
Mitglied: Pat.bat
13.08.2019 um 16:29 Uhr
Zitat von 140777:

Zitat von Pat.bat:
Mit Fallname findet er trotzdem nichts.
Dann ist die wohl auch verbunden. Funktioniert hier testweise einwandfrei, ohne Quelldaten vorliegen zu haben kann man ja leider nur raten.
Aber wenn ich nach Fallname suche und sage er soll eine Zelle hoch rutschen und ab da an bis Summe alles kopieren, woher weiss er dann den Einrichtungsnamen und kann damit eine neue Tabelle erstellen?
Mit entsprechendem Offset kein Problem
Wenn hier so viel mit Zellverbunden gearbeitet wird wirst du wohl doch auf eine Schleife ausweichen müssen außer du findest noch ein Merkmal jedes Datensatzes in dieser oder einer anderen Spalte anhand dessen man über einen Offset die Anfangszelle bestimmen kann.

es gibt da noch Spalte N wo das Wort betrag steht. Die Zelle ist nicht verbunden, aber als Textumbruch eingestellt.

Dort habe ich den Code dann wie folgt abgeändert, aber scheint in eine Endlosschleife zu laufen:

Der Name der Einrichtung befindet sich in Zelle B15 (Verbunden und Textumbruch)
Bitte warten ..
Mitglied: 140777
LÖSUNG 13.08.2019, aktualisiert um 17:05 Uhr
Geht so auch nicht.
Wie gesagt mach's mit einfacher Schleife über eine Spalte oder löse den Verbund der Zellen temporär im Code für die Suche. Ohne das Quell-Sheet leider immer noch Glaskugel.

Bitte warten ..
Mitglied: Pat.bat
13.08.2019 um 16:59 Uhr
Hallo,

ich habe die Datei mal soweit es geht anonymisiert

Testexcel.xlsx

Mit folgendem Stück code bekomme ich zumindest nun die richtigen Zellen:

Allerdings gibts eine Exception nach dem ersten While durchlauf:

exc - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: 140777
13.08.2019, aktualisiert um 17:07 Uhr
Hatte den angepassten Code für die Sub nachträglich im letzten Kommentar gepostet, damit funktioniert es hier im Test mit deiner bereitgestellten Datei (Danke!).
Bitte warten ..
Mitglied: Pat.bat
14.08.2019 um 15:16 Uhr
Zitat von 140777:

Hatte den angepassten Code für die Sub nachträglich im letzten Kommentar gepostet, damit funktioniert es hier im Test mit deiner bereitgestellten Datei (Danke!).

Danke, mit folgenden Änderungen funktioniert es nun perfekt in der VB App:

Jetzt hab ich noch die Aufgabe bekommen, das ganze in PowerShell zu schreiben, damit dieses Stück Code auch als Teil eines Batches ausgeführt werden kann (Windows Aufgabenplanung). Puh, jetzt muss ich erstmal schauen wie man sowas in PowerShell macht.

Trotzdem vielen Dank für die super Hilfe hier
Bitte warten ..
Mitglied: 140777
14.08.2019, aktualisiert um 15:20 Uhr
Joa, nützt nur keinem was wenn er nicht den gleichen Aufbau hat ...
wie man sowas in PowerShell macht.
Genau so .
In Powershell kannst du ebenfalls auf das COM-Objekt zugreifen, oder gleich den ganzen VB.Net Code über Add-Type ausführen.
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Word bestimmt Sprache selbst
gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Vmware

VMWARE - Alarmdefinitionen für bestimmt VMMaschinen ausschließen

Frage von inspiratioVmware6 Kommentare

Hallo zusammen, kann man Standard-Alarmdefinitionen für einzelne VMs deaktivieren? Umgebung: Hypervisor: VMWARE ESXi 6.5 Danke und Viele Grüße

PHP

PHP Array mixen nach Schema

gelöst Frage von LorderichPHP3 Kommentare

Hallo zusammen, irgendwie stehe ich nun seit knapp 2 Tagen ein bisschen wie der Ochse vor Berg und sehe ...

Exchange Server

Exchange 2010 SP2 Update - Schema-Änderung

gelöst Frage von Rabauke84Exchange Server2 Kommentare

Guten Morgen, nach einiger Zeit plane ich ein Exchange Update unserer 2010-Umgebung auf SP2 und dann auf SP3. Vorher ...

Neue Wissensbeiträge
Datenschutz
Datenschutzproblem?
Information von Penny.Cilin vor 1 TagDatenschutz5 Kommentare

Hallo, gerade im Heise Newsticker gefunden: Frage: Warum wurden die Akten nicht ordnungsgemäß gesichert bzw. aufbewahrt? Patientenakten sind 30 ...

Windows Netzwerk

SCOM ( System Center Operations Manager ) um eine E-Mailschnittstelle erweitern

Anleitung von Juanito vor 2 TagenWindows Netzwerk

Einleitung System Center Operations Manager (SCOM) ist Microsoft's Lösung zum Überwachen von Servern. Dazu zählt die generelle Erreichbarkeit, Festplattenspeicher, ...

Humor (lol)
BioShield gegen 5G
Information von magicteddy vor 3 TagenHumor (lol)3 Kommentare

Moin wer sich gegen die hochgefährlichen 5G schützen möchte wird hier fündig: 5GBioShield "gegen 5G-Strahlung" Ich glaube, ich sollte ...

Windows Server

ScheduledTasks mit einem Group-Managed-Service-Account (GMSA) ausführen

Anleitung von ToniHo vor 3 TagenWindows Server

Hallo zusammen, wer schonmal versucht hat ein Group-Managed-Service-Account (GMSA) auf einem bestehenden ScheduledTask einzutragen, ist an der GUI vermutlich ...

Heiß diskutierte Inhalte
Microsoft
Zugriffsprobleme Festplatte
Frage von MiMa89Microsoft40 Kommentare

Hallo Zusammen, ich hoffe Ihr könnt mir bei folgendem Problem helfen. Ich habe eine externe Festplatte die nicht mehr ...

Microsoft
100 Prozent CPU Last gleich Volllast, Pustekuchen, nicht bei Microsoft!!! VOL 2
Frage von MysticFoxDEMicrosoft19 Kommentare

Liebe Freunde der Präzision und der Norm, ich möchte in diesem Beitrag konstruktiv an den folgenden Vorgängerbeitrag anschliessen, der ...

SAN, NAS, DAS
Entscheidungshilfe Storage für Netzwerkupgrade
Frage von m-jelinskiSAN, NAS, DAS14 Kommentare

Hallo zusammen, unsere Server und Storage-Systeme sind nun 6 Jahre alt und überfällig ausgetauscht zu werden. Daher haben wir ...

Microsoft
USB-Ports sperren mit Software
Frage von trabajadorMicrosoft10 Kommentare

Hallo, gesucht wird eine Software, welche alle USB-Ports sperrt bis auf für Maus, Tastatur und einem Admin-USB-Stick. Verwendet wird ...