Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1432to1436
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellen abgleichen

Tabellen abgleichen
07.07.2015 22:55:35
Barbara
Hallo,
Könnt Ihr mir bitte helfen?
Es dürfte nicht all zu schwer sein, wenn man sich auskennt. Die Beschreibung des Problems ist etwas länger. Aber ich möchte es möglichst verständlich erklären.
Gegeben sind zwei Excel-Tabellen Haus.xls und Kunde.xls, die abzugleichen sind. Siehe Anhang.
Gesucht: Ein Makro, das folgendes kann:
Es soll in der Datei Haus.xls stehen und mittels Button "Bestellung abholen" im Blatt "Liste" aufgerufen werden.
Das habe ich hier bereits vorbereitet.
Nun soll man aufgefordert werden, die andere Datei Kunde.xls auszuwählen. Auch das habe ich vorbereitet und hoffe, dass dieser Code OK ist. Falls nicht, bitte um Hinweise.
Nun sollen Werte bestimmter Zellen aus Kunde.xls nach Haus.xls übertragen werden.
Welche Zellen übertragen werden sollen, steht in Haus.xls im Bereich mit dem Namen "Kundendaten" (Blatt "Liste" B5 bis B11).
Es soll also Bestellung!C3 von Kunde.xls in die selbe Zelle Bestellung!C3 in Haus.xls übertragen werden.
Dann das selbe mit
Bestellung!C4
Bestellung!C7
usw.
bis die Liste durch ist.
Das wär's.
Hoffe, mein Problem nicht zu umständlich dargelegt zu haben und freue mich auf Eure Antworten.
LG,
Barbara

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
wo sind die Dateien? o.T.
07.07.2015 22:57:51
Sepp
Gruß Sepp

AW: Tabellen abgleichen
07.07.2015 23:02:04
Barbara
Und hier die Datei Kunde.xlsx.
https://www.herber.de/bbs/user/98691.xlsx
ist nur schwierig, weil ich nach dem Hochladen wieder zur Texteingabe zurück muss, um den Link einzufügen.
Hoffe, das ist nun richtig so.
LG,
Barbara

Anzeige
AW: Tabellen abgleichen
07.07.2015 23:21:18
Sepp
Hallo Barbara,
wenn die Zellen immer eins zu eins übertragen werden sollen, dann so.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub holeDaten()
  Dim strFile As String, strF As String
  Dim vntRef As Variant, vntI As Variant
  
  vntRef = Array("C3", "C4", "C7", "F4", "F5") 'auszulesende Zellen
  
  With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = "E:\Forum"
    .Title = "Datei auswählen"
    .ButtonName = "Auswahl..."
    .InitialView = msoFileDialogViewList
    If .Show = -1 Then strFile = .SelectedItems(1)
  End With
  
  If Len(strFile) Then
    strF = Left(strFile, InStrRev(strFile, "\"))
    strF = "'" & strF & "[" & Mid(strFile, InStrRev(strFile, "\") + 1) & "]Bestellung'!"
    With ThisWorkbook.Sheets("Bestellung")
      For Each vntI In vntRef
        With .Range(vntI)
          .Formula = "=" & strF & vntI
          .Value = .Value
        End With
      Next
    End With
  End If
  
End Sub


Noch ein Hinweis: So ein Code gehört in ein allgemeines Modul und nicht unter "DieseArbeitsmappe"!
Gruß Sepp

Anzeige
AW: Tabellen abgleichen
07.07.2015 23:53:17
Barbara
Danke, aber ganz so ist es doch nicht, wie ich wollte:
Die Auswahl der Datei Kunden soll im selben Ordner sein, und nicht auf E:\Forum.
Dazu habe ich einfach
.InitialFileName = "E:\Forum"
auskomemntiert und gut ises.
Aber: Die auszulesenden Zellen sind im Bereich "Kundendaten" festgelegt und sollen nicht so
vntRef = Array("C3", "C4", "C7", "F4", "F5") 'auszulesende Zellen
definiert werden.
Im Code soll nicht "Bestellung" vorkommen, sondern einfach aus den Zellenverknüpfungen herausgelesen werden.
Denn es sind in Wirklichkeit nicht alle Bezüge auf dieses Blatt "Bestellung" bezogen sondern auch auf andere Blätter.
OK, alles in ein eigenes Modul. Danke.
LG,
Barbara

Anzeige
AW: Tabellen abgleichen
08.07.2015 00:13:39
Sepp
Hallo Barbara,
"Die Auswahl der Datei Kunden soll im selben Ordner sein, und nicht auf E:\Forum."
Sorry, das hätte ich natürlich wissen sollen! Aber wozu glaubst du, ist der Parameter "InitalFilename" wohl da?
"Aber: Die auszulesenden Zellen sind im Bereich "Kundendaten" festgelegt und sollen nicht so
vntRef = Array("C3", "C4", "C7", "F4", "F5") 'auszulesende Zellen
definiert werden. "

Entweder bin ich Blind, oder die "Kundendaten" sind in deiner Beispieltabelle nicht vorhanden!
Ah, du meinst den definierten Namen "Kundendaten", das hättest du ruhig etwas genauer beschreiben können, meine Glaskugel ist nämlich durch die Hitze zersprungen.
Angepasster Code kommt gleich.
Gruß Sepp

Anzeige
neuer Code
08.07.2015 00:21:34
Sepp
Hallo Barbara,
Sub holeDaten()
  Dim strFile As String, strF As String, strSheet As String, strRef As String
  Dim rng As Range
  
  With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = ThisWorkbook.Path
    .Title = "Datei auswählen"
    .ButtonName = "Auswahl..."
    .InitialView = msoFileDialogViewList
    If .Show = -1 Then strFile = .SelectedItems(1)
  End With
  
  If Len(strFile) Then
    strF = "='" & Left(strFile, InStrRev(strFile, "\")) & "[" & _
      Mid(strFile, InStrRev(strFile, "\") + 1) & "]"
    With ThisWorkbook.Sheets("Bestellung")
      For Each rng In ThisWorkbook.Sheets("Liste").Range("Kundendaten")
        If rng.HasFormula Then
          strSheet = Mid(Split(rng.Formula, "!")(0) & "'!", 2)
          strRef = Split(rng.Formula, "!")(1)
          With .Range(strRef)
            .Formula = strF & strSheet & strRef
            .Value = .Value
          End With
        End If
      Next
    End With
  End If
  
End Sub


Gruß Sepp

Anzeige
korrektur!
08.07.2015 00:30:27
Sepp
eine kleine Korrektur.
Sub holeDaten()
  Dim strFile As String, strF As String, strSheet As String, strRef As String
  Dim rng As Range
  
  With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = ThisWorkbook.Path
    .Title = "Datei auswählen"
    .ButtonName = "Auswahl..."
    .InitialView = msoFileDialogViewList
    If .Show = -1 Then strFile = .SelectedItems(1)
  End With
  
  If Len(strFile) Then
    strF = "='" & Left(strFile, InStrRev(strFile, "\")) & "[" & _
      Mid(strFile, InStrRev(strFile, "\") + 1) & "]"
    With ThisWorkbook
      For Each rng In .Sheets("Liste").Range("Kundendaten")
        If rng.HasFormula Then
          strSheet = Mid(Split(rng.Formula, "!")(0), 2)
          strRef = Split(rng.Formula, "!")(1)
          With .Sheets(strSheet).Range(strRef)
            .Formula = strF & strSheet & "'!" & strRef
            .Value = .Value
          End With
        End If
      Next
    End With
  End If
  
End Sub


Gruß Sepp

Anzeige
AW: korrektur!
08.07.2015 07:57:14
Barbara
Hallo Sepp,
Funktioniert. Daaanke!!
Jaja, den definierten Namen "Kundendaten" hätte ich vielleicht als solchen beschreiben sollen.
(siehe mein Eröffnungsbeitrag).
Verzeih meine Ungenauigkeit.
Danke nochmals. Du hat mir sehr geholfen.
LG,
Barbara

geht doch ;-) nun noch #2 o.T.
07.07.2015 23:02:09
Sepp
Gruß Sepp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige