Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spalte in VBA ändern
#1
Hallo zusammen,

Ich hoffe ihr könnt mir helfen.

Ich verwende das folgende Makro, das das hier tut:
"wenn in Zeile 1 die Überschriften stehen, wird so für jeden verschiedenen Eintrag in Spalte A (mit Ausnahme der Überschrift aus Zeile 1) eine neue Datei erstellt und unter dem Namen des Eintrags im gleichen Ordner wie die Ausgangsmappe gespeichert. "

------------------------
Sub ExcelnachSpaltetrennen()
    Dim MyDic As Object, rng As Range, Zelle As Range, ws As Worksheet, wb As Workbook
    Application.ScreenUpdating = False
    Set MyDic = CreateObject("Scripting.Dictionary")
    Set ws = ActiveSheet
    With ws
        Set rng = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
        For Each Zelle In rng.Offset(1, 0)
            If MyDic(Zelle.Value) = "" And Not IsEmpty(Zelle) Then
                MyDic(Zelle.Value) = 1
                rng.AutoFilter field:=1, Criteria1:=Zelle
                Set wb = Workbooks.Add
                .UsedRange.SpecialCells(xlCellTypeVisible).Copy wb.Sheets(1).Cells(1, 1)
                wb.SaveAs Filename:=ThisWorkbook.Path & "\" & Zelle & ".xlsx", FileFormat:=51
                wb.Close False
                rng.AutoFilter
            End If
        Next
    End With
    Application.ScreenUpdating = True
End Sub

------------------------

Meine Frage ist nun, wie ich das Makro anpassen kann, damit es nicht neue Dateien erzeugt auf Grund der Infos in Spalte A, sondern nach Spalte K ?

Vielen Dank!
Antworten Top
#2
Hallo,

Änder folgend Zeile:

        Set rng = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))

wie folgt um:

        Set rng = .Range(.Cells(1, 11), .Cells(.Rows.Count, 11).End(xlUp))

Die zweite Zahl bei Cells() ist die Spaltenzahl
Gruß Atilla
Antworten Top
#3
Hallo!
Cells(Zeile, Spalte)
A ist 1
K ist 11

MS ist aber so nett, dass man die Spalte auch als Buchstaben, dann aber in "" angeben kann.
Cells(1, 11)  und Cells(1, "K") ist jeweils die Zelle K1

(Ich hoffe nur, Du weißt, was Du da machst; ein Scripting.Dictionary ist ja nichts für Beginners in VBA)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste