Anzeige
Archiv - Navigation
1304to1308
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

Selection in gefilterter Tabelle

Selection in gefilterter Tabelle
14.03.2013 16:57:35
Steve
Hallo,
ich komme mit meinem Makro nicht so richtig weiter und brauche etwas Hilfe bzw. einen Denkanstoß.
Und zwar habe ich eine Tabelle die gefiltert werden soll. In dieser gefilterten Tabelle sollen wiederum nur Werte des markierten Bereichs (Markierung muss in bestimmten Bereich liegen)kopiert und farblich hinterlegt werden. Ohne filter funktioniert dies auch wunderbar und sieht bisher so aus:
Sub Bearbeitungs_Druck_Auswahl()
Dim rngDruck As Range, rngLimits As Range
With Sheets("Protokoll") '.Visible'
Set rngDruck = Range(Cells(Selection.Row, 1), Cells(Selection.Rows.Count + Selection.Row -   _
_
_
1, 3)) 'Für Etiketten ausgewählter Bereich'
Set rngLimits = Range(Cells(4, 1), Cells(Rows.Count, 3).End(xlUp)) 'Eingrenzung aus Spalte   _
_
_
SN, Bauv. und Pos.'
Set rngFarbe = Range(Cells(Selection.Row, 1), Cells(Selection.Rows.Count + Selection.Row -   _
_
_
1, 2))
End With
Set rngkopie = Sheets("Etikettendruck").Cells(2, 1) 'Bereich in den kopiert werden soll'
Set rngClear = Sheets("Etikettendruck").Range(Sheets("Etikettendruck").Cells(2, 1), Sheets(" _
Etikettendruck").Cells(Rows.Count, 3)) 'zu löschender Bereich'
If Intersect(ActiveCell, rngLimits) Is Nothing Then 'überprüft, ob ausgewählter Bereich in   _
_
_
Eingrenzung liegt'
MsgBox "Die aktive Zelle liegt nicht im definierten Zielbereich!"
Else
If MsgBox("Möchten Sie die Seriennummern und Positionen im markierten Bereich ü _
bernehmen?", vbYesNo, "Richtig markiert")  vbYes Then Exit Sub
rngClear.Clear
rngkopie.Resize(rngDruck.Rows.Count, rngDruck.Columns.Count).Value = rngDruck.Value ' _
kopiert Werte'
rngFarbe.Interior.ColorIndex = 8 '6'
End If
End Sub

Wenn ich

With Sheets("Protokoll") '.Visible'
benutze hinterlegt es mir zwar nur die sichtbaren Werte farblich, kopiert aber leider trotzdem alle versteckten Werte. Vermutlich weil "selection.rows.count" alles mitzählt.
Wie kann man selection nur auf den sichtbaren Bereich beschränken bzw. das Problem lösen?
MfG Steve

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Selection in gefilterter Tabelle
14.03.2013 17:46:43
JoWE
Hallo Steve,
mit SpecialCells(xlCellTypeVisible) solltest Du Deinem Ziel näher kommen.
hier ein Codeschnippsel (aufgezeichnt mit dem Makrorekorder):
Sub Makro1()
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Range("A20").Select
ActiveSheet.Paste
End Sub

Gruß
Jochen

AW: Selection in gefilterter Tabelle
15.03.2013 12:56:32
Steve
@Matthias
Sorry, irgendwie komme ich mit dieser gestaffelten Forumsansicht nicht zurecht. Ich habe JoWe indirekt über meine Antwort für Hary geantwortet.
Also mit SpecialCells hatte ich auch schon experimentiert, bin aber zu keinem sinnvollem Ergebnis gekommen.
Ich habe es jetzt erstmal folgend integriert:
rngDruck.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
'        Range("A20").Select ?
rngKopie.Paste
Es wählt schonmal nur die sichtbaren markierten Werte aus, aber bei meiner jetzigen Version kommt ein Objektfehler.
Ich weiß nicht so ganz wie ich

Range("A20").Select
von JoWe einbauen soll? Was ist die Range ("A20") bzw. welche Range ist das bei mir?

Anzeige
AW: war doch nur'n Codeschnipsel...
15.03.2013 15:34:16
JoWE
Hallo Steve,
... und der war nur mit dem Makrorekorder aufgezeichnet, eobei Range("A20") lediglich ein willkürlich gewähltes Ziel für den anschl. Paste-Befehl war. Aber Dein Primärziel (das Kopieren der sichtbaren Zellen) ist doch so schon erreicht. Jetzt musst Du noch den Bereich definieren, welcher die kopierten Datenb aufnehmen soll und Zack, die Bohne! wäre alles geritzt.
Gruß
Jochen

AW: war doch nur'n Codeschnipsel...
15.03.2013 16:44:23
Steve
Uhhhh geschafft...es scheint zu funktionieren. Der Befehl muss "PasteSpecial" lauten.
Also so:
rngDruck.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
rngkopie.PasteSpecial xlPasteValues
Ich muss es trotzdem noch bischen testen.
Vielen Dank an JoWe und Hary!!!
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige