Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1512to1516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Info aus Zellen extrahieren

Info aus Zellen extrahieren
04.09.2016 00:55:43
Eleni
Hallo Forum,
Ich muss aus ca. 20.000(!) Zeilen Informationen aus 2 Spalten auf mehrere verteilen, um diese dann sortieren zu können. Mit den Formeln RECHTS / LINKS komm ich nicht weiter (manche Wörter werden abgeschnitten) und oft stürzt xls ab :-(
Ausgangssituation:
- in Spalte A steht jeweils ein Titel (unterschiedlich lang), dann kommen unterschiedlich viele Leerzeichen, danach eine Zahl und zum Schluss noch ein Buchstaben-Code in Klammern; Manchmal fehlen die Zahl und/oder der geklammerte Buchstabencode;
- in Spalte B stehen Namen (unterschiedlich lang) und dann kommt manchmal eine Klammer, in der steht dann eine Zahl mit Punkt und Text
Spalte A
- Heute ist es schön 4 (Uhr)
- Morgen um 9 wird es schön 7 (Abend)
- Gestern war es schön
Spalte B
- Montag (1. Tag)
- So lala (12. Monat im Jahr)
- Ach so was
Nun soll folgendes erreicht werden:
- in Spalte A soll alles vor der Zahl, die direkt vor der Klammer steht, stehen bleiben
- in Spalte B soll alles vor der Klammer stehen bleiben
- in Spalte C soll der Text aus der Klammer der Spalte B stehen
- in Spalte D soll die Zahl aus der Klammer der Spalte B stehen und zwar im Format 01, 02, 10, 12, etc.
- in Spalte E soll der Text aus der Klammer der Spalte A stehen
- in Spalte F soll der Buchstaben-Code der Klammer der Spalte A stehen
Dabei soll das jeweilige Format (Textfarbe) aus Spalte A auf die anderen Spalten übertragen werden.
Spalte A
- Heute ist es schön
- Morgen um 9 wird es schön
- Gestern war es schön
Spalte B
- Montag
- So lala
- Ach so was
Spalte C
- Tag
- Monat im Jahr
- (leer)
Spalte D
- 01
- 12
- (leer)
Spalte E
- Uhr
- Abend
- (leer)
Spalte F
- 4
- 7
- (leer)
Wie bekomm ich das mit nem Makro hin bzw. ohne dass xls abstürzt?
Danke im Voraus,
Eleni

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Info aus Zellen extrahieren
04.09.2016 07:50:58
Oberschlumpf
Hi Eleni
zeig uns doch bitte mal ne Bsp-Datei mit genau den Bsp-Daten, wie du sie uns in deinem Text zeigst, per Upload als Excel-Datei.
Danke.
Ciao
Thorsten
AW: Info aus Zellen extrahieren
04.09.2016 08:53:50
Unterschlumpf
Hallo
Für was brauchst Du da eine Bsp.Datei
Spalte A
- Heute ist es schön 4 (Uhr)
- Morgen um 9 wird es schön 7 (Abend)
- Gestern war es schön
Spalte B
- Montag (1. Tag)
- So lala (12. Monat im Jahr)
- Ach so was
Da sind je 3 Zeilen zu kopieren und in Excel einzufügen.
Da muss man keine Datei hochladen.
Schlümpfe kennen doch auch Copy & Paste
MfG aus Schlumpfhausen
Anzeige
AW: Info aus Zellen extrahieren
04.09.2016 09:54:41
Oberschlumpf
Hi
ja, dann kannst du ja der Fragenden weiterhelfen.
Ciao
AW: Info aus Zellen extrahieren
04.09.2016 10:06:28
Hajo_Zi
es soll ein Makro eingesetzt werden. In einer XLSX Datei kann das nicht gehen.

AW: Info aus Zellen extrahieren
04.09.2016 10:27:08
Hajo_Zi
Deine Beschreibung stimmt nicht.
Spalte A
- Heute ist es schön 4 (Uhr)
- Morgen um 9 wird es schön 7 (Abend)
- Gestern war es schön
Nun soll folgendes erreicht werden:
- in Spalte F soll der Buchstaben-Code der Klammer der Spalte A stehen
Dabei soll das jeweilige Format (Textfarbe) aus Spalte A auf die anderen Spalten übertragen werden.
Spalte F
- 4
- 7
- (leer)
Buchstaben wären bei mir Uhr und Abend.
Gruß Hajo
Anzeige
AW: Info aus Zellen extrahieren
04.09.2016 10:35:52
Eleni
Hajo, Du hast Recht!
Es muss heißen:
- in Spalte F soll die Zahl vor der Klammer der Spalte A stehen
- in Spalte E soll der Buchstaben-Code der Klammer der Spalte A stehen
Die Bsp.-Datei stimmt.
Gruß, Eleni
AW: Info aus Zellen extrahieren
04.09.2016 10:39:59
Hajo_Zi
vielleicht solltest Du Deinen ersten Beitrag nochmal lesen und Überarbeiten.
4 und 7 hätte ich nicht als Buchstabencode angesehen.
Aber vielleicht sehe ich das nur falsch.
Ich hatte mich schon bemüht Klarheit in die Aufgabe zu bringen. Aber das ist wohl nicht erwünscht.
Ich bin dann raus.
Gruß Hajo
Anzeige
AW: Info aus Zellen extrahieren
04.09.2016 10:52:28
Eleni
Sorry für das Durcheinander in Textform, ich dachte die Bsp.-Datei wäre eindeutig...
Wer mir doch noch helfen möchte, hier noch mal der Versuch, die Aufgabe klar zu formulieren (bin auch nur n Mensch…) und die Bsp.-Datei:
https://www.herber.de/bbs/user/108008.xls
Ausgangssituation:
- in Spalte A steht jeweils ein Titel (unterschiedlich lang), dann kommen unterschiedlich viele Leerzeichen, danach eine Zahl und zum Schluss noch ein Buchstaben-Code in Klammern; manchmal fehlen die Zahl und/oder der geklammerte Buchstabencode;
- in Spalte B stehen Namen (unterschiedlich lang) und dann kommt manchmal eine Klammer, in der steht dann eine Zahl mit Punkt und Text
IST:
Spalte A
- Heute ist es schön 4 (Uhr)
- Morgen um 9 wird es schön 7 (Abend)
- Gestern war es schön
Spalte B
- Montag (1. Tag)
- So lala (12. Monat im Jahr)
- Ach so was
Nun soll folgendes erreicht werden:
- in Spalte A soll alles vor der Zahl, die direkt vor der Klammer steht, stehen bleiben
- in Spalte B soll alles vor der Klammer stehen bleiben und die letzte Zahl direkt vor der Klammer soll gelöscht werden
- in Spalte C soll nur der Text aus der Klammer der Spalte B stehen
- in Spalte D soll nur die Zahl aus der Klammer der Spalte B stehen und zwar im Format 01, 02, 10, 12, etc.
- in Spalte E soll nur der Buchstaben-Code aus der Klammer der Spalte A stehen
- in Spalte F soll nur die Zahl vor der Klammer der Spalte A stehen
Dabei soll das jeweilige Format (Textfarbe) aus Spalte A auf die anderen Spalten übertragen werden. Pro Zelle gibt es nur einen geklammerten Eintrag.
SOLL:
Spalte A
- Heute ist es schön
- Morgen um 9 wird es schön
- Gestern war es schön
Spalte B
- Montag
- So lala
- Ach so was
Spalte C
- Tag
- Monat im Jahr
- (leer)
Spalte D
- 01
- 12
- (leer)
Spalte E
- Uhr
- Abend
- (leer)
Spalte F
- 4
- 7
- (leer)
Wenn es auch ohne Makro klappt, wäre ich für eine Lösung dankbar.
Danke für jeden Lösungsansatz im Voraus,
Eleni
Anzeige
AW: Info aus Zellen extrahieren
04.09.2016 13:31:14
Hajo_Zi
Ich halte mich an die Beschreibung die im Beitrag steht und leite nicht die Aufgabe aus der Tabelle ab.
Ich hatte jetzt schon paar mal geschrieben das die Aufgabe korrekt beschrieben werden soll.
Das hältst Du nicht für notwendig das liegt bestimmt daran das Du die Lösung selber an Deine Bedingungen anpassen willst.
Viel Erfolg.
Ich hatte nun schon zu viel Zeit in den Ansatz investiert. Darum noch eine Lösung.
Weitere Beiträge kommen nicht mehrt aus o.g. Gründen.
Option Explicit
Sub Trennen()
' - in Spalte A soll alles vor der Zahl, die direkt vor der Klammer steht, stehen bleiben
' - in Spalte B soll alles vor der Klammer stehen bleiben und die letzte Zahl direkt vor der  _
Klammer soll gelöscht werden
' - in Spalte C soll nur der Text aus der Klammer der Spalte B stehen
' - in Spalte D soll nur die Zahl aus der Klammer der Spalte B stehen und zwar im Format 01, 02, _
10, 12, etc.   erledigt
' - in Spalte E soll nur der Buchstaben-Code aus der Klammer der Spalte A stehen    erledigt
' - in Spalte F soll nur die Zahl vor der Klammer der Spalte A stehen   erledigt
Dim Loletzte As Long
Dim LoI As Long
Loletzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
For LoI = 2 To 4 'Loletzte
' Spalte F
If InStr(Cells(LoI, 1), "(") > 0 Then
Cells(LoI, 6) = Val(Mid(Cells(LoI, 1), InStr(Cells(LoI, 1), "(") - 5))
End If
' Spalte E
If InStr(Cells(LoI, 1), "(") > 0 Then
Cells(LoI, 5) = Left(Mid(Cells(LoI, 1), InStr(Cells(LoI, 1), "(") + 1), _
Len(Mid(Cells(LoI, 1), InStr(Cells(LoI, 1), "(") + 1)) - 1)
End If
' Spalte D
If InStr(Cells(LoI, 2), "(") > 0 Then
Cells(LoI, 4) = Format(Application.Substitute(Left(Mid(Cells(LoI, 2), InStr(Cells( _
LoI, 2), "(") + 1), _
InStr(Mid(Cells(LoI, 2), InStr(Cells(LoI, 2), "(") + 1), " ") - 1), ".", ""), " _
00")
End If
' Spalte c
If InStr(Cells(LoI, 2), "(") > 0 Then
Cells(LoI, 3) = Left(Mid(Mid(Cells(LoI, 2), InStr(Cells(LoI, 2), "(") + 1), _
InStr(Mid(Cells(LoI, 2), InStr(Cells(LoI, 2), "(") + 1), " ") + 1), _
Len(Mid(Mid(Cells(LoI, 2), InStr(Cells(LoI, 2), "(") + 1), _
InStr(Mid(Cells(LoI, 2), InStr(Cells(LoI, 2), "(") + 1), " ") + 1)) - 1)
End If
' Spalte B
If InStr(Cells(LoI, 2), "(") > 0 Then
Cells(LoI, 2) = Left(Cells(LoI, 2), InStr(Cells(LoI, 2), "(") - 1)
End If
' Spalte A
If InStr(Cells(LoI, 1), "(") > 0 And Cells(LoI, 6)  "" Then
Cells(LoI, 1) = Left(Cells(LoI, 1), InStr(Cells(LoI, 1), Cells(LoI, 6)) - 1)
End If
Next LoI
End Sub

Gruß Hajo
Anzeige
Geschossen
04.09.2016 16:17:04
Eleni
Danke trotzdem!

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige