Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen zwischen Dateien übertragen

Zellen zwischen Dateien übertragen
29.09.2006 15:01:36
SilentBob
Könnte mir jemand erklären wie ich Zellen in eine Mappe ’Maus.xls’ auf das Tabellenblatt ’Modell’ in die Zellen A7 bis A? von einer zweiten Mappe ’Monitor.xls’ übertragen kann? Dabei muss in der Mappe ’Monitor.xls’ zunächst in der achten Zeile die Überschrift ’Modell’ gesucht und dann alle darunter liegenden Werte ausgewählt werden. Es sollen genau so viele Zeilen übertragen werden bis in der Spalte B auf gleicher Höhe kein Wert mehr eingetragen ist.
Der Code soll später so angewendet werden, dass ich dann weiter in die Zellen B7 bis B? alle Werte übertrage die unter der Überschrift ’Name’ stehen und in C7 bis C? alle Werte, die unter der Überschrift ’Code’ stehen. Das System soll sich also auf insgesamt 7 oder 8 Überschriften und damit Spalten beziehen. Für alle Spalten gilt aber, dass genau so lange Werte übertragen werden bis in der parallelen Zelle in der Spalte B (in Monitor.xls) kein Wert mehr vorhanden ist.
Gibt es da einen einfaches Makro, dass ich hinter einen Button legen könnte?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen zwischen Dateien übertragen
29.09.2006 15:13:14
SilentBob
Wichtig wäre es ausserdem, dass eine Fehlermeldung ausgegeben wird, falls in der 8. Zeile keine Zelle mit dem jeweiligen String gefunden wird.
AW: Zellen zwischen Dateien übertragen
29.09.2006 17:06:26
IngGi
Hallo SilentBob,
das geht z.B. so. Weitere Überschriften, nach denen du suchen willst, einfach in der "Array-Zeile" anhängen und die Gesamtzahl der gesuchten Überschriften in der Zeile "ReDim Ueberschriften(3)" anpassen.
Sub Daten_uebertragen()
Dim Ueberschriften()
ReDim Ueberschriften(3)
Dim i As Integer
Ueberschriften = Array("Modell", "Name", "Code")
For i = 0 To UBound(Ueberschriften())
Kopieren Ueberschriften(i), i
Next 'i
End Sub
Private Sub Kopieren(ByVal Ueberschrift As String, ByVal i As Integer)
Dim rng As Range
Dim weiter
'Sheetname in der folgenden Zeile anpassen !
Set rng = Workbooks("Monitor.xls").Sheets("abc").Rows("8:8").Find(What:=Ueberschrift, LookAt:=xlWhole)
If rng Is Nothing Then
weiter = MsgBox(Prompt:="Überschrift """ & Ueberschrift & """ nicht gefunden, weitermachen?", _
Buttons:=vbYesNo)
If weiter = vbNo Then End
Else
Set rng = Range(rng, rng.End(xlDown))
rng.Copy Destination:=Workbooks("Maus.xls").Sheets("Modell").Range("A7").Offset(0, i)
End If
End Sub
Gruß Ingolf
Anzeige
AW: Zellen zwischen Dateien übertragen
29.09.2006 17:20:19
fcs
Hallo schweigender Bob,
in dem Beispielmakro muss du noch die Namen von Dateien und Tabellen, sowie die Suchbegriffe anpassen. Falls ein Suchbegriff nicht gefunden wird eine Meldung angezeigt und ggf. kann abgebrochen werden.
Gruß
Franz

Sub DatenVonMonitorNachMaus()
Dim wbQuelle As Workbook, wbZiel As Workbook, wb As Workbook
Dim wksQ As Worksheet, wksZ As Worksheet
Dim Begriffe, SpalteZiel 'Daten-Arrays
Dim SpalteQ() As Integer, I As Integer
Dim ZeileQ1 As Long, ZeileZ1 As Long, ZeileQL As Long, ZeileQ As Long
'Array mit den Suchbegriffen in der Quelltabelle Zeile 8
Begriffe = Array("Modell", "Name", "Code", "Begriff4", "Begriff5", "Begriff6", "Begriff7", "Begriff8")
'Array mit den zugehörigen Spalten in der Zieltabelle
SpalteZiel = Array(1, 2, 3, 4, 5, 6, 7, 8)
'Dimension für Feld "SpalteQ" an Array Begriffe anpassen
ReDim SpalteQ(0 To UBound(Begriffe))
'Prüfen ob die Datei "Monitor.xls" und/oder "Maus.xls" schon geöffnet ist
For Each wb In Application.Workbooks
Select Case LCase(wb.Name)
Case LCase("Monitor.xls")
Set wbQuelle = Application.Workbooks("Monitor.xls")
Case LCase("Maus.xls")
Set wbZiel = Application.Workbooks("Maus.xls")
Case Else
'do nothing
End Select
Next
'Öffnen der Dateien falls noch nicht geöffnet
If wbQuelle Is Nothing Then
Set wbQuelle = Workbooks.Open(Filename:="C:\Lokale Daten\Test\Monitor.xls", ReadOnly:=True)
End If
Set wksQ = wbQuelle.Sheets("Modell")
If wbZiel Is Nothing Then
Set wbZiel = Workbooks.Open(Filename:="C:\Lokale Daten\Test\Maus.xls")
End If
Set wksZ = wbZiel.Sheets("Modell")
' Setzen von Startwerten
ZeileZ1 = 7 '1. Auszufüllende Zeile in Zieldatei
ZeileQ1 = 8 'Zeile mit Titeln in Quelldatei
ZeileQL = wksQ.Cells(wksQ.Rows.Count, 2).End(xlUp).Row 'Letzte Zeile mit Daten in Quelle, SpalteB
'Spalten der Begriffe in der Quelltabelle Zeile 8 ermitteln
For I = 0 To UBound(Begriffe)
SpalteQ(I) = SpalteQuelle(Begriffe(I), wksQ.Rows(ZeileQ1))
If SpalteQ(I) = 0 Then
If MsgBox("Begriff '" & Begriffe(I) & "' wurde in Quell-Tabelle nicht gefunden!" & vbLf & vbLf _
& "Weitermachen oder Abbrechen?", vbOKCancel + vbCritical, "Datentransfer") = vbCancel Then
Exit Sub
End If
End If
Next I
'Daten aus Quelle nach Ziel übertragen
For ZeileQ = ZeileQ1 + 1 To ZeileQL
For I = 0 To UBound(SpalteQ)
If SpalteQ(I) <> 0 Then
wksZ.Cells(ZeileZ1, SpalteZiel(I)).Value = wksQ.Cells(ZeileQ, SpalteQ(I)).Value
End If
Next I
ZeileZ1 = ZeileZ1 + 1
Next ZeileQ
End Sub
Private Function SpalteQuelle(ByVal Suchen As String, Bereich As Range) As Integer
Dim Zelle As Range
Set Zelle = Bereich.Find(What:=Suchen, LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
SpalteQuelle = 0
Else
SpalteQuelle = Zelle.Column
End If
End Function

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige