Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1404to1408
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

Filterergebnis als verküpfte Grafik einblenden

Filterergebnis als verküpfte Grafik einblenden
28.01.2015 12:09:04
Thorben
Hallo ihr lieben VBAaler,
ich habe mal eine Frage zu folgendem:
In
With ActiveSheet ' hier soll die Grafik eingeblendet werden!
Dim acell As Range
Set acell = Range("A3") steht eine Zahl.
Diese möchte ich als Filterkriterium anwenden in
Windows("Daten_alt.xlsx").Activate
Range("I1").Select
ActiveSheet.Range("$A$1:$J$20000").AutoFilter Field:=9, Criteria1:="acell"
Aber wie es jetzt weitergeht mit SpecialCells(xlCellTypeVisible und ActiveSheet.Pictures.Paste(Link:=True).Select
ActiveSheet.Shapes.Range(Array("Picture 4")).Select usw.
Das ist mir zu hoch, der Recorder ist da auch nur wenig hifreich.
Die Anzahl Daten aus dem Filter variiert.
Der o.g. Code ist natürlich nur zur Veranschaulichung was gemeint ist.
Kann mir mal eine/r von euch helfen das umzusetzen.
Besten Dank schon einmal im Voraus.
Gruß
Thorben

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filterergebnis als verküpfte Grafik einblenden
28.01.2015 12:53:27
Michael
Hallo Thorben!
Hier mein Vorschlag, mit folgenden Annahmen (alles in Tabelle1, musst Du anpassen):
- Dein Filterwert steht in A3
- Die Tabelle beginnt in A6 und geht in meinem Bsp bis Spalte I
- In Zeile 6 stehen Spaltenüberschriften
- Der Wert aus A3 wird in Spalte I als Filter eingesetzt
Der folgende Code (allgemeines Modul)
- Setzt auf o.a. Tabelle (ab A6) einen Autofilter
- Filtert in Spalte I nach Wert aus A3
- kopiert die gefilterte Liste und fügt sie als Bild über der Original-Tabelle ein
- entfernt den Autofilter aus der Originaltabelle
- und steigt aus dem Kopier-/Einfügemodus aus.
Bild vom Filter kannst Du dann beliebig verschieben.
Sub FilterAlsBild()
Dim ListenEnde As Long
Dim Kriterium As String
ListenEnde = Tabelle1.Cells(6, 1).End(xlDown).Row
Kriterium = Tabelle1.Cells(3, 1).Value
Tabelle1.Range(Cells(6, 1), Cells(ListenEnde, 9)).AutoFilter Field:=9, Criteria1:=Kriterium
Tabelle1.Cells(6, 1).CurrentRegion.Copy
ActiveSheet.Pictures.Paste
Tabelle1.Range(Cells(6, 1), Cells(ListenEnde, 9)).AutoFilter
Application.CutCopyMode = False
End Sub
Freue mich über Rückmeldung.
Michael

Anzeige
AW: Filterergebnis als verküpfte Grafik einblenden
28.01.2015 13:36:56
Thorben
Hallo Michael,
besten Dank hab ich soweit verstanden und dann irgendwie doch nicht.
Er nimmt die Workbooks Anweisung nicht an: Fehler 1004
Falsche Schreibweise oder hab ich was übersehen?
Dim ListenEnde As Long
Dim Kriterium As String
ListenEnde = Workbooks("Daten_alt.xlsx").Sheets("POEC").Cells(1, 1).End(xlDown).Row
Kriterium = Tabelle16.Cells(3, 1).Value
Workbooks("Daten_alt.xlsx").Sheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter Field:=9, Criteria1:=Kriterium
Workbooks("Daten_alt.xlsx").Sheets("POEC").Cells(1, 1).CurrentRegion.Copy
ActiveSheet.Pictures.Paste
Workbooks("Daten_alt.xlsx").Sheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter
Application.CutCopyMode = False
Gruß
Thorben

Anzeige
AW: Filterergebnis als verküpfte Grafik einblenden
28.01.2015 13:49:06
Michael
Hallo Thorben!
In meinem Beispiel bin ich davon ausgegangen, dass 1 Mappe mit 1 Tabellenblatt existiert. Aus Deiner ursprünglichen Fragen dürfte ich übersehen haben, dass es sich bei Dir um mehrere Arbeitsmappen mit mehreren Tabellen handelt, wie nun aus Deinem veränderten Code ersichtlich wird.
Hilf mir mal weiter:
- aus welcher Arbeitsmappe kommt das Filterkriterium
- wo befinden sich die Daten die gefiltert werden sollen
- wohin soll das Bild der gefilterten Daten ?
Kriegen wir noch hin ;-)...
Michael

