gefilterte Zeilen nach kopieren zerschossen
#1
Hallo zusammen,

da ich gerade für die Arbeit eine Umfangreiche Exceltabelle erstellen muss habe ich mich hier mal angemeldet und frage euch nach Rat.
Bitte entschuldigt den seltsamen Titel ich wusste nicht so recht wie ich das Problem so knapp zusammen fassen sollte.

Ich habe eine Tabelle mit 5 Tabellenblätter
1. Blatt: Gesamt
2. Blatt: Mitarbeiter 1
3. Blatt: Mitarbeiter 2
usw.

ich habe ein Makro geschrieben welches die Zeilen aus Tabellenblatt 2-5 in Tabellenblatt 1 Kopiert und dieses sperrt

soweit funktioniert das auch ganz gut.

Jede Tabelle hat auch ein Filter. Filtert man nach einem Kriterium und führt das Makro dann aus überträgt es die Zeilen nicht richtig. Sie sind dann viel zu hoch und die Inhalte und formatierungen der hinteren spalten fehlen ganz. Der Aufbau der einzelnen Tabellen (spalten) bleibt durch den Filter aber gleich, weshalb ich den Bug nicht ganz nachvollziehen kann.

Der Makrocode sieht wie folge aus:

Code:
Public Sub inGesamtKopieren()

'
' inGesamtKopieren Makro
' Die Zeilen aus den einzelnen Tabellen (Bahn, SVS, BER, JUS und co) werden in der Gesammt Tabelle zusammen geführt
'
' Tastenkombination: Strg+g
'

' Blattschutz aufheben
Sheets(1).Unprotect Password:="1893"
' Prüfe, ob Sheet "Gesamt" vorhanden ist und wenn nicht füge es hinzu
If Not Sheets(1).Name = "Gesamt" Then
  Sheets.Add before:=Sheets(1)
  Sheets(1).Name = "Gesamt"
Else
' Lösche alle Inhalte aus dem Sheet "Gesamt" ab Zeile 3
   If Not Application.CountA(Sheets("Gesamt").Rows(3)) = 0 Then
       Sheets("Gesamt").Range(Rows(3), Rows(Rows.Count)).Delete
   End If
End If

' Schleife zum einfügen der Zeilen von Sheer 2 bis 5 in Sheet 1 "Gesamt"
For i = 2 To 5
  lr = Sheets("Gesamt").Cells(Rows.Count, "A").End(xlUp).Row + 1
  Sheets(i).UsedRange.Offset(2).Copy Sheets("Gesamt").Cells(lr, "A")
Next i

' Zeilenhöhe automatisch anpassen
ActiveSheet.Rows.AutoFit

' Blattschutz aktivieren Gliederung und Autofiler erlauben
Sheets(1).Protect userinterfaceonly:=True, Password:="1893"
Sheets(1).EnableOutlining = True 'für Gliederung
Sheets(1).EnableAutoFilter = True 'für Autofilte


End Sub

meine VBA Kenntnisse sind etwas eingerostet, deshalb ist der Code sicher nicht ganz sauber Wink

versteht ihr mein Problem? Habe ich etwas vergessen zu erwähnen?

Ich danke euch schon mal für eure Antworten.

Gruß
Flinz
Antworten Top
#2
Hallo

ich kann an dem Code nichts ungewönliches erkennen, vielleicht sieht ein anderer Kolleg einen Fehler.

Ich würde aber den Code zum Blattschutz aufheben für Sheets(1) hinter den "Else" Befehl verlegen und sage Warum.
Wenn Sheets(1) nicht "Gesamt" ist wird ja ein neues Blatt eingefügt, aber vorher wird der Blattschutz bei einem andern Blatt mt Index Nr 1 aufgehoben! Und das Blatt wird spaeter nicht mehr mit Passwort geschützt!  Man beachte die kleinen Details bei VBA!   

Zitat:die Inhalte und formatierungen der hinteren spalten fehlen ganz.
das gibt mir ein wenig zu denken, denn hier wird doch der gesamte UsedBereich kopiert. Wieso sollen dann Daten fehlen?  Darauf habe ich auch keine Antwort.  Seltsam, seltsam ....  Alternativ kann man es mit unterem Code proiberen. Sollte es damit klappen mich bitte nicht fragen Warum!!

mfg  Gast 123


Code:
' Schleife zum einfügen der Zeilen von Sheer 2 bis 5 in Sheet 1 "Gesamt"
For i = 2 To 5
 lr = Sheets("Gesamt").Cells(Rows.Count, "A").End(xlUp).Row + 1
 Sheets(i).UsedRange.Offset(2).Copy
 Sheets("Gesamt").Cells(lr, "A").PasteSpecial xlPasteAll
Next i
Application.CutCopyMode = False
Antworten Top
#3
Hallo,

danke für die schnelle Antwort. Der Code ändert leider nichts funktioniert aber natürlich genauso Wink

ich denke ich habe den Fehler nun gefunden. verstehe ihn aber nicht ganz.
Ich habe über eine Gliederung einige Spalten ausgeblendet (K-T). In einer Tabelle werden diese Spalten benötigt in den anderen aber nicht, weshalb ich sie aber nicht ganz raus machen kann.
Blende ich diese Spalten überall aus kommt es zu diesem Fehler. Blende ich sie überall ein funktioniert es. Wenn ich aber nicht filtere funktioniert es auch wenn diese Spalten ausgeblendet sind. Wisst ihr hierrauf eine Antwort? Es scheint also ein Problem der Gliederung und Filterung zu sein.

Gruß
Flinz
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste