Thema Datum  Von Nutzer Rating
Antwort
Rot Makro Kopieren in verschiedene Arbeitsblätter auf Basis von Arrays/ Variablen
25.10.2016 15:39:38 Dennis
NotSolved
30.10.2016 15:36:18 BigBen
NotSolved

Ansicht des Beitrags:
Von:
Dennis
Datum:
25.10.2016 15:39:38
Views:
1381
Rating: Antwort:
  Ja
Thema:
Makro Kopieren in verschiedene Arbeitsblätter auf Basis von Arrays/ Variablen

Hallo Zusammen,

ich bin am Verzweifeln und vermutlich einfach nur zu doof. Das letzte Mal habe ich vor ca. vor 10 Jahren etwas programmiert.

Aktuell habe ein Arbeitsblatt Import, welches mit Rohdaten 1x im Monat gefüllt wird. Diese Rohdaten müssen gefiltert werden und das jeweilige gefilterte Ergebnis in ein anderes Arbeitsblatt kopiert werden.

Gefiltert wird auf die Spalte Name und die Arbeitsblätter sind mit dem passenden Namenskürzel benannt.

Mit dem manuellen Aufzeichnen eines Markos habe ich die Funktion grundsätzlich am Laufen, ist aber nicht schön.

Ich möchte nun über eine Hilfstabelle 2 Arrays befüllen, welche mir das setzen des Filters und des Kopierens auf das richtige Blatt vereinfachen.

Die zu setzenden Filter können dabei von Monat zu Monat variieren.

Aktuell habe ich folgendes versucht:

Dim name As Variant
Dim blatt As Variant

Dim count As String

name = Worksheets("Hilfstabellen").Range("J2:J" & IIf(IsEmpty(Cells(Rows.count, 2)), Cells(Rows.count, 2).End(xlUp).Row, Rows.count))
blatt = Worksheets("Hilfstabellen").Range("K2:K" & IIf(IsEmpty(Cells(Rows.count, 2)), Cells(Rows.count, 2).End(xlUp).Row, Rows.count))
count = Worksheets("Hilfstabellen").Range("B26").Value

For i = 1 To count

Sheets("Import").Select
  ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=1, Criteria1:= _
        name
    Range("Tabelle2[#All]").Select
    Selection.Copy
    Sheets(blatt).select
    ActiveWindow.SmallScroll Down:=-54
    Range("A34").Select
    ActiveSheet.Paste
    Sheets("Import").Select
    ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=1
    Application.CutCopyMode = False
        
    Next i

End Sub

 

Die beiden Arrays werden sauber befüllt und ich kann diese wunderbar in einer Msgbox innerhalb der Schleife ausgeben.

Count gibt die Anzahl der Schleifen wieder und wird mittels =anzahl2 der Namenstabelle erzeugt.

Wie bereits geschildert ist diese Liste in ihrer Länge variable.

 

Probleme habe ich nun bei der Auswahl des Ziel Arbeitsblattes und beim setzen des Filters.

Wenn ich Code auf den Filter reduziere werden Ergebnisse entfernt und kein Filter ausgewählt.

Sobald das Zielblatt gewählt werden soll erhalte eine Fehlermeldung das der Typ nicht passen würde.

Hat jemand vielleicht einen Tipp für mich?


Besten  Dank

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Makro Kopieren in verschiedene Arbeitsblätter auf Basis von Arrays/ Variablen
25.10.2016 15:39:38 Dennis
NotSolved
30.10.2016 15:36:18 BigBen
NotSolved