Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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

Anzahl sichtbarer Zellen kopieren

Anzahl sichtbarer Zellen kopieren
29.08.2015 13:14:30
Burghard
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispieldatei?
29.08.2015 17:54:35
Michael
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

Anzeige
AW: Beispieldatei?
29.08.2015 18:16:38
Burghard
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

Anzeige
Gegenfrage
29.08.2015 19:41:55
Michael
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

AW: Gegenfrage
02.09.2015 16:46:53
Burghard
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

Anzeige
Danke für die Rückmeldung, owT
02.09.2015 21:02:06
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige