Anzahl sichtbarer Zellen kopieren

Bild

Betrifft: Anzahl sichtbarer Zellen kopieren
von: Burghard
Geschrieben am: 29.08.2015 13:14:30

Hallo,
ich möchte von einem Tabellenblatt sichtbare Zellen (einen Zellbereich) in ein anderes Tabellenblatt kopieren. Leider habe ich Leerräume in den Spalten bei dem Tabellenblatt, in das ich einfüge. Ich benutze dieses Makro:
Sheets("Serie").Range("A3:F43").SpecialCells(xlCellTypeVisible).Copy
Sheets("Aushang (3)").Range("A2").PasteSpecial
Sheets("Serie").Range("A44:F84").SpecialCells(xlCellTypeVisible).Copy
Sheets("Aushang (3)").Range("G2").PasteSpecial
Sheets("Serie").Range("A85:F125").SpecialCells(xlCellTypeVisible).Copy
Sheets("Aushang (3)").Range("M2").PasteSpecial
Auf Grund der Nummerierung stören beim Einfügen in das andere Tabellenblatt die ausgeblendeten Zellen, z.B. befinden sich im ausgewählten Bereich "A3:F43" auch ausgeblendete Zellen.
Kann jemand das Makro so umschreiben, dass jeweils 27 Zellbereiche an sichtbaren Zellen kopiert werden, also "A3" plus 27 sichtbare Zellen (müsste dann wohl "A3" bis "F30" sein).
Hilfe wäre nett.
Grüße Burghard

Bild

Betrifft: Beispieldatei?
von: Michael
Geschrieben am: 29.08.2015 17:54:35
Hallo Burghard,
es ist etwas schlecht nachvollziehbar, was Du wohin kopiert haben möchtest.
Excel kann grundsätzlich nur *einen* *zusammenhängenden, rechteckigen* Bereich in einem Rutsch kopieren, so daß sich eine Schleife anbietet, die jede einzelne, sichtbare Zelle kopiert (oder einfach den Wert zuweist), etwa so:

Option Explicit
Sub test()
Dim c As Range
For Each c In Sheets("Serie").Range("A3:F43").SpecialCells(xlCellTypeVisible)
   Sheets("Aushang (3)").Range(c.Address).Offset(-1, 0).Value = c.Value
Next
' .Offset(-1, 0) bedeutet, eine Reihe nach oben, gleich Spalte, also von A3 nach A2)
For Each c In Sheets("Serie").Range("A44:F84").SpecialCells(xlCellTypeVisible)
   Sheets("Aushang (3)").Range(c.Address).Offset(-42, 6).Value = c.Value
Next
' .Offset(-42, 6) bedeutet, 42 Reihen nach oben, 6 Spalten nach rechts, also von A44 nach G2)
'usw.
End Sub
Schöne Grüße,
Michael

Bild

Betrifft: AW: Beispieldatei?
von: Burghard
Geschrieben am: 29.08.2015 18:16:38
Hallo Michael,
das mit der Beispieldatei ist schwierig, weil es ganz viele persönliche Daten sind und ich sehr, sehr viel ändern müsste.
Vielen Dank für Deinen Lösungsansatz und die Infos. Er gibt aber bei mir eine Fehlermeldung. Ich bastele momentan noch an einem anderen Ansatz. Kannst Du mir sagen, wie ich den Code ändern kann für:
Sheets("Serie").Range("A3").SpecialCells(xlCellTypeVisible).Copy
in
Sheets("Serie").Range("A3") + die nächsten 27 Zeilen der sichtbaren Zeilen .SpecialCells(xlCellTypeVisible).Copy
Range("A3:F30") hilft nicht, weil damit auch die nicht sichtbaren Zeilen erfasst werden.
In eine Variable "Zahl" kann ich die Gesamtzahl aller sichtbaren Zeilen packen.
Hilfe wäre nett.
Grüße Burghard

Bild

Betrifft: Gegenfrage
von: Michael
Geschrieben am: 29.08.2015 19:41:55
Hi Burghard,
ich habe bei mir den Code getestet, und er funzt einwandfrei.
Welche Fehlermeldung kommt denn in welcher Zeile?
Schöne Grüße,
Michael

Bild

Betrifft: AW: Gegenfrage
von: Burghard
Geschrieben am: 02.09.2015 16:46:53
Hallo Michael,
war zwei Tage weg und dann war hier für 2 1/2 Tage Telekom-Totalausfall (kein Internet, Telefon und TV), weil ein von der Polizei Verfolgter voll in den örtlichen Telekom-Veretilerkasten gerast ist.
Ich habe das Problem anders lösen können. Ich habe alle sichtbaren Datensätze per Makro in das zweite Tabellenblatt kopiert und dann weiter per Makro die Datensätze in die Spaltensätze umsortiert.
Danke für Deine Bemühungen!
Grüße Burghard

Bild

Betrifft: Danke für die Rückmeldung, owT
von: Michael
Geschrieben am: 02.09.2015 21:02:06


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Anzahl sichtbarer Zellen kopieren"