20.04.2017, 16:30
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:
meine VBA Kenntnisse sind etwas eingerostet, deshalb ist der Code sicher nicht ganz sauber
versteht ihr mein Problem? Habe ich etwas vergessen zu erwähnen?
Ich danke euch schon mal für eure Antworten.
Gruß
Flinz
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
versteht ihr mein Problem? Habe ich etwas vergessen zu erwähnen?
Ich danke euch schon mal für eure Antworten.
Gruß
Flinz