Microsoft Excel

Herbers Excel/VBA-Archiv

Spalten dynamisch auslesen | Herbers Excel-Forum


Betrifft: Spalten dynamisch auslesen von: mandy
Geschrieben am: 12.11.2009 09:18:23

Hallo,

Ich möchte per Makro Spalten von "Daten" nach "Verlauf" schreiben. Dazu will ich aber nicht nach Splatenzahl oder definieren, ob C und F und H... sonder n ich will nach Spaltenköpfe gehen.

Also, meine "Daten" haben in der ersten Zeile eine Spaltenüberschrift. Nun möchte ich nach "Verlauf" die Spalten kopieren, die in der Kopfzeile "Date" , "Name" und "Comment" stehen haben.

Soll so aussehen.

Sheet("Verlauf").SpalteD = Sheet("Daten").Spaltenüberschrift("Date")
Sheet("Verlauf").SpalteE = Sheet("Daten").Spaltenüberschrift("Name")
Sheet("Verlauf").SpalteH = Sheet("Daten").Spaltenüberschrift("Comment")

usw.

Das Problem dabei, zB die Spalte "Date" in Daten kann mal F sein, mal H sein...

Wie kann ich den das per Makro erledigen ?

Danke
Mandy

  

Betrifft: Nachtrag von: mandy
Geschrieben am: 12.11.2009 09:21:53

das rüberschreiben in die Tabelle "Verlauf" soll aber erst ab Zeile 5 gemacht werden. Also ich brauche oben 4 freie Zeilen.

Danke


  

Betrifft: Tabellen kopieren nach Spaltenüberschriften von: Erich G.
Geschrieben am: 12.11.2009 10:42:44

Hi Vorname(?),
hier: https://www.herber.de/forum/archiv/1112to1116/t1114531.htm#1114802
habe ich kürzlich so etwas Ähnliches produziert.

Vielleicht kannst du das an deine Gegebenheiten anpassen. Bei Problemen melde dich einfach!

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Nachtrag von: ChrisL
Geschrieben am: 12.11.2009 10:54:06

Hi

Hier noch ein Vorschlag:

Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim SpalteDate As Byte, SpalteName As Byte, SpalteComment As Byte
Dim LetzteZeile As Long

Set WS1 = Worksheets("Verlauf")
Set WS2 = Worksheets("Daten")

With WS2
    LetzteZeile = .Range("A65536").End(xlUp).Row

    SpalteDate = Application.Match("Date", .Rows(1), 0)
    SpalteName = Application.Match("Name", .Rows(1), 0)
    SpalteComment = Application.Match("Comment", .Rows(1), 0)

    .Range(.Cells(2, SpalteDate), .Cells(LetzteZeile, SpalteDate)).Copy WS1.Range("A5")
    .Range(.Cells(2, SpalteName), .Cells(LetzteZeile, SpalteName)).Copy WS1.Range("B5")
    .Range(.Cells(2, SpalteComment), .Cells(LetzteZeile, SpalteComment)).Copy WS1.Range("C5")
End With
End Sub

cu
Chris


Beiträge aus den Excel-Beispielen zum Thema "Spalten dynamisch auslesen"