Excel - Zeichen suchen und Text bis dahin kopieren

Mitglied: Paescu

Paescu (Level 1) - Jetzt verbinden

14.08.2006, aktualisiert 28.08.2006, 56765 Aufrufe, 19 Kommentare

Hallo zusammen

wieder einmal eine weitere Frage von mir :-D face-big-smile
Diesmal geht es um Excel und VBA. Ich habe einen Auftrag, bei dem ich unter Anderem in einer Zelle ein Raute-Zeichen oder einen Abstand (je nachdem) suchen muss, den Text vor diesem Zeichen in ein Array und den Text danach in ein anderes Array speichern muss.
Nur habe ich keine Ahnung, wie das geht und irgendwie muss es ja gehen... Wäre sehr froh über eine baldige Antwort...
Mitglied: 8644
8644 (Level 3)
14.08.2006 um 14:47 Uhr
Hi,

A1: 123asc#as232

Für den Text vor der Raute:
=LINKS(A1;FINDEN("#";A1)-1)

Für den Text nach der Raute:
=RECHTS(A1;LÄNGE(A1)-FINDEN("#";A1))

Psycho
Bitte warten ..
Mitglied: Paescu
14.08.2006 um 15:29 Uhr
Danke für deine Antwort. Es funktioniert zwar, aber habe mich ein bisschen unklar ausgedrückt... Ich sollte dies per VBA tun können, nicht direkt mit ner Formel... Makro aufzeichnen bringt nichts...

Pascal
Bitte warten ..
Mitglied: 8644
8644 (Level 3)
14.08.2006 um 15:31 Uhr
Hi,

ja, das mit dem unklar Ausdrücken ist ein Problem ;-) face-wink
Was soll denn am Ende mit den entstandenen Werten passieren?

Psycho
Bitte warten ..
Mitglied: Paescu
14.08.2006 um 15:34 Uhr
Ich möchte diese Werte in ein Array speichern und danach in einem neuen Dokument einfügen...
Bitte warten ..
Mitglied: 8644
8644 (Level 3)
14.08.2006 um 15:47 Uhr
Erstmal zur Erklärung: Eine Zeichenkette (String) ist bereits ein Array, welches aus einzelnen Zeichen besteht, welche über ihren Index angesprochen werden können:
Bsp.
Mein_Feld = "Psycho Dad"
Ein_Zeichen = Mein_Feld(3)

Ein_Zeichen ==> "y"

Und nun zu dir: Ich bin mir sicher, dir helfen zu können. Dazu sind dann aber doch genauere Angaben nötig. In welcher (welchen) Zellen stehen die zu analysierenden Daten?
In was für ein Dokument sollen die "Zieldaten" gespeichert werden. Wenn es sich hier auch um eine Excel-Tabelle handelt, geht es auch ohne Makro.
Beschreib dein Vorhaben mal etwas genauer!

Psycho

P.S. Klingt ja ganz schön Oberlehrermäßig -> Sorry 8-)
Bitte warten ..
Mitglied: Paescu
14.08.2006 um 16:18 Uhr
Aaalso ;-) face-wink mein Auftrag etwas genauer: Ich habe eine ziemlich umfangreiche Tabelle von einer Mitarbeiterin bekommen. Diese will nun, dass ich Daten aus vier verschiedenen Registern in ein neu erstelltes Dokument schreibe. Im ersten Register, das bearbeitet werden muss, ist in Zelle A2 die Anzahl (geht um Bestellungen). Nebenan in der Zelle B2 ist dann eine Part-Nummer. Diese besteht aus ein paar Zeichen, einem Raute-Zeichen oder einem Leerschlag und dann wieder ein paar Zeichen, also z.B. so: U5466S#4NK
Nun muss ich alle "vollen" Zellen in diesem Register durchgehen (mit "alle" meine ich alle Zellen in den Spalten A und B) und diese will ich in ein Array speichern. Mit der Anzahl ist das kein Problem, geht super. Jedoch möchte die Mitarbeiterin, dass die Part-Nummer in Spalte B in eine Artikel-Nummer und eine Option-Nummer aufgeteilt wird. Der Teil vor dem Raute-Zeichen soll Artikel-Nummer sein, der Teil danach Option-Nummer. Die Nummern sind immer unterschiedlich lang, kann also nicht immer die gleiche Anzahl stellen bis zum Raute-Zeichen nehmen... Ich möchte dann von jedem Artikel die Artikel-Nummer und die Option-Nummer in das Array speichern. Wenn alles durch ist, muss das nächste benötigte Register angewählt werden und dasselbe Spiel nochmal, einfach in ein anderes Array. Wenn dann alle vier Register durch sind, wird ein neues Dokument erzeugt, wo dann die Anzahl, Artikel-Nummer und Option-Nummer eingetragen wird...

Ui, jetzt habe ich aber genug geschrieben :-P Hoffe jetzt genügend Auskunft gegeben zu haben und wenn nicht, dann einfach nachfrage ;-) face-wink

Gruss Pascal

edit: Habe noch vergessen zu sagen, dass das Raute-Zeichen oder der Leerschlag wegfallen kann. ;-) face-wink
Bitte warten ..
Mitglied: 8644
8644 (Level 3)
14.08.2006 um 19:43 Uhr
Hi,

also wenn das so ist, würde ich folgende Variante wählen:

Du benutzt die beiden Formeln und kopierst sie nach unten.
Dann markierst du die Ergebnisse und kopierst sie in die Zwischenablage.
Nun öffnest du das neue Dokument und gehst über das Menü Bearbeiten -> Inhalte einfügen -> Werte.
Das geht meiner Meinung nach am schnellsten.

Psycho
Bitte warten ..
Mitglied: Paescu
15.08.2006 um 08:21 Uhr
Das wäre natürlich schon ne Variante, aber kann ich dann einfach vom einen zum anderen Dokument wechseln? Denn wenn ich das so mache, muss ich ja nach jedem Register die Daten in das neue Dokument schreiben... Geht das so eifach?

Pascal
Bitte warten ..
Mitglied: 8644
8644 (Level 3)
15.08.2006 um 08:27 Uhr
Moin,

klar geht das. Du öffnest beide Dokumente und wechselst über das Menü Fenster hin und her.

Psycho
Bitte warten ..
Mitglied: Paescu
15.08.2006 um 08:47 Uhr
Ich meine alles automatisch... Es soll am Ende eine Arbeitserleichterung für die Mitarbeiterin werden...
Bitte warten ..
Mitglied: 8644
8644 (Level 3)
15.08.2006 um 09:00 Uhr
Moin,

theoretisch geht alles! Aber was du jetzt möchtest, geht schon weit über das hinaus, was ich unter einen Tipp im Forum geben verstehe! Sollte ich etwas Zeit und meine soziale Ader finden, lässt sich da vielleicht was machen.

Psycho
Bitte warten ..
Mitglied: Paescu
15.08.2006 um 09:23 Uhr
Nun, da kann man nichts machen ;-) face-wink
Möchte mich ausserdem noch bedanken, dass du mir diese Tipps überhaupt gegeben hast.

Des Weiteren komme ich der Lösung immer näher, hoffe, ich habe es bald einmal... ;-) face-wink

Pascal
Bitte warten ..
Mitglied: Paescu
21.08.2006 um 10:32 Uhr
So, habe es geschafft, dass es getrennt wird, nun muss ich das nur noch automatisieren und alles in ein Array und nicht in ne Zelle schreiben...

Meine Lösung sieht so aus:
Hat vielleicht jemand noch Verbessernungsvorschläge oder so etwas?
Bitte warten ..
Mitglied: Biber
21.08.2006 um 12:09 Uhr
Moin Päscu,
VB ist ja nicht gerade mein Fachgebiet,...
Aber ein erstes Zusammendampfen Deines Ansatzes ergibt diesen Basis-Schnipsel:
Wenn also in der ersten Spalte diese Strings a la "U5466S#4NK" stehen, werden in die zwei Spalten rechts daneben "U5466S" und "4NK" geschrieben.
Und zwar ROWMAX = 5000x.

Hope that Helps
Biber
Bitte warten ..
Mitglied: Paescu
23.08.2006 um 09:05 Uhr
:-) face-smile danke, auch nicht n schlechter Ansatz... *-) Es funktioniert nun mit meinem Ansatz auch, aber irgendwie finde ich, deiner sieht besser aus und ist eigentlich auch nich so kompliziert... mal schauen, was ich noch machen werde.

Pascal
Bitte warten ..
Mitglied: miniversum
24.08.2006 um 13:30 Uhr
Nur als Tip:
Schau dir mal in der Hilfe von vba die Split-Funktion an. Ist das das was Du suchst?

miniversum
Bitte warten ..
Mitglied: Paescu
28.08.2006 um 10:04 Uhr
@miniversum

Funktioniert die Split-Funktion auch mit zweidimensionalen Arrays? Habe nur was mit eindimensionalen Arrays gefunden in der Hilfe...

Pascal
Bitte warten ..
Mitglied: miniversum
28.08.2006 um 19:30 Uhr
Die Split Funktion liefert die doch die zwei Zeichenfolgen in Variablen. Wo die dann "hingeschoben" werden ist ja egal.

miniversum
Bitte warten ..
Mitglied: Paescu
28.08.2006 um 19:40 Uhr
Hmm... *-) hat was, dann muss ich einfach noch diese Variabeln dem Array zuweisen... So weit habe ich gar noch nicht gedacht... Habe meine alte, 15-zeilige Version beibehalten ;-) face-wink
Ich habe einfach probiert, diese zwei Strings direkt in das zweidimensionale Array zu speichern, aber mit der Split-Funktion ist da nichts zu machen... Werde es mit Variabeln probieren, morgen dann ;-) face-wink
Danke noch für den Tipp

Pascal
Bitte warten ..
Heiß diskutierte Inhalte
Microsoft
Mitteilung an alle bei Störungen in der IT
gelöst David.B2D45Vor 18 StundenFrageMicrosoft31 Kommentare

Hallo Forum, ich bin auf der Suche nach einem Programm / Tool mit dem ich Text (Laufschrift) auf allen (gewünschten) PC's / Benutzer im ...

LAN, WAN, Wireless
"Ethernet verfügt über keine gültige IP-Konfiguration"
gelöst archITVor 1 TagFrageLAN, WAN, Wireless18 Kommentare

Moin, folgendes Problem: Jedes mal, wenn ich meinen PC an mache, muss ich die Problembehandlung auf der Ethernet schnittstelle ausführen, dass ich Internet habe. ...

Microsoft
PDF editor mit spezieller exportfunktion
FlorianHeVor 1 TagFrageMicrosoft10 Kommentare

Hi leute. Ich habe eine Frage. Bei uns in der Instandhaltung kommt es oft vor das wir änderungen an den Elektrischen Anlagen oder Mechanichen ...

TK-Netze & Geräte
Umstellung von ISDN auf VoIP, 4 Sprachkanäle über 2 DSL-Anschlüsse
Gohla2019Vor 1 TagFrageTK-Netze & Geräte14 Kommentare

Hallo, ich brauche einmal etwas Hilfestellung bei einer geplanten Umstellung einer Telefon-Installation von ISDN-Technik auf VoIP. Vor Ort gibt es zurzeit 2 ISDN-Leitungen, so ...

Backup
Ich suche ein cloudbasiertes Backup für Linux-Web-Server mit zentraler Verwaltung und Deduplizierung
EDVMan27Vor 1 TagFrageBackup4 Kommentare

Hallo, ich suche für eine handvoll Web-Server eine 2. Datensicherung. Die Server sind gemischt, meist aber Ubuntu. Ich habe über Vollzugriff per SSH als ...

Exchange Server
Exchange-Server als Cloud-Lösung sinnvoll?
imebroVor 1 TagFrageExchange Server9 Kommentare

Hallo an Alle. Unser IT-Dienstleister hat uns vorgeschlagen, den gesamten Emailserver in die Cloud zu verlegen, sodass die Administration des Exchange-Servers wegfällt. Unsere Zertifikatsverwaltung ...

E-Mail
Kann man mit SPF Mails für eine Domäne vollständig verbieten?
gelöst StefanKittelVor 5 StundenFrageE-Mail17 Kommentare

Hallo, viele Firmen haben ja zusätzliche Domänen. Als Web- und oder Mail-weiterleitung. Es werden also niemals Emails damit gesendet werden. kann man mit einem ...

Sicherheit
Passwort Safe (Cloud) mit Siegel Funktion
CriemoVor 1 TagFrageSicherheit3 Kommentare

Hallo Zusammen, ich habe da mal eine Frage an Euch. Ich benötige einen Cloud based Passwort Safe der die Möglichkeit hat gewisse Passwörter nur ...