Microsoft Excel

Herbers Excel/VBA-Archiv

Aus Excel Artikelnummern in neue Tabelle kopieren


Betrifft: Aus Excel Artikelnummern in neue Tabelle kopieren von: Schroth
Geschrieben am: 24.07.2017 14:31:20

Guten Tag,

ich muss aus einer Exceltabelle die nur aus einer Spalte besteht die Artikelnummern herauskopieren. Die Spalten sehen in etwa so aus:

Hier ein Auszug:

com: Martina, Mustermann - Axure für Wiedereinsatz 910 2XXXXX - 24x150x2,4 -;2
com: Mustermann - für modell axa 910 2XXXXX 12 / 28x12x1,2 - dunkelblau
com: Wiedereinsatz: Axa - mit anbaufunktion - 810 2XXXXX - ;2
com: Mustermnn, Max 38x120x1,4 - orange - 710 2XXXXX / metallic

usw. also wie man sieht ist es ein Riesendurcheinander, einzig die 2 und die 6 stellen sind konstant. Und genau diese Nummer mit der 2 und die 5 Stellen hinter der 2 muss ich herauskopieren. Wie gesagt es gibt nur die Spalte A und mehrere hundert Zeilen die wie oben aussehen. Leider habe ich keine Ahnung wie ich die Artikelnummern am einfachsten herausziehen kann. Ob in eine Textdatei oder in eine neue Spalte ist eigentlich egal. Wäre für jede Hilfe dankbar.

  

Betrifft: AW: Recycling von: Fennek
Geschrieben am: 24.07.2017 14:42:08

Hallo,

heute morgen gab es bereit eine Frage, auf die dieser Code passte:

function i5Zahlen(rnd as range)
With CreateObject("vbscript.Regexp")
	.Pattern = "\D2\d{5}\D"
	i5Zahlen = .Test(rng.value)
end with
end function


Test mal, ob der "wahr" in allen richtigen Fällen ergibt. Falls ja, kann man die "5x" leicht  _
auslesen.

mfg



  

Betrifft: AW: Recycling von: Schroth
Geschrieben am: 24.07.2017 15:28:23

Hallo Fennek,

leider weiß ich nicht wirklich wie ich das testen soll.
Wenn ich das testen will bekomme ich immer die Meldung end sub erwartet.


  

Betrifft: AW: Recycling von: Fennek
Geschrieben am: 24.07.2017 16:00:32

Hallo,

das ist eine UDF, die genauso genutzt wird wie jede Excel-Funktion ("=summe(A1:A3)")

Wenn der String in A1 steht, dann

B1: =i5Zahlen(A1)

und nach unten ziehen/kopier/Autofill

mfg


  

Betrifft: Unter der Voraussetzung, dass es sich bei ... von: Luc:-?
Geschrieben am: 24.07.2017 20:04:25

…den 5 X nach der 2 um eine Ziffernfolge handelt, Fennek (& Schroth),
teilt diese UDF nur mit, ob eine solche Folge darin enthalten ist (WAHR bzw FALSCH). Der Fragesteller wollte wohl aber diese Zahl isolieren (Herauskopieren wie er schreibt), was mit folgender singularer MatrixFml, die gleich 3 UDFs einsetzt, gelingen sollte:
B1[:B4]: {=WENNFEHLER(--VJoin(WENN((VSplit(MaskOn(A1;"num");;1)>199999)*(VSplit(MaskOn(A1;"num");;1)<300000);VSplit(MaskOn(A1;"num");;1);"");;-1);#NV)}
Alternativ und kürzer wäre hier auch folgende NormalFml mit nur 2 UDFs möglich:
B1[:B4]:=SUMMENPRODUKT((VSplit(MaskOn(A1;"num");;1)>199999)*(VSplit(MaskOn(A1;"num");;1)<300000);VSplit(MaskOn(A1;"num");;1))
MaskOn: https://www.herber.de/cgi-bin/callthread.pl?index=1344962#1345181
VJoin & VSplit: https://www.herber.de/bbs/user/99024.xlsm (BspDatei für ihren Einsatz)
Feedback nicht unerwünscht! Gruß, Luc :-?

Besser informiert mit …


Beiträge aus den Excel-Beispielen zum Thema "Aus Excel Artikelnummern in neue Tabelle kopieren"