Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1236to1240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeile-Spalte kopieren Code anpassen

Zeile-Spalte kopieren Code anpassen
Ralf
Hallo miteinander,
noch ist meine Frage von vorhin nicht beantwortet und ich stehe schon vor dem nächsten (und bei diesem Projekt hoffentlich letzten) Problem.
Ich habe einen hier gefundenen Code ein wenig verändert und soweit läuft alles.
Werte aus 2 Zeilen kopieren, sortieren und in Zeilen einfügen..... Soweit das Makro, das auch funktioniert.
Ich brauche aber die Spalte A (Die in Zeile 1 kopiert wird) unsortiert. Die andere soll sortiert werden.
Ich habe schon alles versucht... leider ohne Erfolg.
Kann mir jemand auf den richtigen Weg führen?
hier der Code:
  • 
    Sub FilialenVonZeileInSpalte()
    Dim objSortedList  As Object
    Dim objArrayList   As Object
    Dim lngLetzte      As Long
    Dim intSpalte      As Integer
    Dim lngIndex       As Long
    Dim vntArray       As Variant
    ThisWorkbook.Worksheets("Ergebnis").Activate ' den Tabellenblattnamen ggf. anpassen!
    Range("D2:AZ3").ClearContents ' den Ausgabe-Bereich löschen
    For intSpalte = 1 To 2 ' Spalte A und B
    lngLetzte = Cells(Rows.Count, intSpalte).End(xlUp).Row
    vntArray = Range(Cells(2, intSpalte), Cells(lngLetzte, intSpalte)).Value2
    Set objSortedList = CreateObject(Class:="System.Collections.SortedList")
    Set objArrayList = CreateObject("System.Collections.ArrayList")
    objSortedList.capacity = UBound(vntArray)
    For lngIndex = 1 To UBound(vntArray)
    If Not IsEmpty(vntArray(lngIndex, 1)) Then _
    objSortedList(vntArray(lngIndex, 1)) = ""
    Next lngIndex
    objArrayList.AddRange objSortedList.keys
    lngLetzte = objSortedList.keys.Count - 1 ' die letzte Ausgabe-Spalte ermitteln
    If intSpalte = 1 Then ' wenn Spalte A, dann Zeile 1
    Range(Cells(1, 4), Cells(1, 4 + lngLetzte)) = objArrayList.toarray
    Else                 ' wenn Spalte B, dann Zeile 2
    Range(Cells(2, 4), Cells(2, 4 + lngLetzte)) = objArrayList.toarray
    End If
    Set objArrayList = Nothing ' die Ressourcen zurücksetzen
    Set objSortedList = Nothing
    Next intSpalte
    End Sub
    

  • Vielen Dank schonmal
    LG Ralf

    5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Benutzer
    Anzeige
    AW: Zeile-Spalte kopieren Code anpassen
    16.11.2011 23:08:10
    Gerd
    Hallo Ralf,
    meinst Du ganz einfach so:
    Sub Quer()
    Dim lngLetzte As Long
    lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row
    Range(Cells(1, 4), Cells(1, 4 + lngLetzte - 2)) = WorksheetFunction.Transpose(Range(Cells(2, 1), _
    Cells(lngLetzte, 1)).Value)
    End Sub
    
    Oder sollen noch vorher Prüfungen (z.B. keine Leerwerte, keine Duplikate) erfolgen?
    Gruß Gerd
    AW: Zeile-Spalte kopieren Code anpassen
    16.11.2011 23:41:28
    Ralf
    Vielen Dank Gerd,
    so einfach kanns sein wenn man weiß wies geht ;-)
    Funktioniert!!!
    Jetzt ist ja nur noch ein Problem aus einem anderen Post offen.
    Wenn das genau so leicht umzusetzen ist kann ich ja zuversichtlich sein, dass mir jemand hilft.
    Gruß Ralf
    Anzeige
    AW: Zeile-Spalte kopieren Code anpassen
    17.11.2011 01:19:14
    Ralf
    Hallo Gerd,
    habe mich zu früh gefreut.
    Er kopiert jetzt zwar A2:A(Senkrecht) in D1:XX1(Wagerecht) aber nicht B2:B(Senkrecht) in D2:XX2(Wagerecht).
    Habe zwar versucht deinen Code entsprechend abzuändern aber irgendwie klappt es nicht.
    Bekomme zwar die Zellen ab D2 belegt aber immer noch mit den Werten aus Spalte A. ;-(
    Ich habe für eine weitere Anfrage eh eine Abgespeckte Version auf den Server geladen.
    Wenn du einmal schauen willst:
    https://www.herber.de/bbs/user/77538.xls
    Hier ist zwar noch nicht dein Makro drin gewesen aber mann müsste trotzdem sehen um was es geht.
    Gruß Ralf
    Anzeige
    AW: Zeile-Spalte kopieren Code anpassen
    17.11.2011 09:00:09
    Reinhard
    Hallo Ralf,
    
    Sub Quer()
    Dim lngLetzte As Long
    With ThisWorkbook.Worksheets("Ergebnis")
    lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row - 1
    .Range("D1:D2").Resize(2, lngLetzte) = _
    WorksheetFunction.Transpose(.Range("A2:B2").Resize(lngLetzte, 2))
    End With
    End Sub
    

    Gruß
    Reinhard
    AW: Zeile-Spalte kopieren Code anpassen
    17.11.2011 09:19:04
    Ralf
    D A N K E!!
    Das wars...
    Gruß Ralf

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige