Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
VBA copy und paste
#11
Hallo,

per VBA via Index/Vergleich so:

Code:
Sub StattFormel()   'schön flexibel
    Dim arrList(): arrList = Tabelle1.Range("A1:F4")
    arrList = Application.Index(arrList, Evaluate("row(1:" & UBound(arrList, 1) & ")"), Array(1, 3, 4, 6, 5))
End Sub

oder
Sub StattFormel1()  'Einzeiler
    Tabelle1.Range("A1") = Application.Index(Tabelle1.Range("A1:F4"), Evaluate("row(1:" & Tabelle1.Range("A1:F4").Rows.Count & ")"), Array(1, 3, 4, 6, 5))
End Sub

Ich weiß jetzt nicht, ob O2021 schon Spaltenwahl kennt. Das wäre dann ressourcenschonender als SEQUENZ(). =SPALTENWAHL(A1:F4;1;3;4;6;5)

In VBA ist leider SPALTENWAHL() bisher nicht vorhanden. Das wird also auch mit Evaluate nicht zum Ziel führen.

Sabinas Formel ver VBA't:
Code:
Sub SpaltenwahlViaSequence()
    Dim rng As Range, arr()
    Set rng = Tabelle1.Range("A1:F4")
    arr = Application.Index(rng, WorksheetFunction.Sequence(rng.Rows.Count), Array(1, 3, 4, 6, 5))
    Tabelle1.Range("A1").Resize(UBound(arr), UBound(arr, 2)).Value = arr
End Sub


Gruß Uwe
Zitieren
#12
Moin Uwe!
Zitat: Ich weiß jertzt nicht, ob O2021 schon Spaltenwahl kennt.
Nein, erst 365 oder Online.
Zitat:In VBA ist leider SPALTENWAHL() bisher nicht vorhanden.
Wäre dann ja auch erst in 365 relevant. Tongue
ChooseCols hat es (noch) nicht in die WorksheetFunction-Auflistung geschafft.

Gruß Ralf
Zitieren
#13
Hallo Ralf,

O2024 kann schon Spaltenwahl. Das habe ich bei meinem LET() und LAMBDA() Kram schon mit verwurstet.

Ich habe gerade gesehen, dass ich noch O2019 als Version hier stehen habe. O2024 gibt es hier noch nicht zur Auswahl. Naja, O365 mal sehen.

Gruß Uwe
Zitieren
#14
Hallo Ralf,

ich habe nun mal ein bisschen zum Thema Spaltenwahl und VBA Worksheetfunction. rum gesucht. Außer das es wohl auch zukünftig nicht in VBA zu erwarten ist, da es wohl Probleme mit der Engine gibt, habe ich dazu nichts gescheites rausfinden können. Da ist denke ich mal der klassische INDEX/Vergleich via Evaluate das Mittel der Wahl, weil es doch sehr flexibel ist.

Gruß Uwe
Zitieren
#15
Hallo Uwe,

Zitat:Außer, dass es wohl auch zukünftig nicht in VBA zu erwarten ist,

in meinem CSE-AddIn ist SPALTENWAHL() ebenfalls drin ... steht also in VBA zur Verfügung ... nur so zur Ergänzung.
Link zum AddIn hier im Forum: https://office-fragen.de/attachment.php?aid=1562
Wollte ich hier aber nicht einbringen.
_________
VG Sabina
Zitieren
#16
Hallo Sabina,

in der MS VBA Engine als Worksheetfunction wird es dies wohl nicht geben. In deinem AddIn als programmierte Funktion schon.

Gruß Uwe
Zitieren
#17
Hallo
ich bedanke mich für die tolle Hilfe 
habe  mein Problem gelöst

Sub CopyAktuelleSeite()
Intersect(ActiveSheet.Range("A:A,C:F"), ActiveSheet.Range("C5:C35").SpecialCells(xlCellTypeConstants, 3).EntireRow).Copy
Sheets("meine").Range("A11").PasteSpecial xlPasteValues

    ' Aktiviert das Blatt mit dem Namen "meine" (oder dem tatsächlichen Namen)
    Sheets("meine").Activate

    Dim temp As Variant
      temp = Range("c11:c35").Value
        Range("C11:c35").Value = Range("D11:d35").Value
      Range("D11:d35").Value = temp
End Sub

das klappt jetzt so wie ich es wollte
ganz liebe grüsse Thomas
Zitieren


Gehe zu:


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




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions