334 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo ich habe im weiten WEB einen code gefunden der mir jeweils eine Spalte in
eine neues Tabellen Blatt kopiert
Sub Kopieren()

Dim WkSh_Q   As Worksheet ' Tabellenblatt Quelle / Herkunft
Dim WkSh_Z   As Worksheet ' Tabellenblatt Ziel
Dim lZeile   As Long      ' For/Next Zeilen-Index
Dim iSpalte  As Integer   ' For/Next Spalten-Index
Dim lZeile_Z As Long      ' Zeilenindex im Ziel Blatt

   Set WkSh_Q = Worksheets("1628")  ' <= Namen anpassen
   Set WkSh_Z = Worksheets("new")  ' <= Namen anpassen

   lZeile_Z = 2 ' <= Start-Zeile im Ziel-Blatt

   For iSpalte = 3 To 26 ' <= 3 = Spalte D, 26 = Spalte Z
      For lZeile = 1 To 150
         WkSh_Z.Range("A" & lZeile_Z).Value = WkSh_Q.Cells(lZeile, iSpalte).Value
         lZeile_Z = lZeile_Z + 1
      Next lZeile
   Next iSpalte
  
End Sub
Das ist leider nicht ganz was ich suche. Ich würde gerne daraus folgendes machen
habe aber vom programmieren nicht viel Ahnung, außer immer gute Ideen
Also: jede spalte die in der ersten Zeile gefüllt ist wird auf ein neues Tabellenblatt
kopiert das Tabellenblatt erhält den Namen der ersten Zeile
kann mir da jemand weiter helfen

1 Antwort

0 Punkte
Beantwortet von
Hallo drralle .-)

Ein Beispiel!

Gruss Nighty

Die Zeile wäre anzupassen!
[code]QuellTabelle = "Tabelle1"[/code]

[code]Sub CopySpalte()
    Dim ZellenIndex As Long
    Dim QuellTabelle As String
    QuellTabelle = "Tabelle1"
    For ZellenIndex = 1 To Worksheets(QuellTabelle).UsedRange.SpecialCells(xlCellTypeLastCell).Column
        If Worksheets(QuellTabelle).Cells(1, ZellenIndex) <> "" Then
            Worksheets.Add after:=Worksheets(Worksheets.Count)
            Worksheets(Worksheets.Count).Name = Worksheets(QuellTabelle).Cells(1, ZellenIndex)
            Worksheets(QuellTabelle).Columns(ZellenIndex).Copy Worksheets(Worksheets.Count).Cells(1, 1)
        End If
    Next ZellenIndex
    Worksheets(QuellTabelle).Activate
End Sub[/code]
...