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.

[VBA] Makro verkürzen
#11
Oder:


Code:
Sub M_snb()
  With Sheet1.UsedRange
    For j = 1 To 10
      Sheet2.Cells(1).Resize(.Rows.Count, .Columns.Count).Columns(Choose(j, 1, 4, 22, 5, 6, 7, 10, 11, 15, 18)) = .Columns(Choose(j, 9, 4, 11, 24, 10, 8, 21, 18, 5, 28)).Value
    Next
  End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Antworten Top
#12
Hallo snb,

danke, das teste ich auch.

Nun noch eine Frage: wenn ich den Quellbereich gefilert habe, wie kann ich in dem Makro dann nur die angezeigten Werte übertragen?
Antworten Top
#13
(08.06.2018, 12:13)Rabe schrieb: wenn ich den Quellbereich gefilert habe, wie kann ich in dem Makro dann nur die angezeigten Werte übertragen?

Entschuldige, aber das verstehe ich nicht ganz   :(
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#14
Hi snb,

im Original-Code werden vor dem Kopieren die Quellspalten gefiltert (325 aus 7600 Zeilen) und nur die sichtbaren Zellen kopiert und im Ziel eingefügt.
Code:
...
  If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
  ActiveSheet.ListObjects("Tabelle1").Range.autofilter Field:=18, Criteria1:="Lager"
...

Wenn ich das folgende Makro verwende:
Code:
Sub M_snb()
 For j = 1 To 10
   Workbooks("EVG.xlsb").Sheets("2001").UsedRange.Columns(Choose(j, 9, 4, 11, 24, 10, 8, 21, 18, 5, 28)).Copy
   Workbooks("Aktuell.xlsm").Sheets("Rohdaten").Cells(1, Choose(j, 1, 4, 22, 5, 6, 7, 10, 11, 15, 18)).PasteSpecial Paste:=xlValues
 Next
End Sub
dann werden alle Daten der Quell-Spalten in den Zielbereich eingefügt, inklusive der ausgefilterten. Ich benötige aber nur die Daten, die in den Quellspalten nicht ausgefiltert sind, also nur die sichtbaren.
Antworten Top
#15
So geht das:


Code:
Sub M_snb()
   With ThisWorkbook.Sheets(1).ListObjects(1).Range
      .AutoFilter 18, "Lager"
      For j = 1 To 10
         .Columns(Choose(j, 9, 4, 11, 24, 10, 8, 21, 18, 5, 28)).Copy
         Sheet2.Cells(1, Choose(j, 1, 4, 22, 5, 6, 7, 10, 11, 15, 18)).PasteSpecial -4163
      Next
   End With
End Sub

NB. man filtert nicht aus, doch man filtert. Die gefilterte Daten sind sichtbar.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Antworten Top
#16
Hi,

das hat funktioniert, danke!

Was bewirkt warum das "-4163"?
Wo ist das dokumentiert?
Antworten Top
#17
Hallo Ralf,

meine Googlesuche hat mich hier hin geführt:
https://analysistabs.com/vba-code/range/m/pastespecial/
Antworten Top
#18
Hi,

das heißt also:
-4163 ist xlPasteValues
When XlPasteType = xlPasteValues, Only values in the copied range are pasted.

Hier steht:
xlPasteValues | -4163 | Werte werden eingefügt.


Das definiert doch nirgends, daß nur die gefilterten Werte kopiert werden, trotzdem klappt es mit snbs Makro.



Komischerweise habe ich doch schon früher probiert, die Daten zu kopieren mit:
Workbooks("aktuell.xlsm").Sheets("Rohdaten").cells(1,choose(j,1,4,22,5,6,7,10,11,15,18)).PasteSpecial Paste:=xlPasteValues

Da kam ja eine Fehlermeldung.
siehe  #5
Antworten Top
#19
VBEditor Alt F11
ObjectBrowser F2

   
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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