Discussion:
verketten von Zellen
(zu alt für eine Antwort)
colleen skutnik
2008-06-17 09:02:01 UTC
Permalink
Hallo NG,

habe folgendes Problem mit Excel 2002:
Die Zellen a1 bis a3 wurden verbunden. In dieser Zelle befindet sich eine
Artikelnummer: 345.
Zelle b1 = name1
Zelle b2 = name2
Zelle b3 = name3
Ich möchte nun in der Spalte c die Artikelnummer und den jeweiligen Namen
verketten (a1&b1)
Wenn ich dies für jede Zelle manuell durchführe bekomme ich auch das
richtige Ergebnis. Wenn ich die Formel jedoch kopiere, erhalte ich in c2 und
c3 jedoch nur den Namen, ohne die Artikelnummer.
Leider kann ich a1 auch nicht statisch definieren, da nach einer
unbestimmten Anzahl namen eine neue Artikelnummer folgt.

Vielen Dank für eure Hilfe
Grüßli
Colleen
Claus Busch
2008-06-17 09:49:39 UTC
Permalink
Hallo Colleen,
Post by colleen skutnik
Die Zellen a1 bis a3 wurden verbunden. In dieser Zelle befindet sich eine
Artikelnummer: 345.
Zelle b1 = name1
Zelle b2 = name2
Zelle b3 = name3
Ich möchte nun in der Spalte c die Artikelnummer und den jeweiligen Namen
verketten (a1&b1)
Wenn ich dies für jede Zelle manuell durchführe bekomme ich auch das
richtige Ergebnis. Wenn ich die Formel jedoch kopiere, erhalte ich in c2 und
c3 jedoch nur den Namen, ohne die Artikelnummer.
Leider kann ich a1 auch nicht statisch definieren, da nach einer
unbestimmten Anzahl namen eine neue Artikelnummer folgt.
das sind die Schwierigkeiten, die man sich mit verbundenen Zellen
einhandelt ;-)
Probiere es mal per Makro:

Sub Verketten()

Dim LRow As Long
Dim Start As Long
Dim Ende As Long
Dim i As Long
Dim n As Long

LRow = Cells(Rows.Count, 2).End(xlUp).Row
Start = 1
For i = 1 To LRow + 1
Ende = Cells(i, 1).MergeArea.Rows.Count + Start - 1
For n = Start To Ende
Cells(n, 3) = Cells(i, 1) & Cells(n, 2)
Next n
Start = Ende + 1
i = Start - 1
Next i

End Sub


Mit freundlichen Grüssen
Claus Busch
--
Win XP Prof SP2 / Vista Ultimate
Office 2003 SP2 / 2007 Ultimate
Peter Schleif
2008-06-17 13:08:55 UTC
Permalink
Post by colleen skutnik
Die Zellen a1 bis a3 wurden verbunden. In dieser Zelle befindet sich eine
Artikelnummer: 345.
Zelle b1 = name1
Zelle b2 = name2
Zelle b3 = name3
Ich möchte nun in der Spalte c die Artikelnummer und den jeweiligen Namen
verketten (a1&b1)
Mit VBA oder nur mit Formeln?


*Mit VBA* Die folgende Funktion in ein Modul einzufügen. Die liefert
für jede Zelle (auch verbundene) die oberste linke Zelle:

Function ObersteZelle(zelle As Range) As Range
Set ObersteZelle = zelle.MergeArea.Cells(1, 1)
End Function

In deiner Tabelle kannst Du diese Funktion dann benutzen. Etwa so:

C1: =ObersteZelle(A1)&B1



*Ohne VBA*

Mit Hilfsspalte:
----------------
C1: =D1&B1
D1: =WENN(ODER(A1<>"";ZEILE()=1);A1;BEREICH.VERSCHIEBEN(D1;-1;0))

Ohne Hilfsspalte:
----------------
C1:=WENN(ODER(A1<>"";ZEILE()=1);A1;WERT(BEREICH.VERSCHIEBEN(D1;-1;0)))&B1

Ohne Hilfsspalte funktioniert aber nur, wenn die Artikelnummer _rein_
nummerisch sind und deine Namen tatsächlich _nicht_ mit einer Zahl
anfangen - wegen WERT(...)
colleen skutnik
2008-06-18 09:53:00 UTC
Permalink
Hallo Peter,
Post by Peter Schleif
Post by colleen skutnik
Die Zellen a1 bis a3 wurden verbunden. In dieser Zelle befindet sich eine
Artikelnummer: 345.
Zelle b1 = name1
Zelle b2 = name2
Zelle b3 = name3
Ich möchte nun in der Spalte c die Artikelnummer und den jeweiligen Namen
verketten (a1&b1)
Mit VBA oder nur mit Formeln?
*Mit VBA* Die folgende Funktion in ein Modul einzufügen. Die liefert
Function ObersteZelle(zelle As Range) As Range
Set ObersteZelle = zelle.MergeArea.Cells(1, 1)
End Function
C1: =ObersteZelle(A1)&B1
*Ohne VBA*
----------------
C1: =D1&B1
D1: =WENN(ODER(A1<>"";ZEILE()=1);A1;BEREICH.VERSCHIEBEN(D1;-1;0))
----------------
C1:=WENN(ODER(A1<>"";ZEILE()=1);A1;WERT(BEREICH.VERSCHIEBEN(D1;-1;0)))&B1
Ohne Hilfsspalte funktioniert aber nur, wenn die Artikelnummer _rein_
nummerisch sind und deine Namen tatsächlich _nicht_ mit einer Zahl
anfangen - wegen WERT(...)
Vielen Dank für deine beiden Lösungsmöglichkeiten. Habe beide versucht, bin
jedoch bei der Funktion gescheitert (c1= #Value, wenn du lust und Zeit
hättest wüßte ich gerne, was ich falsch gemacht habe) und habe mich deshalb
für die Hilfsspalte entschieden.

Herzliche Grüße
Colleen
Peter Schleif
2008-06-18 10:19:19 UTC
Permalink
Post by colleen skutnik
Vielen Dank für deine beiden Lösungsmöglichkeiten. Habe beide versucht, bin
jedoch bei der Funktion gescheitert (c1= #Value, wenn du lust und Zeit
hättest wüßte ich gerne, was ich falsch gemacht habe) und habe mich deshalb
für die Hilfsspalte entschieden.
Eventuell hast Du den Code in den VBA-Bereich deiner Tabelle
gespeichert. Der muss aber in ein separates Modul, welches in einer
neuen Excel-Mappe leider nicht standardmäßig angelegt ist. Du musst es
also erst einfügen. Im VBA-Editor: Menü | Einfügen Modul. Dort hinein
dann den Function-Code kopieren.

Ich habe die Test-Mappe mit den drei Varianten mal hochgeladen:

http://home.arcor.de/peter.schleif/Artikelnummer.xls

Darin ist auch noch ein Fehler in der Version ohne Hilfsspalte
behoben. (Die Formel WERT bezog sich immer noch auf Spalte D;
funktionierte aber nicht mit Spalte C. Geht jetzt aber auch.)

Peter

Loading...