Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1300to1304
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

Artikelnummer Format anpassen automatisch

Artikelnummer Format anpassen automatisch
22.02.2013 09:17:47
Arthur
Guten Morgen zusammen
Da dachte ich schon, wow, etwas geschafft und erledigt, doch ich musste vorhin mit grossem Schrecken feststellen, dass bei meiner Megaliste (15000 Zeilen, 1200 Spalten und Millionen oon Formeln) die Artikelnummern die mit Sverweis verglichen werden nicht das gleiche Format haben!! :-(
Meine Situation:
1 Grosse Excelliste mit Artikelnummer in Spalte B
100 Verschiedene Excellisten (Kunden) wo die Artikelnummer meistens in Spalte C steht, aber ab und zu auch in Spalte A.
Wie kann ich nun irgendwie automatisch die Artikelnummern der 100 Excellisten, in der grossen Excelliste absuchen lassen und dann bei gefundener Ähnlichkeit das richtige Format (die Artikelnummer der grossen Liste) übernehmen lassen?
Ein Beispiel:
Das richtige Format in der Grossen Excelliste ist:
123411 14 415 200 (18 - stellig)
In einer der hundert anderen Excellisten steht aber:
123411 14 415 200 (22- stellig) z.B. zu viele Leerstellen
oder
12341114 415 200 (Zahlen wurden zusammengenommen)
Jetzt findet natürlich die grosse Excelliste den Artikel per sverweis in dieser anderen Liste (z.B. Kunde A) nicht, weil es nicht genau die gleiche ARtikelnummer ist!!
Dadurch das die Liste so gross ist, sind es wirklich Millionen von Sverweisformeln, deshalb kann ich die definitiv nicht mehr irgendwie anpassen! Alles funktioniert sonst.
Ach ich bin am verzweifeln, diese Liste raubt mir alle Nerven.
Kann mir jemand irgendwie helfen?
Vielen Dank!!
Gruss
Arthur

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Artikelnummer Format anpassen automatisch
22.02.2013 09:37:29
Klaus
Hi,
für =GLÄTTEN() der Eingabe ist es zu spät, verstehe ich richtig?
wenns wirklich nur Leerzeichen sind, dann sollte das gehen:
A1: "123411 14 415 200"
Formel: =SVERWEIS(A1&"*";Matrix;Spalte;Falsch)
So findest du "1234_11_14_415_200" als auch "1234_11_14_415_200______" (Leerzeichen visualisert).
Aber Achtung! Je nachdem wie deine Artikelnummer aufgebaut ist, kann das schief gehen!
Artikelnummern wie:
"1234_11_14_415_200a"
"1234_11_14_415_200-Verpackungsmuster"
würde das Muster natürlich auch finden. Wenn dein Problem nur Leerzeichen nach eindeutigen Sachnummern sind, klappts mit "*" - prüf das vorher, sonst versenkst du wieder 22h :-)
Grüße,
Klaus M.vdT.

PS: Ich HASSE es, wenn Zahlen so ankommen. Warum schafft es eigentlich kein Buchungsprogramm, "saubere" Zahlen auszuspucken?

Anzeige
AW: Artikelnummer Format anpassen automatisch
22.02.2013 09:54:19
Arthur
Hallo Klaus
Da bin ich wieder :-)
Du, ich kann deine Lösung gerade nicht nachvollziehen, aber aufs Glätten bin ich durch Recherche auch gekommen, ev. ist das die Lösung. Ich meinte ich könne nicht alle Sverweis formeln anpassen, doch wenn ich:
Irgendwie ein makro hätte, welche ich für die Kunden Excellisten (ca. 100) (von dort holt die Grosse Liste die Daten per Sverweis)anwenden könnte, wäre das super!
In den 100 Excelfiles ist die Artikelnummer ja falsch formatiert und befinden sich entweder in Spalte A oder C.
Lösung (Keine Ahnung ob das Sinn macht und realisierbar ist):
Makro ausführen in Excelliste Kunde A (da ist das Artikelnummerformat falsch) - Auswahl ob Artikelnummern in Spalte A oder C sind, diese glätten lassen per einfügen einer neuen Spalte (entweder B oder D)
- die geglättete Artikelnummer mit der auch ***geglätteten Artikelnummer in der Grossen Liste vergleichen, wenn es übereinstimmt, soll Excel das richtige Format der Artikelnummer (Spalte B) von der Grossen Liste in die Kundenliste übernehmen (die aktuell falsch formatiere Artikelnummer überschreiben) entweder in Spalte A oder C.
Geht so was? Anders sehe ich dies nicht zu lösen :-(
Ich könnte dann in der grossen liste (Artikelnummern sind richtig formatiert in Spalte B) eine ***Spalte C einfügen und dort glätten ausführen. Das müsste man ja im Marko nicht auch noch berücksichtigen.
Gruss
Arthur
PS: Sorry ist kompliziert, aber ich hoffe echt du verstehst mich. Ich denke so ist es am einfachsten. Muss halt 100 mal das Makro ausführen (für jede Kundenexcelliste einzeln), aber das geht zügiger als Millionen von Formeln anzupassen.

Anzeige
AW: Artikelnummer Format anpassen automatisch
22.02.2013 10:31:44
Klaus
Hallo Arthur,
ich habe dich jetzt so verstanden, dass du nicht die Formel anpassen willst sondern die Ziel-Sachnummern GLÄTTEN. Und die liegen in Text-Form vor und sind keine Formelergebnisse.
Führ mal das Makro in einer Tabelle aus, das sollte alles im Bereich A2:A25 (anpassbar!) runterglätten. Achtung, es zerschießt gnadenlos Formeln!
Sub TrimIt()
Dim rTrimThis As Range
Dim r As Range
Set rTrimThis = Range("A2:A25")
For Each r In rTrimThis
r.Value = Application.WorksheetFunction.Trim(r.Value)
Next r
End Sub
Wenn du das Makro auf einen Tastenshortcut setzt und die Zeile
Set rTrimThis = Range("A2:A25")
gegen
Set rTrimThis = selection
tauscht, sollte das relativ fix zu machen sein.
Grüße,
Klaus M.vdT.

Anzeige
Anpassung Makro
23.02.2013 12:18:13
Arthur
Hallo Klaus und Uwe
Da habe ich wohl glätten falsch verstanden, eure Makros funktionieren (vielen Dank!), löschen aber nicht alle Leerzeichen raus. Artikelnummer 1234 231 34 soll zu 123432134 werden. Dieses Makro habe ich gefunden:
Sub Leerzeichen_entfernen()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Replace What:=" ", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
Next
End Sub
For i = 1 to 10 sollte aber eine Selection (wie bei deinem Makro) sein, könntest du mir dies anpassen? Ich habe keine Ahnung von VBA.
Meine Idee ist jetzt, dass man in diesem Makro noch einbauen könnte:
- Rechts von meiner "Selection" automatisch eine Spalte einfügen
Dort werde ich dann manuell einen Sverweis zu meiner Gossen Liste machen und die ebenfalls von allen Leerzeichen entledigten Artikelnummer zu suchen.
Wie kann ich den das 2. Problem noch lösen?:
mit dem neuen Sverweis zur grossen Liste wird jetzt zb. Artikelnummer 123432134 gesucht, wenn es gefunden wurde, dann sollte Excel das richtige Format in Spalte B der grossen Liste in die Kundenexcelliste übernehmen. Sprich, die alte Artikelnummer (mit flaschem Format) überschreiben mit der Richtigen der grossen Liste. siehe Excelbeispiel.
https://www.herber.de/bbs/user/84023.xlsx
Vielen Dank für deine Hilfe!
Gruss
Arthur

Anzeige
Alle Leerzeichen entfernen
23.02.2013 13:27:20
Klaus
Hi,
Alle Leerzeilen aus der Selection zu entfernen ist ein 1-Zeiler:
https://www.herber.de/forum/messages/1300553.html
Sub Macro1()
Selection.Replace What:=" ", Replacement:=""
End Sub
Wozu du den zweiten SVERWEIS brauchst blicke ich nicht. Entferne doch alle Leerzeichen aus allen Listen, dann funktioniert dein Ur-Sverweis auch wie gewollt.
Grüße,
Klaus M.vdT.

AW: Alle Leerzeichen entfernen
23.02.2013 13:38:19
Arthur
Oh super, danke das klappt so.
Ich muss diesen Sverweis machen und die alte falsche "Formatierung" der Artikelnummern in den Kunden mit der richtigen der grossen LIste zu überschreiben. Ich kann in der grossen Liste nicht eine Artikelnummer 12345123 haben, sondern 12345 12 3, da diese für einen SAP upload verwendet wird (ebenso in den 100 Excellisten der Kunden).
Kannst du mir bei diesem Vergleich und Abgleich auch noch helfen (siehe Erklärung letzer Post).
Viele Dank!
Gruss
Arthur

Anzeige
AW: Alle Leerzeichen entfernen
23.02.2013 14:17:20
Klaus
Hi,
wenn in A1 die falsche Nummer "123 45" steht, dann schreib in B1
=WECHSELN(A1;" ";"") und zieh das runter. Jetzt hast du die "Ohne-Null" Artikelnummer.
Das "wechseln" kannst du natürlich auch direkt in den SVERWEIS einbauen.
In A1 steht "123 45 67 ". In B7 steht "1234567", in C7 steht "Hallo Welt".
=SVERWEIS(WECHSELN(A1;" ";"");B:C;2;)
findet jetzt direkt den Begriff "Hallo Welt" !!
Wie genau das bei dir aussehen wird kann ich nicht sagen, da ich deine Datei nicht kenne. Und vor dem Hintergrund dieses Themas werde ich mich hüten, dich um ein Upload zu bitten :-)
Grüße,
Klaus M.vdT.

Anzeige
AW: Alle Leerzeichen entfernen
23.02.2013 14:43:39
Arthur
Klaus, Danke!
Es funktioniert, toll. Jetzt muss ich in allen 100 Excellisten eine Spalte und die Sverweisformel einfügen, runterziehen und fertig.
Super, jetzt bin ich beruhigt :-)
Weiterhin ein schönes Wochenende!
Gruss
Arthur

Oder mit STRG+H ?
22.02.2013 10:36:54
Klaus
Hallo nochmal,
wenn du damit leben kannst das aus
123411 14 415 200
die
12341114415200
wird, dann kannst du auch einfach STRG+H, und ersetzen " " gegen "".
Grüße,
Klaus M.vdT.

AW: Artikelnummer Format anpassen automatisch
22.02.2013 10:46:00
UweD
Hallo
Vorschlag: dann alle Leerzeichen rausnehmen. Sowohl im Suchfeld als auch in den Daten, die durchsucht werden
Sub Trimmen()
'Trimmen auch innerhalb des Textes
Dim z, RR
RR = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row ' letzte Zeile
Application.ScreenUpdating = False
For Each z In Selection
If z.Row > RR Then Exit Sub ' Wenn mehr selectiert ist als Zeilen vorhanden
If z  "" Then z = Application.Substitute(z, " ", "")
Next
Application.ScreenUpdating = True
End Sub
gruß UweD

Anzeige
sehr umständlich, Uwe ...
22.02.2013 10:54:09
Klaus
Hi UweD,
ich seh grad den Vorteil deines Makros nicht, es macht exakt das gleiche wie:
Sub Macro1()
Selection.Replace What:=" ", Replacement:=""
End Sub
oder nicht?
Grüße,
Klaus M.vdT.

AW: sehr umständlich, Uwe ...
22.02.2013 11:35:36
UweD
Hallo Klaus
du hast natürlich Recht.
Gewohnheit...
Ich hab ein altes Makro von mir genommen, wo ich LTRIM und RTRIM drin hatte.
Hab das dann abgeändert, ohne komplett Neu zu denken.
LG UweD

AW: Artikelnummer Format anpassen automatisch
22.02.2013 10:54:15
UweD
zu viel gekürzt.
muss so lauten
If z.Value "" Then z.Value = Application.Substitute(z.Value, " ", "")
LG UweD
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige