Spalten aus mehreren Excel Tabellen in externes Excel Sheet in eine Spalte exportier
#1
Hallo Zusammen!

Ich habe folgendes Problem:
Ich habe verschiedene Excel-Dokument, die jeweils 30+ Tabellen beinhalten.
Jedes dieser Dokumente ist gleich aufgebaut.
Die erste Tabelle ist ein Overview und Tabelle 2 - X sind angaben zu einzelnen Daten(Usern).
In den Tabellen 2 - X sind eigentlich nur die User in Spalte A nacheinander aufgelistet.

Ich möchte ein Makro schreiben, das folgende Funktion hat:
In ein externes Excel-Sheet sollen alle User aus den Tabellen 2-X in Spalte A nacheinander aufgelistet werden und anschließend die Duplikate entfernt werden.

Kann mir hierzu jemand helfen?

Vielen Dank schon Mal im vorraus,

Grüße
Top
#2
Hi,

(05.04.2017, 10:43)MarJohSel schrieb: und Tabelle 2 - X sind angaben zu einzelnen Daten(Usern).
In den Tabellen 2 - X sind eigentlich nur die User in Spalte A nacheinander aufgelistet.

was nun, mMn wiederspricht sich das?
Top
#3
(05.04.2017, 10:43)MarJohSel schrieb: Ich möchte ein Makro schreiben, das folgende Funktion hat: [..]
... und was hindert dich daran, erst einmal eine Vorleistung in der Form zu erbringen, dass du mit dem Makro-Recorder erst einmal etwas aufzeichnest?
Das Ergebnis mit ein, zwei (gekürzten und anonymisierten) Muster-xlsx dann hier einstellen wäre hilfreich.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#4
@Rabe
widerspricht sich nicht wirklich, damit meine ich dass sich die Daten auf eine Spalte beschränken

@GMG-CC
ich habe leider nicht so gute Kenntnisse in VBA/ mit Makros, aber habe natürlich auch versucht etwas aufzuzeichen

Sub User_Count()
'
' User_Count Makro
'

'
    Windows("Salesman_count_20170329_ANDROID.xlsx").Activate
' Salesman_count_..... ist das Sheet aus dem ich die Daten haben will

    Sheets("DA_DK_AGR").Select
' DA_DK_AGR ist die zweite Tabelle/ die erste die ich verwenden will

    Range("A1").Select
    Selection.End(xlDown).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
' hier will ich nur die Inhalte aus Spalte A kopieren

    Windows("All_User.xlsm").Activate
    ActiveSheet.Paste
    Application.CutCopyMode = False
' hier will ich den kopierten Inhalt in das neue Excel Sheet einfügen

    Selection.End(xlDown).Select
    Range("A5").Select
' hier will ich ans Ende dieser eingefügten Liste springen, um dort anschließend den Inhalt der nächsten Tabelle einzufügen

    Windows("Salesman_count_20170329_ANDROID.xlsx").Activate
    Sheets("DA_DK_AGR_TURF").Select
    Range("A1").Select
    Selection.End(xlDown).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Windows("All_User.xlsm").Activate
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.End(xlDown).Select
    Range("A8").Select
    Windows("Salesman_count_20170329_ANDROID.xlsx").Activate
    Sheets("DA_DK_TURF").Select
    Range("A1").Select
    Selection.Copy
    Windows("All_User.xlsm").Activate
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A9").Select
End Sub


-> Das ist das aufgezeichnete Makro für die Tabellenblätte 2-4
Top
#5
Moin,
das ist doch schon einmal ein Anfang. Bleibt noch:
Zitat:Das Ergebnis mit ein, zwei (gekürzten und anonymisierten) Muster-xlsx dann hier einstellen wäre hilfreich.

damit wir das Ganze gut nachvollziehen können.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#6
Hi,

(05.04.2017, 13:32)MarJohSel schrieb: @Rabe
widerspricht sich nicht wirklich, damit meine ich dass sich die Daten auf eine Spalte beschränken

ok, Du hast also X Blätter mit jeweils nur Daten (Usernamen) in Spalte A?

versuche mal dieses Makro an einer Kopie Deiner Dateien (Tabelle1 ist das neue Blatt):
Sub User_Count()
   ' 
   ' User_Count Makro 
   ' 
   
   ' 
   
   For i = 2 To Sheet.Count
      ' Salesman_count_..... ist das Sheet aus dem ich die Daten haben will 
      ' DA_DK_AGR ist die zweite Tabelle/ die erste die ich verwenden will 
      With Workbook("Salesman_count_20170329_ANDROID.xlsx").Sheets(i)
         loLetzte1 = .Cells(Rows.Count, 1).End(xlUp).Row           ' letzte belegte in Spalte A (1) 
         loLetzte = Workbook("All_User.xlsm").Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row           ' letzte belegte in Spalte A (1) 
         
         ' hier will ich nur die Inhalte aus Spalte A kopieren 
         ' hier will ich den kopierten Inhalt in das neue Excel Sheet einfügen 
         .Range("A1:A" & loLetzte1).Copy Workbook("All_User.xlsm").Sheets("Tabelle1").Range("A" & loLetzte)
      End With
   Next i
   Application.CutCopyMode = False
End Sub
Top


Gehe zu:


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