AW: Filterergebnis als verküpfte Grafik einblenden
28.01.2015 14:04:57
Thorben
Hi Michael,
also:
- aus welcher Arbeitsmappe kommt das Filterkriterium = AktivesWorkbook/AktiverSheet (in der das Makro gestartet wird)
- wo befinden sich die Daten die gefiltert werden sollen = Workbooks("Daten_alt.xlsx").Sheets("POEC")
in Spalte I von I2:I20000 (I1 = Überschrift)
- wohin soll das Bild der gefilterten Daten ? = AktivesWorkbook/AktiverSheet
Ist das so ok ?
Gruß
Thorben

Anzeige
AW: Filterergebnis als verküpfte Grafik einblenden
28.01.2015 14:49:41
Michael
Hallo Thorben!
Dann nochmal so. Zur Sicherheit meine Annahmen:
- Beide Mappen, also "Daten_alt.xlsx" und die Mappe aus der Du das Makro ausführst bzw. wo Du den Filterwert setzt, sind gleichzeitig geöffnet
- Du startest mit der Mappe, die den Filterwert enthält, als aktive Mappe
- In der Tabelle POEC in "Daten_alt.xlsx" befinden sich Daten in den Spalten A:I, nach den Werten in I wird gefiltert, erste Zeile enthält Überschriften
Sub ListenFilterAlsBild()
Dim ZielMappe As Workbook
Dim QuellMappe As Workbook
Dim ListenEnde As Long
Dim Kriterium As String
Application.ScreenUpdating = False
Set ZielMappe = ActiveWorkbook
Set QuellMappe = Workbooks("Daten_alt.xlsx")
ListenEnde = QuellMappe.Worksheets("POEC").Cells(1, 1).End(xlDown).Row
Kriterium = ZielMappe.Worksheets("Tabelle1").Cells(3, 1).Value
QuellMappe.Activate
Worksheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter Field:=9, Criteria1:= _
Kriterium
Worksheets("POEC").Cells(1, 1).CurrentRegion.Copy
ZielMappe.Activate
Worksheets("Tabelle1").Pictures.Paste
Application.CutCopyMode = False
QuellMappe.Activate
Worksheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter
ZielMappe.Activate
Application.ScreenUpdating = True
End Sub
Kommst Du so hin?
Lg
Michael

Anzeige
Super, vielen Dank! Alles geht!
28.01.2015 14:55:39
Thorben
Hallo Michael,
vielen Dank für die Hilfe. So hab ich es gemeint!
Wünsch Dir noch einen schönen Tag.
Gruß
Thorben

Ah einen noch, Bild positionieren?
28.01.2015 15:18:49
Thorben
Hallo nochmal,
wie kann ich das Bild jedesmal an dieser Position ausríchten, da die Nummer ja fortlaufend ist!?:
Mit nachstehendem verschiebe ich auch andere Bilder und Button.
Soll aber nur auf dieses "eine" angewendet werden!
On Error GoTo Err:
For i = 1 To 9999
ActiveSheet.Shapes(i).Name = "Picture " & i
ActiveSheet.Shapes.Range(Array("Picture " & i)).Select
Selection.ShapeRange.IncrementLeft -723
Selection.ShapeRange.IncrementTop -492.75
Next i
Err:
Exit Sub
Danke schon mal
Gruß
Thorben

Anzeige
Offen: Bild positionieren?
28.01.2015 16:30:18
Thorben
noch offen!!!
Danke schonmal und Gruß

Danke f.d. Rückmeldung... AW: Super, vielen Dank!
28.01.2015 15:25:13
Michael
Thorben!
Hier das ganze noch etwas "geputzt". Dir auch noch einen schönen Tag!
LG Michael
Sub ListenFilterAlsBild()
Dim ListenEnde As String
Dim Kriterium As String
Dim DieseMappe As Workbook
Dim AlteMappe As Workbook
Set AlteMappe = Workbooks("Daten_alt.xlsx")
Set DieseMappe = ThisWorkbook
ListenEnde = AlteMappe.Worksheets("POEC").Cells(1, 1).End(xlDown).Row
Kriterium = DieseMappe.Worksheets("Tabelle1").Cells(3, 1).Value
Application.ScreenUpdating = False
With AlteMappe
.Activate
.Worksheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter Field:=9,  _
Criteria1:=Kriterium
.Worksheets("POEC").Cells(1, 1).CurrentRegion.Copy
End With
With DieseMappe
.Activate
.ActiveSheet.Pictures.Paste
End With
With AlteMappe
.Activate
.Worksheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter
End With
With Application
.CutCopyMode = False
.ScreenUpdating = True
End With
DieseMappe.Activate
End Sub

Anzeige
Noch offen! Sorry wegen doppel!
28.01.2015 16:31:41
Thorben
...

habs! ist alles iO- Trotzdem danke
28.01.2015 16:54:56
Thorben
Dim pic As Shape, rng As Range
For Each pic In ActiveSheet.Shapes
If pic.Type = msoPicture Then
pic.Select
Selection.ShapeRange.IncrementLeft -1000
Selection.ShapeRange.IncrementTop -280
End If
Next pic

AW: habs! ist alles iO- Trotzdem danke
28.01.2015 17:11:36
Michael
Hallo Thorben!
Sorry, ich hatte noch anderes zu tun ;-)... Super, dass Du es für Dich schon gelöst hast. Ich habe Dir jetzt aber auch noch meinen Code angepasst, sodass das jeweils eingefügte Bild der gefilterten Liste immer an der selben Position eingefügt wird (die Werte für .Left und .Top musst Du natürlich anpassen):
Sub ListenFilterAlsBildNeu()
Dim ZielMappe As Workbook
Dim QuellMappe As Workbook
Dim ListenEnde As Long
Dim Kriterium As String
Dim BildZähler As Long
Set ZielMappe = ActiveWorkbook
Set QuellMappe = Workbooks("Daten_alt.xlsx")
ListenEnde = QuellMappe.Worksheets("POEC").Cells(1, 1).End(xlDown).Row
Kriterium = ZielMappe.Worksheets("Tabelle1").Cells(3, 1).Value
QuellMappe.Activate
Worksheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter Field:=9, Criteria1:= _
Kriterium
Worksheets("POEC").Range(Cells(1, 1), Cells(Cells(1, 1).End(xlDown).Row, 9)).CopyPicture  _
xlScreen, xlBitmap
ZielMappe.Activate
Worksheets("Tabelle1").Paste Destination:=Tabelle1.Range("L1")
Application.CutCopyMode = False
QuellMappe.Activate
Worksheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter
ZielMappe.Activate
BildZähler = ActiveSheet.Shapes.Count
With ActiveSheet.Shapes(BildZähler)
.Left = 300
.Top = 0
End With
End Sub
Schönen Abend
Michael

Anzeige
Michael/Thorben - habs nochmal geputzt :-)
02.02.2015 16:45:59
Thorben
Hallo Michael,
habe jetzt auch nochmal geputzt :-)
So spare ich mir den Zähler!
Mit dem hier bin ich nicht klar gekommen: CopyPicturexlScreen, xlBitmap
Habs jetzt so gemacht (siehe Code)
Sub ListenFilterAlsBildNeu()
Dim ZielMappe As Workbook
Dim QuellMappe As Workbook
Dim ListenEnde As Long
Dim Kriterium As String
Dim Acell As Range
Application.ScreenUpdating = False
Set ZielMappe = ActiveWorkbook
Set QuellMappe = Workbooks("Daten.xlsx")
Set Acell = ActiveSheet.Cells(ActiveCell.Row, 1)
ListenEnde = QuellMappe.Worksheets("POEC").Cells(1, 1).End(xlDown).Row
Kriterium = Acell.Value
QuellMappe.Activate
Worksheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter Field:=9, Criteria1:= _
Kriterium
Worksheets("POEC").Range(Cells(1, 1), Cells(Cells(1, 1).End(xlDown).Row, 9)).CopyPicture _  _
Appearance:=xlScreen, Format:=xlPicture
ZielMappe.Activate
Worksheets("Tabelle5").Paste Destination:=Tabelle5.Cells(ActiveCell.Row, 3)
Application.CutCopyMode = False
QuellMappe.Activate
Worksheets("POEC").Range(Cells(1, 1), Cells(ListenEnde, 9)).AutoFilter
ZielMappe.Activate
Application.ScreenUpdating = True
End Sub
Besten Gruß
Thorben
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige