Zellen verbinden mit Script?
#1
Hallo,

ich stehe vor einem etwas ungewöhnlichem Problem:

Beim Import einer PDF Liste, wird sowohl in Word oder Excel die Liste leider falsch importiert.

ArtNr Bezeichnung Farbe Größe Preis

Manchmal gibts mehr Farben, also stehen in Excel die Spalten  ArtNr Bezeichnung Farbe Farbe Farbe Größe Größe Größe Preis aus.
Ich müsste nun bei 200 Artikeln sämtliche Spalten in eine Spalte verbinden (mit einem Leerzeichen dazwischen) ausgenommen der Preis sollte dann allein in Spalte B stehen.

Mein Wunsch:
Ich markiere die zu verbindenden Zellen, drücke die Makro Taste und die Zellen sind verbunden.
Es kommt auch vor, dass 10 Artikel völlig korrekt sind und Bezeichnung inkl Preis in den Spalten untereinander sind. SO wäre es super, wenn man auch mehrere Zeilen markieren könnte.

Eine Hilfsspalte mit z.B. der Formel =B2&" "&C2&" " &D2 funktioniert zwar, nur eben wenn alles schön in den richtigen Spalten stehen würde. 

Danke
Antworten Top
#2
Hallo,

hier eine Lösung mit Formeln:

Damit das Beispiel funktioniert nenne Dein Blatt, in dem der Import gemacht wurde in Daten um (bzw. ansonsten die Formeln anpassen)

In Einem Neuen Blatt:
Spalte A: Artikelnummer
A2:   =Daten!A2
Spalte B: Bezeichnung
B2:   =Daten!B2
Spalte C: Farbe
C2:   =WECHSELN(MATRIXZUTEXT(INDIREKT(G2));";";" ")
Spalte D: Größe
D2:   =WECHSELN(MATRIXZUTEXT(INDIREKT(H2));";";" ")
Spalte E: Preis
E2:    =INDIREKT("Daten!"&ZEICHEN(64+3+F2*2)&ZEILE(A2))
Spalte F: Hilfsspalte Anzahl Farben
F2:   =(ANZAHL2(Daten!2:2)-3)/2
Spalte G: Hilfssplate - Bereich, in dem die Farben stehen
G2:   ="Daten!C"&ZEILE(A2)&":"&ZEICHEN(64+2+F2)&ZEILE(A2)
Spalte H: Hilfssplate - Bereich, in dem die Größen stehen
H2:   ="Daten!"&ZEICHEN(64+3+F2)&ZEILE(A2)&":"&ZEICHEN(64+2+2*F2)&ZEILE(A2)


LG
Norbert
[-] Folgende(r) 1 Nutzer sagt Danke an daNorbert für diesen Beitrag:
  • carlo1
Antworten Top
#3
Wobei MATRIXZUTEXT() bei Excel 2016 nicht funktioniert.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • carlo1
Antworten Top
#4
Nachtrag:

Falls eine ältere Excel Version verwendet wird hier eine Formel, die auch dort funktioniert
(Im Beispiel für maximal 5 Farben - ansonsten müsste man sie entsprechend erweitern.

C2:     =INDIREKT("Daten!C"&ZEILE(A2)) & WENN(F2 > 1;" " & INDIREKT("Daten!D"&ZEILE(A2));"") & WENN(F2 > 2;" " & INDIREKT("Daten!E"&ZEILE(A2));"") & WENN(F2 > 3;" " & INDIREKT("Daten!F"&ZEILE(A2));"") & WENN(F2 >4;" " & INDIREKT("Daten!G"&ZEILE(A2));"")

D2:     =INDIREKT("Daten!"&ZEICHEN(64+3+F2)&ZEILE(A2)) & WENN(F2 > 1;" " & INDIREKT("Daten!"&ZEICHEN(64+4+F2)&ZEILE(A2));"") & WENN(F2 > 2;" " & INDIREKT("Daten!"&ZEICHEN(64+5+F2)&ZEILE(A2));"") & WENN(F2 > 3;" " & INDIREKT("Daten!"&ZEICHEN(64+6+F2)&ZEILE(A2));"") & WENN(F2 >4;" " & INDIREKT("Daten!"&ZEICHEN(64+7+F2)&ZEILE(A2));"")

Spalte G und H können dann entfallen

LG
Norbert
Antworten Top
#5
Hallo nochmals,

danke für die Vorschläge, nur ich denke, dass ich es etwas falsch rübergebracht habe.

In der Musterdatei ist es besser ersichtlich.

.xlsx   Preisliste-script.xlsx (Größe: 11,09 KB / Downloads: 2)

Wie man sieht, sind die Preise netto und brutto in unterschiedlichen Spalten. Das ganze geht aber über mehrere 100 Zeilen.

Es müsste praktisch der komplette Text in A2 stehen
z.B. 55421 Apple iPhone SE 128GB MMXJ3ZD/A schwarz DS/eSIM dann in B2 der Preis netto und in B3 der Preis Brutto.

Somit könnte ich beim Update der Liste die Spalte A vergleichen und bei Übereinstimmung den Preis ändern bzw. so belassen (dies ist ja kein Problem)
Nur eben dieses Chaos der Liste, welche ich nicht anders bekomme.

Daher wäre meine Idee gewesen, mit der Maus die Bezeichnungsspalten zu markieren und mit einem Klick ist es in einer Zelle verbunden.
Im Fallbeispiel könnte ich Zellen A1:H11 markieren und mit klick steht der Text in A1, B1 usw.
Antworten Top
#6
Hi,

kannst du Liste nicht direkt als Excel-Datei oder auch als CSV-Datei bekommen?

Eine Lösungsmöglichkeit:
N1: =TEXTVERKETTEN(" ";WAHR;A1:INDEX(A1:L1;ANZAHL2(A1:L1)-2))
M1: =INDEX(A1:L1;ANZAHL2(A1:L1)-1)
O1: =INDEX(A1:L1;ANZAHL2(A1:L1))
runter ziehen

Wenn dein Excel Textverketten noch nicht kennt, hast du Pech gehabt oder du verwendest das CSE-Addin von FlotterFeger.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • carlo1
Antworten Top
#7
(06.03.2023, 18:21)HKindler schrieb: Hi,

kannst du Liste nicht direkt als Excel-Datei oder auch als CSV-Datei bekommen?

Eine Lösungsmöglichkeit:
N1: =TEXTVERKETTEN(" ";WAHR;A1:INDEX(A1:L1;ANZAHL2(A1:L1)-2))
M1: =INDEX(A1:L1;ANZAHL2(A1:L1)-1)
O1: =INDEX(A1:L1;ANZAHL2(A1:L1))
runter ziehen

Wenn dein Excel Textverketten noch nicht kennt, hast du Pech gehabt oder du verwendest das CSE-Addin von FlotterFeger.

Die Lösung ist super. Muss ich morgen in der Hauptdatei gleich testen.
Woher würde ich das CSE Addin bekommen? Herzlichen Dank.
Antworten Top
#8
Hi,

CSE-Addin gibt es z.B. hier V1.3
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste