Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1384to1388
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

Synchronisierung/ Zellbereich mappenübergreifend k

Synchronisierung/ Zellbereich mappenübergreifend k
13.10.2014 10:15:59
PaulJen
Hallo Office-Forum Community!
Nach langem Probieren und Ärgern hoffe ich hier im Forum die Lösung für mein Excel-VBA Problem zu finden
Projekt:
Bei dem Projekt handelt es sich um eine Art Beobachtungsbuch/Logbuch. Es ermöglicht per Eingabemasken und Makros die Eingabe von Kommentaren/Beobachtungsinfos. Ein Kommentar entspricht hierbei einer Zeile innerhalb 23 Spalten. Somit werden Kommentare zeilenweise unter einem Übersichtskopf (12 Zeilen)eingetragen.
Die Kommentare werden jeweils für eine Messstelle eingetragen. Jedes Arbeitsblatt von Excel entspricht einer Messstelle.
Desweiteren arbeite ich momentan daran zwei Beobachtungsbücher zu synchronisieren.
Beobachtungsbücher sind in diesem Projekt zwingend gleich strukturiert. Ich habe in allen Arbeitsmappen die Möglichkeit Messstellen (also Arbeitsblätter) anzulegen und Kommentare einzutragen.
Somit habe ich eine Ausgangslage von mehreren Bearbeitern mit ihren jeweiligen Beobachtungsbüchern, wobei die Beobachtungsbücher im Ursprung Kopien sind.
Was funktioniert:
Unter meinem Makro "Kommentare importieren" funtioniert die Synchrinisierung der Messstellen/Blätter.
Nach einer Abfrage wird das "eigene" Beobachtungsbuch zum Master und das asugewählte zur Quelle (das kann jedes der Beobachtungsbücher).
In einer Schleife wird versucht die Blätter mit den Namen aus Master in der Quelldatei zu öffnen. Bei einem Fehler wird das entsprechende Blatt aus der Quelle in den Master kopiert (!).
Im nächsten Schritt werden die Blätternamen der Quelle im Import-Dialog des Masters in einer Listbox mit Checkboxen gesammelt.
Mit einer Schleife wird die Listbox durchgegangen und für jede Messstelle, deren Haken aktiviert ist, sollen die Kommentare kopiert werden.
Das soll nach folgendem Schema ablaufen:
Es wird die erste mit Haken versehene Messstelle aufgerufen, dann alle (!) Kommentare also A12-Vxx kopiert werden und im Master im passenden Blatt unten angefügt werden.
(Funktioniert gut mit : quellemptyrow = Sheets(wks_mst).Range("B" & Rows.Count).End(xlUp).Row '+ 1 )
Was jetzt nur bedingt funktioniert:
Der eigentliche Kopiervorgang hinkt bzw. klappt nicht.
Code:
Public Sub but_impstart_Click()
Call but_übernehmen_Click
If checkbox_sicherimp = True Then
Call sicherung_aktiv
End If
Dim masterdateipfad As String
Dim quelldateipfad As String
Dim masterdateiname As String
Dim quelldateiname As String
masterdateipfad = thisworkbook.FullName
masterdateiname = thisworkbook.Name
quelldateiname = label_beobachtungsbuch.Caption
quelldateipfad = label_quellpfad.Caption
Dim i As Integer
For i = 0 To Me.listbox_komimp.ListCount - 1
If listbox_komimp.Selected(i) = True Then
Dim imparray As Variant
Dim quellemptyrow As Long
Dim masteremptyrow As Long
Dim imprange_row As Long
Dim wks_mst As String
wks_mst = listbox_komimp.List(i)
MsgBox wks_mst & " name in listbox"
Workbooks.Open (quelldateipfad)
quellemptyrow = Sheets(wks_mst).Range("B" & Rows.Count).End(xlUp).Row '+ 1
masteremptyrow = Workbooks(masterdateiname).Sheets(wks_mst).Range("B" & Rows.Count).End(xlUp).Row ' + 1
imprange_row = masteremptyrow + quellemptyrow - 13
Set imparray = Workbooks(quelldateiname).Sheets(wks_mst).Range(Cells(12, 1), Cells(quellemptyrow, 23)).Value 'FEHLER!!!! 1004
''' Workbooks(quelldateiname).Sheets(wks_mst).Range(Cells(12, 1), Cells(quellemptyrow, 23)).Copy
Workbooks(masterdateiname).Sheets(wks_mst).Unprotect Password:=""
Workbooks(masterdateiname).Sheets(wks_mst).Range(Cells(imprange_row, 1), Cells(masteremptyrow, 23)).Value = imparray
'''Workbooks(masterdateiname).Sheets(wks_mst).Range(Cells(imprange_row, 1), Cells(masteremptyrow, 23)).Paste
Workbooks(masterdateiname).Sheets(wks_mst).Protect Password:=""
Workbooks(quelldateiname).Close savechanges:=True
Range("A12:A2000").NumberFormat = "m/d/yyyy"
Range("B12:F2000").NumberFormat = "h:mm;@"
Range("G12:G2000").NumberFormat = "0"
Range("H12:H2000").NumberFormat = "@"
Range("I12:I2000").NumberFormat = "0"
Range("J12:R2000").NumberFormat = "0.0"
Range("S12:W2000").NumberFormat = "@"
End If
Next i
Fehlt mir eine Deklarierung? Geh ich mit dem Array falsch um? Flüchtigkeitsfehler? Unterstützt das Excel nicht richtig?
Was mich viel mehr stört ist, dass es mit der Copy/Paste Variante nach Gutdünken funktioniert.
OS: Win7 Enterprise (64-Bit)
Excel: 2010 Version: 14.0.6023.1000 (32-Bit)
8Gb Ram
Mit freundlichen Grüßen
Paul

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Synchronisierung/ Zellbereich mappenübergreifend k
13.10.2014 11:01:55
yummi
Hallo Paul,
wenn dein Copy nur teilweise funktioniert, dann liegt dass daran, dass du nicht vollständig referenzierst. Wenn du z.B. nur mit Range arbeitest, daann gilt das für das gerade aktive Sheet, was nicht unbedingt dass ein muss, was du willst.
deklariere dir Variablen für die worksheets in denen du arbeiten willst (Quelle und Ziel) und referenziere jedesmal ausgehend vom sheet.
Gruß
yummi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige