Thema Datum  Von Nutzer Rating
Antwort
Rot  Synchronisierung/ Zellbereich mappenübergreifend kopieren
13.10.2014 10:10:46 PaulJen
NotSolved
13.10.2014 16:44:31 Gast37720
NotSolved

Ansicht des Beitrags:
Von:
PaulJen
Datum:
13.10.2014 10:10:46
Views:
897
Rating: Antwort:
  Ja
Thema:
Synchronisierung/ Zellbereich mappenübergreifend kopieren

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst genau und ausführlich
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
  • Bitte markieren Sie Ihre Anfrage als erledigt wenn Ihnen geholfen wurde
Thema: Name: Email:

 
 

Thema Datum  Von Nutzer Rating
Antwort
Rot  Synchronisierung/ Zellbereich mappenübergreifend kopieren
13.10.2014 10:10:46 PaulJen
NotSolved
13.10.2014 16:44:31 Gast37720
NotSolved