Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: Marcel063 am März 17, 2017, 18:39:27 Nachmittag

Titel: Office 2013: Makro - Spalte von einem Tabellenblatt in ein anderes übertragen
Beitrag von: Marcel063 am März 17, 2017, 18:39:27 Nachmittag
Hallo zusammen,

zunächst einmal finde ich es toll, dass einem hier geholfen wird.

Ich muss bis nächste Woche ein Makro erstellen, welches eine Spalte aus einem Tabellenblatt in ein anderes Tabellenblatt kopiert und einfügt. In der Quelle (Tabellenblatt 1) sind ganz links in der Spalte Einträge, welche oft mehrmals vorkommen, und rechts daneben eine Spalte (also die, die in das Tabellenblatt 2 kopiert werden soll). Im Tabellenblatt 2 sind die Einträge aus Tabellenblatt 1 ganz linke Spalte so geordnet, dass der Eintrag, der am meisten vorkommt, an erster Stelle steht usw. Das bedeutet jetzt, dass ich die rechte Spalte aus Tabellenblatt 1 so in das Tabellenblatt 2 kopieren muss, dass diese mit den EInträgen in der linken Spalte zusammen passt.

Ich hoffe ich konnte mein Problem gut beschreiben (bin nicht der Beste in sowas ^^)

Ich bedanke mich schonmal bei allen, die mir versuchen zu helfen :)

LG
Titel: Antw:Office 2013: Makro - Spalte von einem Tabellenblatt in ein anderes übertragen
Beitrag von: maninweb am März 18, 2017, 13:34:41 Nachmittag
Hallo,

Zitat
Ich muss bis nächste Woche ein Makro erstellen, welches...
Was hast Du denn schon entwickelt? Also wie sieht Dein Code aus?

Gefühlt würde ich sagen, für die Aufgabe brauchst Du kein Makro. Aber mehr können Dir die Helfer
und Helferinnen hier im Forum sicherlich sagen, wenn Du eine Beispieldatei mit Ist und Soll erstellst
und hier reinstellst.

Gruß
Titel: Antw: Antw:Office 2013: Makro - Spalte von einem Tabellenblatt in ein anderes übertragen
Beitrag von: Marcel063 am März 18, 2017, 19:12:58 Nachmittag
Hallo,

Zitat
Ich muss bis nächste Woche ein Makro erstellen, welches...
Was hast Du denn schon entwickelt? Also wie sieht Dein Code aus?

Gefühlt würde ich sagen, für die Aufgabe brauchst Du kein Makro. Aber mehr können Dir die Helfer
und Helferinnen hier im Forum sicherlich sagen, wenn Du eine Beispieldatei mit Ist und Soll erstellst
und hier reinstellst.

Gruß


Hallo,
danke für die Antwort. Folgendermaßen: ich habe hier schon folgenden Code erstellt, um eine Spalte aus Tabellenblatt 1 in 2 andere Tabellenblätter zu übertragen. Am Ende sollen die Werte aus Tabellenblatt 1 jedoch nicht nur in diese beiden Tabellen, sondern in insgesamt 10 Tabellenblätter übertragen werden. Brauche ich jetzt dafür immer 10 Deklarationen (z.B. a1,a2,a3,a4......, letzte1,letzte2,letzte3..) und 10 For-Schleifen oder kann man das einfacher/eleganter lösen?

Sub rueber()
Dim a1 As Variant
Dim a2 As Variant
Dim letzte1 As Long
Dim letzte2 As Long
Dim i As Long
Dim wksQ As Worksheet
Dim wksZ1 As Worksheet
Dim wksZ2 As Worksheet
Set wksQ = Worksheets("Beschreibung")
Set wksZ1 = Worksheets("X")
Set wksZ2 = Worksheets("Y")
 letzte1 = wksZ1.Cells(wksZ1.Rows.Count, 3).End(xlUp).Row
 letzte2 = wksZ2.Cells(wksZ2.Rows.Count, 3).End(xlUp).Row
    For i = 1 To letzte1
      a1 = Application.Match(wksZ1.Cells(i, 3), wksQ.Columns(2), 0)
        If IsNumeric(a1) Then
          wksZ1.Cells(i, 6).Value = wksQ.Cells(a1, 11).Value
        Else
          MsgBox "nicht vorhanden"
        End If
    Next
    For i = 1 To letzte2
      a2 = Application.Match(wksZ2.Cells(i, 3), wksQ.Columns(2), 0)
        If IsNumeric(a2) Then
          wksZ2.Cells(i, 6).Value = wksQ.Cells(a2, 11).Value
        Else
          MsgBox "nicht vorhanden"
        End If
    Next
Set wksQ = Nothing
Set wksZ1 = Nothing
Set wksZ2 = Nothing
End Sub

Danke!

LG
Titel: Antw:Office 2013: Makro - Spalte von einem Tabellenblatt in ein anderes übertragen
Beitrag von: maninweb am März 19, 2017, 10:05:16 Vormittag
Hallo,

unabhängig davon, dass ich Deine Mappe sicherlich nicht nachbauen werde und die Frage jetzt eine andere
ist, als die vorherige, anbei ein ungetesteter Code basierend auf Deinem...

Code: Visual Basic
  1. Sub rueber()
  2.  
  3.   Dim c As Long
  4.   Dim n As Long
  5.   Dim p As Long
  6.   Dim v As Variant
  7.  
  8.   Dim s(0 To 2) As String
  9.  
  10.   s(0) = "Beschreibung"
  11.   s(1) = "X"
  12.   s(2) = "Y"
  13.  
  14.   For n = LBound(s) To UBound(s)
  15.    
  16.     With ThisWorkbook.Worksheets(s(n))
  17.    
  18.       c = .Cells(.Rows.Count, 3).End(xlUp).Row
  19.      
  20.       For p = 1 To c
  21.        
  22.         v = Application.Match(.Cells(p, 3), _
  23.             ThisWorkbook.Worksheets(s(0)).Columns(2), 0)
  24.        
  25.         If IsNumeric(v) Then
  26.          
  27.          .Cells(p, 6).Value = ThisWorkbook.Worksheets(s(0)) _
  28.          .Cells(v, 11).Value
  29.          
  30.         Else
  31.          
  32.           MsgBox "nicht vorhanden"
  33.          
  34.         End If
  35.        
  36.       Next
  37.      
  38.     End With
  39.    
  40.   Next
  41.  
  42. End Sub

Gruß