Wie kopiere ich bestimmte zellen aus einer matrix?

Hallo Leute,
ich habe eine Problem:und zwar hab ich eine grosse tabelle welche immer in Zeile 5 beginnt.Die Überschriften stehen jedoch nicht immer an derselben stelle.Ich möchte aus der Spalte:Bennenung und der Spalte:Teilenummer jeweils immer die entsprechende Bennenung oder Teilenummer immer mit einer spalte abstand direkt neben die tabelle schreiben.
Also ich möchte das Makro gerne auf verschiedene Stücklisten anwenden,bei welchen die spalten jedoch nicht immer gleich angeordnet sind.

vielen dank im voraus
greets
effe

Hallo effe,

bitte mal ein Beispiel einstellen …

Gruß,
Claus

hallo claus,
bin ganz neu hier,kann man hier irgendwo xls mappen anhängen??

Hallo effe,

das weiss ich auch nicht. Falls es nicht geht, würde ich dir folgendes Forum empfehlen:
http://www.ms-office-forum.de/forum/

Da habe ich schon oft Antworten auf Excel- und Access-Fragen bekommen.

Gruß,
Claus

Hallo Effe,

zunächst: brrrr - ich schüttle mich. Welche Tabelle? Excel? Wenn ja, welche Version. Wenn Excel, warum dann als Datenbank vergewaltigen? Was soll das Makro genau machen? Die Spalten mit dem jeweiligen Titel umkopieren?

Letzteres nehme ich mal als gegeben an und komme dann zu folgendem Ansatz:
Schleife über A - ZZ der Zeile 6
Jeweilige Zelle (A6, B6 …) abfragen ob „Benennung“ oder „Teilenummer“ (was machst Du bei Schreibfehlern?) vorhanden ist, wenn ja: spalte merken
Ende der schleife
wenn spalteBenennung > 0 dann
Kopiere spalteBenennung nach SpalteX
wenn spalteTeilenummer > 0 dann
Kopiere spalteTeilenummer nach SpalteY
Interessant wäre dann noch die Länge der jeweiligen Spalte (sind Leerwerte enthalten?)

Alternativ kann man den befüllten Bereichen auch Namen zuweisen.
Bessere Alternative ist es, dies gleich mit einer Datenbank zu realisieren.

Vorschlag: Denke über meine o. g. Fragen nach, beschreibe das Problem und die Wunschvorstellung etwas detaillierter, dann werde ich auch besser helfen können.

Gruß
Harry

Hallo effe,

ich habe leider nicht viel Zeit, aber ich hoffe dir ein paar Hinweise geben zu können.

Mit dem Befehl

Range(„A1“).Select

selektierst du die Zelle A1. Ist sinnvoll für die Initialisierung. Mit

ActiveCell.Offset(r, s).Range(„A1“).FormulaR1C1

kannst du dann auf beliebige Zellen sowohl lesend als auch schreibend zugreifen. Du gehst dabei r Reihen nach unten und s Spalten nach rechts. Mit negativen Werten entsprechend nach oben bzw. links.

Mit Schleifen kannst du dann beliebige Bereiche systematisch durchgehen und entsprechend die Werte zusammenkopieren.

Ich hoffe das hilft dir!

Gruß
Philipp

Hallo Effe,
was heißt „nicht immer an derselben Stelle“? Heißt das in untersch. Spalten? Also: in der einen Tabelle stehen die beiden Spalten in Sp. A und Sp. B und in einer anderen z.B. in Sp. C und D?
Das müsste ich schon wissen. Ich bin heute nachmittag wieder da. Da könnte ich mich damit beschäftigen, wenn du mir noch ein paar Infos dazu schickst.

Jürgen

Hallo effe,
tut mir leid, aber ich kann dir nicht ganz folgen.
kannst du mir eine Beispieldatei schicken, aus der ich den aufbau deiner Tabelle und was von wo nach wo kopiert werden soll.
Anfangszustan->Endzustand.

Gruß Jörg
[email protected]

sorry, komme erst jetzt dazu, mir das mal anzusehen.

Hoffe, dass ich es richtig verstanden hab:
die Stücklisten fangen immer bei A5 an und sind immer eine zusammenhängende Tabelle - nur die Spalten sind unterscheidlich angeordnet, wobei die beiden gesuchetn immer vorhanden sind (halt nur an unterscheidlicher Stelle).

Könnte man wie folgt lösen:

Sub Stückliste()
Range(„A5“).Select
y = Selection.CurrentRegion.Rows.Count
x = Selection.CurrentRegion.Columns.Count
s1 = Null
s2 = Null
For i = 1 To x ’ suchen der Spalten in den Überschriften
If ActiveCell.Offset(0, i - 1).Value = „Benennung“ Then s1 = i
If ActiveCell.Offset(0, i - 1).Value = „Teilenummer“ Then s2 = i
Next i
If s1 = Null Or s2 = Null Then
MsgBox "Kann Spalte(n) nicht ermitteln "
Exit Sub
End If

Range(Cells(5, s1), Cells(5 + y - 1, s1)).Copy
Cells(5, x + 2).Select
Selection.PasteSpecial Paste:=xlValues ’ copy Spalte Benennung

Range(Cells(5, s2), Cells(5 + y - 1, s2)).Copy
Cells(5, x + 3).Select
Selection.PasteSpecial Paste:=xlValues ’ copy Spalte Teilenummer

Range(Cells(5, x + 2), Cells(5 + y - 1, x + 3)).Select ’ kopierte Daten markieren
Application.CutCopyMode = False
Cells.EntireColumn.AutoFit
End Sub

Habe das Makro und eine Beispieldatei hochgeladen:

http://docs.google.com/leaf?id=0B-Ji9HEywnq8Yjk3ODZk…

Hallo effe,

Sorry - ich kann dir leider nicht weiterhelfen.
Gruß,
Karsten