Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
nur sichtbare Zellen kopieren
13.04.2008 00:04:00
Dirk
Hallo an alle Tüftler,
mit untenstehendem Makro kopiere ich ein Blatt in eine andere Datei, was auch dank Rainer (wuxinese) super funktioniert...
Nun möchte ich gern noch die Option: "nur sichtbare Zellen kopieren" ( SpecialCells(xlCellTypeVisible) )einbauen, bekomme es aber einfach nicht hin...
Kann mir jemand helfen ?
MfG Dirk
Hier mein bisheriger Code:

Sub Meldg_archivieren()
Application.ScreenUpdating = False
Dim ns, wb2, sh1, nsname, wbopen, abbr
Set sh1 = ActiveWorkbook.Sheets("Meldg")
Dim openworkbook As Workbook
wbopen = False
For Each openworkbook In Workbooks
If openworkbook.Name = "SZ-Meldungen-07-ggw.xls" Then
wbopen = True
openworkbook.Save
openworkbook.Close
Exit For
End If
Next
Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\1 Archiv\SZ-Meldungen-07-ggw.xls")
nsname = InputBox("Neues Arbeitsblatt in der Zieldatei benennen!", "Wie soll das neue Blatt  _
heissen ?")
If nsname = "" Then abbr = True: GoTo Abbruch
For d = 1 To wb2.Sheets.Count
If wb2.Sheets(d).Name = nsname Then nsname = "ABL " & Day(Date) & "." & _
Month(Date) & "." & Year(Date) & " " & Hour(Time) & _
"-" & Minute(Time) & "-" & Second(Time) & " Uhr"
Next d
Set ns = wb2.Sheets.Add(, Sheets(wb2.Sheets.Count))
ns.Name = nsname
sh1.UsedRange.Copy
ns.Range("a1").PasteSpecial (xlPasteFormats)
ns.Range("a1").PasteSpecial (xlPasteColumnWidths)
ns.Range("a1").PasteSpecial (xlPasteValuesAndNumberFormats)
For i = 1 To sh1.UsedRange.Rows.Count
ns.Rows(i).RowHeight = sh1.UsedRange.Rows(i).RowHeight
Next i
Abbruch:
If nsname = "" Then MsgBox "Kein gueltiger Name oder Abbruch... Kopie nicht erstellt!"
wb2.Save
If abbr = True And wbopen = False Then
Workbooks("SZ-Meldungen-07-ggw.xls").Close
sh1.Activate
Else
ns.Activate
ns.Range("a1").Select
End If
Application.ScreenUpdating = True
Set ns = Nothing
Set wb2 = Nothing
Set sh1 = Nothing
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: nur sichtbare Zellen kopieren
13.04.2008 10:36:37
Gerd
Hallo Dirk,
teste mal.
Sh1.UsedRange.SpecialCells(xlCellTypeVisible).Select
Gruß Gerd

AW: nur sichtbare Zellen kopieren
13.04.2008 11:08:00
Tino
Hallo,
nicht angrenzende Zellen können nicht eingefügt werden.(glaube ich mal)
Daher würde ich sagen man müsste mit Areas arbeiten.
Versuche mal:
Dim ArBer As String
For i = 1 To sh1.UsedRange.SpecialCells(xlCellTypeVisible).Areas.Count
ArBer = sh1.UsedRange.SpecialCells(xlCellTypeVisible).Areas(i).Address
sh1.UsedRange.SpecialCells(xlCellTypeVisible).Areas(i).Copy
ns.Range(ArBer).PasteSpecial (xlPasteFormats)
ns.Range(ArBer).PasteSpecial (xlPasteColumnWidths)
ns.Range(ArBer).PasteSpecial (xlPasteValuesAndNumberFormats)
Next i
Gruß
Tino

Anzeige
AW: nur sichtbare Zellen kopieren
13.04.2008 21:38:59
Dirk
Hallo Gerd, hallo Tino,
vielen Dank für eure Tipps.
Schon der Vorschlag von Gerd brachte den gewünschten Erfolg - allerdings etwas abgewandelt:
Sh1.UsedRange.SpecialCells(xlCellTypeVisible).Copy
So bekam ich zunächst die Fehlermeldung: Laufzeitfehler '1004' - wegen dem Blattschutz in der Quelldatei... Den habe ich nun vorher aufgehoben u. danach wieder gesetzt und es funktioniert...
Da ich mit dem Ursprungscode keinerlei Probleme mit dem BS hatte, habe ich diese wichtige Info wohl "unterschlagen" bzw. bei meinen schlechten VBA-Kenntnissen nicht die Ursache darin vermutet.
Bitte entschuldigt diesen Info-Fehler...
Ich wünsche euch einen angenehmen Wochenstart u. eine stressfreie Woche !
MfG Dirk

Anzeige
AW: nur sichtbare Zellen kopieren
13.04.2008 22:05:00
Gerd
Hallo Dirk,
da der 'UsedRange' u. auch 'SpecialCells' ihre Tücken bzw. Restriktionen haben,
war es meine pure Absicht, dich mit "... .Select"
zunächst zur Ansicht des zu kopierenden Bereichs zu "zwingen". :-)
Dir ebenfalls eine angenehme Woche
Gruß Gerd

AW: nur sichtbare Zellen kopieren
13.04.2008 23:43:00
Dirk
Hallo Gerd,
damit hast du natürlich auch den "Lerneffekt" gesteigert - was wohl auch Sinn u. Zweck dieses Forums ist...
Zwar musste ich so etwas mehr laienhaft experimentieren - aber das hat bestimmt nicht geschadet... ;-)
Also im doppelten Sinne: Besten Dank für deine Hilfe !
MfG Dirk
P.S.: Übrigens: Was so alles mit EXCEL machbar u. mit VBA automatisierbar ist, habe ich erst durch dieses erstklassige Forum (mittels regelmäßigem "Mitlesen" u. Stöbern im Archiv) erkannt - allerdings immernoch nur im Ansatz... :-((
Anzeige

342 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige