Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Acess - Feldinhalt trennen - in neue Zeile schreib

Forumthread: Acess - Feldinhalt trennen - in neue Zeile schreib

Acess - Feldinhalt trennen - in neue Zeile schreib
11.04.2018 07:21:25
Peter
Hallo Zusammen,
ich wende mich heute mal mit einem Problemchen an euch welches Excel sowie auch Access betreffen könnte. Ich bin mir noch nicht ganz sicher, was die bessere Lösung wird.
Ausgangsituation:
Ich leite mir eine Excel aus einem SharePoint aus. Diese Excel enthält eine sogenannte Request Nummer die wie folgt aufgebaut ist: Bsp. 00910
Hinter dieser Request Nummer erscheint dann eine Spalte die Materialnummern enthält.
Die Materialnummern werden durch ein Semikolon getrennt. Alle anderen Symbole gehören zum Feldinhalt.
Das ganze sieht in der Realität wie folgt aus:
A B
00910 700429105001;5120205500/87;5110201808
00911 5100201921
00912 5061851201;5090851021
Soll:
Aussehen soll die Excel vor dem Import in Access aber so:
A B
00910 700429105001
00910 5120205500/87
00910 5110201808
00911 5100201921
00912 5061851201
00912 5090851021
Schön wäre es wann das ganze durch einen Makro erzeugt wird.
Jedoch habe ich gar keine Idee wie ich an das Problem heran gehen soll. Händisch kriege ich das Problem im Excel mit viel Aufwand gelöst. Da der Import aber regelmäßig gemacht werden muss, ist das ganze nicht unbedingt zielführend.
Der Grund das alles untereinander steht, ist das ich nachher in einer Access Abfrage die Spalte "B" mit einem Feld in eine Beziehung setze und sobald die Feldinhalte gleich sind, soll die Request Nummer aus Spalte "A" wiedergegeben werden. Das geht im Access leider nicht mit unzähligen Spalten. Also habe ich bis jetzt immer eine Kreuztabelle erzeugt und diese umständlich wieder rückgängig gemacht mit dem Pivot Assistenten... :-(
Ich hoffe ihr könnt mir hier weiterhelfen... Vielen Dank für eure Hilfe schon mal vorab!
Beste Grüße,
Peter
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Acess - Feldinhalt trennen - in neue Zeile schreib
11.04.2018 07:42:45
Armin
Guten Morgen Peter,
Frage wie stehen die Daten in den Zellen?
A B C D
00910 700429105001;5120205500/87;5110201808
oder alles in einer?
Gruß Armin
AW: Acess - Feldinhalt trennen - in neue Zeile schreib
11.04.2018 08:31:04
Armin
Hallo Peter,
Falls alles in einer Zelle steht (davon gehe ich aus) müsste das so funktionieren:
https://www.herber.de/bbs/user/120987.xlsm
Gruß Armin
Anzeige
AW: Acess - Feldinhalt trennen - in neue Zeile schreib
11.04.2018 09:51:59
Peter
Hallo Armin,
der Versuch sieht ja schon mal Klasse aus.
Allerdings steht die Request Nummer in der Spalte A und die Materialnummern alle zusammen in der Spalte B.
Aber meine Bedanken sind weg, das man nicht verstehen könnte was ich meine. Du hast das Problem erkannt.
Grüße,
Peter
Anzeige
AW: Acess - Feldinhalt trennen - in neue Zeile schreib
11.04.2018 12:55:43
Peter
Hi Armin,
das sieht ja wunderbar aus. Allerdings kommt die Tabelle als Export mit der Spalte A = "00910" und Spalte B = "Materialnummer"
Leider ist VBA in Excel ein Böhmisches Dorf für mich. Im Access gehen ein paar Dinge leicht von der Hand. Bist du in dem Sektor auch fit und hast eine Idee wie man sowas direkt im Access umsetzen kann?
Vielen Dank im Voraus!
Top Ideen und Super Arbeit!
Anzeige
AW: Acess - Feldinhalt trennen - in neue Zeile schreib
12.04.2018 07:40:14
Peter
Guten Morgen Armin,
ich habe mal einen Original Export gemacht damit du weißt wie ich das meine.
Ich habe dein Codeing nach einiger Überlegung schon verstanden und auch für logisch empfunden. Leider wüsste ich nicht wie ich deinen Code so ändere das der Makro beide Spalten berücksichtigt.
Würdest du mir da nochmal helfen? Danke dir im Voraus!
https://www.herber.de/bbs/user/121017.xlsx
Grüße,
Peter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Feldinhalt in Access und Excel trennen und umformatieren


Schritt-für-Schritt-Anleitung

  1. Daten importieren: Stelle sicher, dass deine Excel-Datei mit den erforderlichen Daten vorliegt. Die Struktur sollte wie folgt sein:

    A         B
    00910     700429105001;5120205500/87;5110201808
    00911     5100201921
    00912     5061851201;5090851021
  2. Neues Makro erstellen:

    • Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. VBA-Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub FeldinhaltTrennen()
       Dim ws As Worksheet
       Dim rng As Range
       Dim cell As Range
       Dim arr() As String
       Dim i As Integer
       Dim lastRow As Long
    
       Set ws = ThisWorkbook.Sheets("Sheet1") ' Passe den Namen des Blattes an
       lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
       For Each cell In ws.Range("B1:B" & lastRow)
           If cell.Value <> "" Then
               arr = Split(cell.Value, ";")
               For i = LBound(arr) To UBound(arr)
                   ws.Cells(cell.Row + i, "A").Value = ws.Cells(cell.Row, "A").Value
                   ws.Cells(cell.Row + i, "B").Value = Trim(arr(i))
               Next i
           End If
       Next cell
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle FeldinhaltTrennen aus und klicke auf Ausführen.

  5. Ergebnisse überprüfen: Deine Excel-Tabelle sollte jetzt wie gewünscht formatiert sein.


Häufige Fehler und Lösungen

  • Fehler: „Subscript out of range“

    • Lösung: Stelle sicher, dass das Arbeitsblatt, auf das im Code verwiesen wird, tatsächlich existiert. Überprüfe den Namen in der Zeile Set ws = ThisWorkbook.Sheets("Sheet1").
  • Fehler: Daten werden nicht korrekt aufgeteilt

    • Lösung: Überprüfe, ob die Daten in der Spalte B tatsächlich durch Semikolons getrennt sind. Füge ggf. ein Debug.Print in den Code ein, um den Inhalt der Zellen zu überprüfen.

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch die Text-Funktion in Excel nutzen:

  1. Text in Spalten: Markiere die Spalte B und gehe zu Daten > Text in Spalten. Wähle Getrennt und setze das Trennzeichen auf Semikolon.
  2. Daten kopieren und anpassen: Nach dem Aufteilen kannst du die Werte manuell anpassen, um die gewünschten Zeilen zu erstellen.

Praktische Beispiele

Ein Beispiel für eine Excel-Tabelle nach dem Ausführen des Makros:

A B
00910 700429105001
00910 5120205500/87
00910 5110201808
00911 5100201921
00912 5061851201
00912 5090851021

Tipps für Profis

  • Automatisierung in Access: Wenn du auch mit Access arbeitest, kannst du ähnliche VBA-Skripte nutzen, um den Feldinhalt in ein anderes Feld zu übernehmen. Das spart Zeit und Mühe bei wiederholten Importen.
  • Regelmäßige Backups: Bevor du Makros ausführst, erstelle immer eine Sicherungskopie deiner Arbeitsmappe, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich das Makro für andere Excel-Versionen verwenden? Ja, das Makro sollte in den meisten modernen Excel-Versionen (ab 2010) funktionieren, solange VBA unterstützt wird.

2. Wie kann ich den Code anpassen, wenn ich mehr als zwei Spalten habe? Du musst die Schleife im Code anpassen und zusätzliche Zellen in der jeweiligen Zeile hinzufügen, je nach Anzahl der Spalten, die du verarbeiten möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige