352 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Alle,

Ich hab mal eine Frage, leider hat die Google-suche nicht dies ausgespuckt was ich suchte. Folgende Situation:

Ich habe eine Tabelle mit Mitgliedern eines Clubs. Nun möchte ich gerne dass immer die neuesten Einträge aus dieser Liste in einer anderen Mappe eingefügt werden.

Ich habe Auf Zeile der Mitgliederliste 1450 Herr Muster, ergänze jetzt auf Zeile 1451 noch Herrn Müller und möchte dass auf der anderen Mappe zeile 1451 Auf Zeile 1 eingefügt wird. Am Nächsten Tag füge ich dann noch auf Zeile 1452 Frau Meier hinzu, und möchte dass schlussendlich in der anderen Mappe nur noch Zeile 1452 eingefügt wird ohne etwas zu löschen.

Ich habe bereits Zeilen-Verweise per Formel gemacht, dies hat soweit funktioniert als dass ich nur einzelne Zellen verwiesen gehabt habe.

Danach hab ich mit der Makroaufnahme ein Makro gemacht welhe dann aber immer die selben Zeilen übernommen hat. Dies hat auch funktioniert, da wäre ich aber mit kopieren aus der Mappe 1 in Mappe 2 [xurl=https://supportnet.de/faqsthread/2369402|Windows 7 schneller machen - Übersicht]schneller[/url] gewesen.

Ich hoffe dass Ihr mir helfen könnt und mir vielleicht auch noch einen Tip geben könnt, sofern ihr versteht was ich meine. übrigens Arbeite ich mit Office365... dies zur Info...

Torty

8 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Torty,

wenn du ein Makro aufzeichnest, wird immer nur die Zeile kopiert, die du bei deiner Aufzeichnung kopiert hast. Daher funktioniert das bei neuen Datensätzen nicht.

Kannst du mal darstellen, wie der Aufbau deiner Tabellen aussieht (also z.B. Spalte A = Mitgliedsnummer, Spalte B = Vorname etc).
Und liegen die beiden Arbeitsmappen im selben Verzeichnis? Poste doch mal dein aufgezeichnetes Makro.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O. und die anderen

Der aufbau meiner Tabelle Sieht wie folgt aus:
Spalten:
A: EditionNr.
B: Vorname und Name (mittels Formel)
C: Sprache
D: Anrede
E: Firma
F: Name
G: Vorname
H: Strasse
I: Land
J: PLZ
K: Ort
L: Telefon Privat
M: Natel
N: E-Mail
O: Geb.-Dat.
P: Fährt z.Zt.
Q: Typ
R: Serial-Nr.
S: BrAnr
T: Arbeitgeber
U: PLZAG
V: OrtAG

Die Zielmappe hat aber nur
A-L, diese sind aber gleich benannt

Die beiden Mappen liegen nicht im selben verzeichnis kann aber noch geändert werden.

Das Makro Sieht so aus:

[code]
Sub Neuste_Einfügen()
    Windows("Mitgliederliste Drivers Club.xls").Activate
    Range("A1272:L1300").Select
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Selection.Copy
    Windows("VersandMember.xlsx").Activate
    Range("A2").Select
    ActiveSheet.Paste
End Sub[/code]

Danke für eure Hilfe

Torty

[code][/code][code][/code]
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Torty,

noch eine Frage: Ist die EditionNr. eine eindeutige Nummer für das Mitglied?

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Torty,

noch etwas ;-). Gibt es in den Mappen nur jeweils eine Tabelle und wenn nicht wie heißen die Tabellen, aus denen die Daten kopiert werden sollen bzw. in die die Daten kopiert werden sollen?

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

Die Edition-Nr. ist eine eindeutige nummer für jedes Mitglied, man könnte auch Mitgliedernummer sagen. in der Mappe ist jeweils nur eine Tabelle (ein Arbeitsblatt)

Mitgliederliste.xlsx --> Mitgliederliste
VersandMember.xlsx --> Versand

Danke für die Hilfe

Daniel
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Daniel,

kopiere das folgende Makro in ein [url=http://www.excelbeispiele.de/Modul.htm]Standard-Modul[/url] deiner Arbeitsmappe Mitgliederliste:
[code]Sub letzte_kopieren()

Dim lngLetzteQ As Long
Dim lngLetzteZ As Long
Dim lngZeile As Long
Dim wkbZiel As Workbook
Dim wksQuelle As Worksheet
Dim varEdition As Variant
Dim lngAnfang As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

Set wksQuelle = ThisWorkbook.Worksheets("Mitgliederliste")
'letzte beschriebene Zeile im Quelltabelle feststellen
With wksQuelle
  lngLetzteQ = .Cells(Rows.Count, 1).End(xlUp).Row
End With

'Arbeitsmappe, in die die Einträge kopiert werden sollen
'Name und Pfad anpassen
Set wkbZiel = Workbooks.Open("C:\Test\VersandMember.xlsx")

With wkbZiel.Worksheets("Versand")                                    '1. Tabelle in Zieldatei
  lngLetzteZ = .Cells(Rows.Count, 1).End(xlUp).Row            'letzte beschriebene Zeile in Zieldatei feststellen
  varEdition = .Cells(lngLetzteZ, 1).Value                    'letzte Editionsnr. aus Zieldatei einlesen
End With

'in Quelldatei den letzten Eintrag aus Zieldatei suchen
For lngZeile = lngLetzteQ To 2 Step -1
 If wksQuelle.Cells(lngZeile, 1) = varEdition Then
   lngAnfang = lngZeile + 1                                   'Zeile in Quelle, ab der die Daten kopiert werden
   Exit For
 End If
Next lngZeile

'Spalten A bis L kopieren und in Zieldatei einfügen
With wksQuelle
 .Range(.Cells(lngAnfang, 1), .Cells(lngLetzteQ, 12)).Copy Destination:=wkbZiel.Worksheets(1).Cells(lngLetzteZ + 1, 1)
End With

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub[/code]

Ich gehe davon aus, dass keine Sortierung der Mitgliederliste erfolgt, dass die Überschrift in der ersten Zeile steht und ab Zeile 2 die Mitgliederliste. Es werden die Einträge kopiert, die am Ende der Mitgliederliste eingefügt werden. Dazu wird in der Versandliste geprüft, welche Editions-Nr. zuletzt vorhanden ist.
Es erfolgt keine Speicherung der Datei VersandMember.xlsx.
Den Pfad für diese Datei musst du im Makro natürlich anpassen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.

Das Makro hat super geklappt und wird mir meine Arbeit sehr erleichtern. Ich staune immerwieder was Excel nicht alles kann und bin sehr dankbar hier immer auf die Lösung eines gestellten Problemes zu kommen.

Vielen Dank für Deine Hilfe.

Torty
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

gern geschehen und danke für die Rückmeldung.

Gruß

M.O.
...