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.

Makro statt sverweis
#1
Hallo!
Kann mir bitte jemand helfen.
Ich möchte mit einem Makro von Mappe1 die Spalte D, dem gleichen Namen in Mappe 2 in Spalte E übertragen.
Kann mir jemand den Code mitteilen.

Danke


Angehängte Dateien
.xlsx   Mappe1.xlsx (Größe: 8,89 KB / Downloads: 6)
.xlsx   Mappe2.xlsx (Größe: 8,91 KB / Downloads: 4)
Antwortento top
#2
Hallo Amigo,

hier mal ein Vorschlag in klassischer Form zu Deinem Anliegen.

Probier's mal aus ob's in Deinem Sinne funktioniert.
Code:
Option Explicit

Sub Daten_Uebertragen()
'Annahme: Beiden Mappen sind geöffnet
 Dim iZeile As Long, iGefunden As Long
 Dim WShZ As Worksheet
 
'Festlegen der Ziel-Mappe
 Set WShZ = Workbooks("Mappe2.xlsx").Sheets("Tabelle1")
 
 With Application
  .ScreenUpdating = False
  .Calculation = xlCalculationManual
 
'Beginn der Übertragung (ohne Überschrift)
  With Workbooks("Mappe1.xlsx").Sheets("Tabelle1")
    On Error Resume Next
    For iZeile = 1 To .UsedRange.Rows.Count
      iGefunden = Application.WorksheetFunction.Match( _
                  .Cells(iZeile, "A").value, WShZ.Range("A:A"), 0)
      If Not IsError(iGefunden) Then
         WShZ.Cells(iGefunden, "E").value = .Cells(iZeile, "D").value
      End If
    Next iZeile
  End With

  .ScreenUpdating = True
  .Calculation = xlCalculationAutomatic
 End With

End Sub
____________________
viele Grüße aus Freigericht
Karl-Heinz
Antwortento top
#3
Danke,
funktioniert wie gewünscht.
Antwortento top
#4
Hallo, wie sieht der Code aus  wenn der 1.Wert der übertragen werden soll in Zeile 4 steht, also mit Überschfiften.
Danke
Antwortento top
#5
Na da brauchst Du doch lediglich bei iZeile=4 anfangen:
Code:
Option Explicit

Sub Daten_Uebertragen()
'Annahme: Beiden Mappen sind geöffnet
 Dim iZeile As Long, iGefunden As Long
 Dim WShZ As Worksheet
 
'Festlegen der Ziel-Mappe
 Set WShZ = Workbooks("Mappe2.xlsx").Sheets("Tabelle1")
 
 With Application
  .ScreenUpdating = False
  .Calculation = xlCalculationManual
 
'Beginn der Übertragung (ohne Überschrift)
  With Workbooks("Mappe1.xlsx").Sheets("Tabelle1")
    On Error Resume Next
    For iZeile = 4 To .UsedRange.Rows.Count
      iGefunden = Application.WorksheetFunction.Match( _
                  .Cells(iZeile, "A").Value, WShZ.Range("A:A"), 0)
      If Not IsError(iGefunden) Then
         WShZ.Cells(iGefunden, "E").Value = .Cells(iZeile, "D").Value
      End If
    Next iZeile
  End With

  .ScreenUpdating = True
  .Calculation = xlCalculationAutomatic
 End With

End Sub
____________________
viele Grüße aus Freigericht
Karl-Heinz
Antwortento top
#6
Herzlichen Dank,

da hätte ich selber auch draufkommen können.
Antwortento top


Gehe zu:


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