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

Benötige Hilfe für Aktualisierung einer Tabelle

Benötige Hilfe für Aktualisierung einer Tabelle
29.05.2006 15:55:50
Nikki
Hallo,
erstmal vorab:
Ich weiß mein Anliegen ist viel verlangt, aber ich schreibe viele Aufmaße und Rechnungen Ihr würdet mir wirklich sehr helfen.
Habe auch fürs Verständnis eine Beispielmappe eingestellt:
https://www.herber.de/bbs/user/33972.xls
ich würde gerne folgendes per VBA erreichen:
In der gesamten Spalte A des Blattes DATEN der Arbeitsmappe „MASSE“ sollen Nummerierungen (Positionswerte) erkannt werden, welche nicht in dem Blatt RECHNUNG ab Zeile 24 in einer anderen geöffneten Arbeitsmappe (Mappe AUFSTELLUNG ) vorkommen.
Diese nicht vorhandenen Werte aus der Arbeitsmappe „MASSE“ mit dem Blatt DATEN sollen dann nach Möglichkeit der Reihenfolge nach in die Mappe AUFSTELLUNG Blatt RECHNUNG zwischen die Zeilen zugefügt werden mit einer neuen Zeile.
Im Blatt RECHNUNG darf kein Wert gelöscht werden !!
Des weiteren habe ich hierbei ein Problem mit der Bezeichnung Der Mappe MASSE . Diese fängt zwar immer mit der Bezeichnung MASSE an hat aber immer noch einen weiteren Zusatz wie z.B. MASSE domo1, MASSE domo2 oder auch MASSE thyssen1, MASSE thyssen2. Kann man dem Script beifügen, dass es die jeweilige geöffnete Mappe dennoch erkennt ?
Gruß Nicole

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benötige Hilfe für Aktualisierung einer Tabell
29.05.2006 17:36:54
Franz
Hallo Nicole,
ich hab mit folgendem Code mal versucht dein Problem zu lösen. Am besten speicherst du das Makro in einer eigenen Arbeitsmappe oder in der persönlichen Makro-Arbeitsmappe. Da das Makro auch das öffnen der Dateien steuert, müssen vor dem Start des Makros die Aufstellungs und die MASSE-Datei geschlossen sein. Dadurch ist beim Ablauf des Makros sichergestellt, dass die Dateien jeweils korrekt angesprochen werden. Wichtig ist, das die Positionen in Tabelle DATEN und Tabelle Rechnung auf gleiche Weise sortiert sind!

Sub MASSE_Rechnung_aktualisieren()
'Aktualisiert die Tabelle Rechnung mit Daten aus der Tabelle DATEN
Dim wbMASSE As Workbook, wbAufstellung As Workbook, wksRechnung As Worksheet, wksDaten As Worksheet
Dim ZeileR As Long, ZeileD As Long, Datei
MsgBox "Als nächstes bitte Arbeitsmappe MASSE xxx öffnen"
If Application.Dialogs(xlDialogOpen).Show = False Then Exit Sub
Set wbMASSE = ActiveWorkbook
Set wksDaten = wbMASSE.Worksheets("DATEN")
MsgBox "Als nächstes bitte Arbeitsmappe Aufstellung öffnen"
If Application.Dialogs(xlDialogOpen).Show = False Then Exit Sub
Set wbAufstellung = ActiveWorkbook
Set wksRechnung = wbAufstellung.Worksheets("Rechnung")
If MsgBox("Rechnung aktualisieren?", vbYesNo + vbQuestion, "Masse in Rechnung übertragen") _
= vbNo Then Exit Sub
ZeileR = 24 ' Startzeile der Einträge in Rechnung
ZeileD = 4 ' Startzeile der Einträge in DATEN
Do Until ZeileD = wksDaten.UsedRange.Row + wksDaten.UsedRange.Rows.Count
With wksRechnung
If IsEmpty(.Cells(ZeileR, 1)) Then 'in Rechnung noch keine Daten vorhanden
.Cells(ZeileR, 1).Value = wksDaten.Cells(ZeileD, 1).Value
.Cells(ZeileR, 2).Value = wksDaten.Cells(ZeileD, 2).Value
.Cells(ZeileR, 3).Value = wksDaten.Cells(ZeileD, 3).Value
ZeileR = ZeileR + 1
ZeileD = ZeileD + 1
Else
If .Cells(ZeileR, 1).Value = wksDaten.Cells(ZeileD, 1) Then ' Pos.Nr. ist in Rechnung vorhanden
ZeileR = ZeileR + 1
ZeileD = ZeileD + 1
Else
Do Until .Cells(ZeileR, 1).Value = wksDaten.Cells(ZeileD, 1)
.Cells(ZeileR, 1).EntireRow.Insert ' Leerzeile in Rechnung einfügen
.Cells(ZeileR, 1).Value = wksDaten.Cells(ZeileD, 1).Value
.Cells(ZeileR, 2).Value = wksDaten.Cells(ZeileD, 2).Value
.Cells(ZeileR, 3).Value = wksDaten.Cells(ZeileD, 3).Value
ZeileR = ZeileR + 1
ZeileD = ZeileD + 1
If ZeileD = wksDaten.UsedRange.Row + wksDaten.UsedRange.Rows.Count Then Exit Do
Loop
End If
End If
End With
Loop
End Sub

Gruß
Franz
Anzeige
AW: Benötige Hilfe für Aktualisierung einer Tabell
29.05.2006 18:20:57
Nikki
Hallo Franz
erst einmal vielen, vielen Dank für diese Mühe.Das Prinzip ist wirklich eine super Lösung. Hut ab.
Nur leider fügt mir das Makro die Zeilen nicht zwischen die bereits bestehenden Positionen sondern an die letzte Zeile an.
Da in meiner Rechnung bereits Positionen vorhanden sind müßte ich von Hand sortieren.
Ich bin mir nicht sicher ob ich in diesem Fall genau weiß was Du mit Positionen müssen
gleich sortiert sein meins.Sie sind aufsteigend Nummeriert mit "Lücken" z.B. 1, 3, 3.2 , 5 usw.
Nicole
AW: Benötige Hilfe für Aktualisierung einer Tabell
29.05.2006 19:13:16
Franz
Hallo Nicole,
ich hatte die Tabellen in deiner Beispieldatei in 2 Arbeitsmappen aufgeteilt. Da hat das Einsortieren einwandfrei funktioniert. Warum jetzt alle fehlenden Einträge plötzlich ans Ende der Auflistung in der Tabelle Rechnung gestellt werden ist mir rätselhaft.ggf. müßte ich da mal jeweils in eine Original-Datei (mit Dummy-Daten) von Tabellen Rechnung und DATEN schauen.
Wenn die Einträge in beiden Tabellen nach der Positions-Nr. aufsteigend sortiert sind dann ist das in Ordnung. So war es ja auch den Beispiel-Tabellen. Falls die Sortierung nicht identisch ist, dann werden in der Rechnung Positionen evtl. doppelt eingetragen.
Gruß
Franz
Anzeige
AW: Bitte schaut euch nochmal das Script an !!
29.05.2006 22:53:56
Nikki
Hallo Franz
konnte mich leider erst jetzt wieder melden.
Habe nochmal weiter probiert aber es funktioniert einfach nicht.
Ich finde Deine Idee mit den beiden Dateien aber so Klasse, daß ich
nochmal nachfragen wollte.
Vielleicht hat ja noch jemand anderes eine Idee warum das Script bei mir
nicht funktioniert.
Ich arbeite übrigens in der Firma mit Office XP zu hier habe ich noch Office 2000
könnte das vielleicht eine Rolle spielen ?
Gruß Nicole
AW:Glaube ich war zu kompliziert, trotzdem Danke
31.05.2006 00:04:13
Nikki
Danke an alle, die sich hier bemühen !!
Nicole
AW: AW:Glaube ich war zu kompliziert, trotzdem Danke
31.05.2006 15:22:44
Franz
Hallo Nicole,
ich habs noch einmal probiert.
Makro läuft bei mir unter Win 98/Office 97 (privat) und WinXP/Excel 2003 (Büro) einwandfrei mit den Testdaten aus deinem Beispiel.
Hier nochmals die Datei mit dem Makro und Button, wie ich sie bei mir eingerichtet habe.
https://www.herber.de/bbs/user/34040.xls
mfg
Franz
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige