Frage von piii111,

Excel 2010 !!!! Hilfe

Hallo,

habe ein kleines Problem. Und zwar:

Ich habe eine Tabelle mit vielen EAN-Nummern. Diese stehen untereinander. Brauche die Daten aber in "einer Zelle" mit einem "Semikolon" getrennt. Ist das irgendwie machbar?

VBA vielleicht?

Antwort von Iamiam,
1 Mitglied fand diese Antwort hilfreich

geht auch mit einer Hilfsspalte und einer Formel: Deine Nummern seien in A2:A1000 .
Dann schreibst Du in meinetwegen F2: =A2 .
in F3 schreibst Du:
=F2&";"&A3 diese Formel ziehst du runter, soweit Du sie brauchst.
Am Ende kannst Du ihr Ergebnis sie dann mit kopieren-inhalte einfügen-Werte in einen Text überführen. Eine Zelle konnte schon in xl2003 über 32.767 Zeichen aufnehmen, sollte also kein Problem sein.

Kommentar von Iamiam,

kleine Einschränkung:
manche Features gehen bei extrem langen Zeichenketten nicht mehr, zB suchen und ersetzen (Strg+H).
ich hab aber die Formel (mit 6-Zeichen-Strings) über mehr als 5000 Zellen verkettet, das geht.
Sollte also mit 12-Zeichen-Strings auch mindestens 2500 mal gehen. Mehr hab ich nicht probiert!

Kommentar von Iamiam,

wenn Du das Ergebnis woanders als Text(umgesetzter Wert, nicht Formel) gesichert hast (ich bevorzuge für sowas Textfelder), kannst Du die Hilfsspalte auch wieder löschen!

Antwort von Oubyi,
1 Mitglied fand diese Antwort hilfreich

Kopiere mal diese UDF in ein allgemeines VBA-Modul (ALT&F11; Rechtsklick auf Microsoft Excel Objekte;Einfügen; Modul):

Function InEineZelle(Bereich As Range) As String
Dim Zelle As Range
Dim Ergebnis As String

For Each Zelle In Bereich
Ergebnis = Ergebnis & Zelle.Value & ";"
Next Zelle

Ergebnis = Left(Ergebnis, Len(Ergebnis) - 1)

InEineZelle = Ergebnis
End Function

Wenn jetzt Deine EAN-Nummern in A1:A50 stehen, schreibst Du in die Zelle, in der das Ergebnis stehen soll die Formel:
=InEineZelle(A1:A50)
und fertig.
Teste das mal genau, ist so auf die Schnelle zusammengestrickt.
Wenn Du einen schöneren Namen für die Funktion hast, musst Du nur die Zeilen:
Function InEineZelle(Bereich As Range) As String
und
InEineZelle = Ergebnis
ändern.
Klappt es?

Antwort von augsburgchris,

Klicke Rechts auf den Tabellenreiter und wähle "Code anzeigen" Im sich öffnenden Fenster gibst du in die Weisse Fläche folgendes ein:

Sub Zusammen()

For Each c In Range("B2:B" & [B65536].End(xlUp).Row).Cells
Strg = Strg & "; " & c.Value
Next c
[D2] = Right(Strg, Len(Strg) - 2)
End Sub

Ich bin hier davon ausgegangen das deine EAN in B2:B... stehen. Sollte dies nicht der Fall sein musst die die entsprechende Zeile kurz anpassen. Ändere hierbei bitte auch [B65536] auf die entsprechende Spalte, also z.B. [C65536].

Die Ausgabezelle ist D2 sollte dies nicht passen den Code ensprechend anpassen.

unter Extras --> Makros solltest du nun das Makro "Zusammen" finden was du einfach ausführen kannst.

Kommentar von Oubyi,

DH.
Falls bei Dir im VBA-Editor automatisch in der ersten Zeile:
Option Explicit
steht, musst Du das löschen, oder die von Chris genutzten Variablen VOR dem Code ordentlich deklarieren (;o):
Dim c As Range
Dim Strg As String

Antwort von albelo,

So - das klappt aber:

Die Nummern markieren, kopieren und ins WordPad unter "Datei/Inhalte einfügen" einfügen. Dann alles nocheinmal kopieren, die Zelle in Excel doppelklicken und dann einfügen. Die Semikolons lassen sich dann mit Feststelltaste und Pfeiltaste schnell eingeben. Habs gerade getestet - funzt...

Kommentar von albelo,

grrr: "Bearbeiten - Inhalte einfügen - unformatierter Text"...

Antwort von albelo,

Hi,

ich würde ide EAN- Nummern kopieren und in die Zelle per "Inhalte einfügen" kopieren. Mit Suchen/Ersetzen dann ein Leerzeichen durch ein ";" ersetzen.

Albelo

Kommentar von albelo,

Sorry - Schnellschuss. Habs gerade probiert - klappt nicht. Ich schau mal..

Kommentar von piii111,

Hi,

also wenn ich alle Werte in eine Zelle einfüge, stehen ja alle wieder untereinander und sind mit einem Zeilenumbruch getrennt. Deshalb findet "Suchen/Ersetzen" kein Leerzeichen. Wie soll ich da vorgehen?

Kommentar von albelo,

Siehe oben - das funktioniert gut.

Kommentar von piii111,

geht das nicht irgendwie automatisiert?

ich muss halt immer erst alle "Semikolon" einfügen und dann noch alle Zeilenumbrüche entfernen so dass dann schlussendlich alle hintereinander stehen.

Kommentar von albelo,

Also - Deine Nummern stehen ja in der Tabelle untereinander. Alle markieren + kopieren. Dann mit Berarbeiten/ Inhalte einfügen (unformatierter Text). Das Ganze wieder markieren und kopieren. Dann die gewünschte Zelle doppelklicken (so dass ein Cursor in der Zelle blinkt). Einfügen. Dann stehen alle Nummern in einer Zelle untereinander. Dann Feststelltaste (damit der Strichpunkt geschrieben wird) - ";" drücken, Pfeiltaste nach unte´n, wieder ";" usw. Dann die Zelle rechtsklicken, "Zellen formatieren" und den Haken bei "Zeilenumbruch" entfernen. Jetzt stehen alle Nummern duch ";" getrennt in der Zelle. Das hab ich probiert - mit 20 Nummern. Ging ratzfatz.

Kommentar von Iamiam,

ist richtig, darfst nur die Zelle nicht wieder anklicken, sonst setzen sich die Umbrüche wieder durch.

Kommentar von Iamiam,

was hat das mit Leerzeichen zu tun?
Die Umbruchzeichen bleiben allerdings drin und setzen sich beim nächsten ok wieder in Szene.
Wenn Du Umbruchzeichen entfernen willst, da hab ich ein Makro, das das macht.
aber schau erst mal meine Antwort an.

Keine passende Antwort gefunden?

Verwandte Fragen

Fragen Sie die Community

Weitere Fragen mit Antworten