Collapse column

Autor Thema: Office 2013: Makro - Spalte von einem Tabellenblatt in ein anderes übertragen  (Gelesen 633 mal)

Offline Marcel063

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Anfänger
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2013
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

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2013: Makro - Spalte von einem Tabellenblatt in ein anderes übertragen
« Antwort #1 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ß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline Marcel063

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Anfänger
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2013
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

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
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ß
« Letzte Änderung: März 19, 2017, 10:06:54 Vormittag von maninweb »
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.