Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Grafik auf Position bringen

Betrifft: Grafik auf Position bringen von: Harald Haldenwang
Geschrieben am: 01.08.2008 11:19:02

Hallo zusammen,

habe folgenden Script (ich gestehe, den hat mir eine Freundin geschrieben), der auch funktioniert:

Option Explicit ' Variablendefinition erforderlich
' Konstante für Ablagepfad Bilder
Const StPfad As String = "G:\Bilder\0001-1000\"


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim StBild As String                    ' Variable für Bildname
    Dim InI As Integer                      ' Schleifenvariable
    Dim objShape As Object
    
    If Target.Address <> "$B$36" Then Exit Sub  'prüfen ob

'   Bildnamen zusammensetzen
    If Target.Value = "" Then Exit Sub      ' kein Eingabe, Prozedur verlassen
    StBild = StPfad & Format(Target.Value, "00000") & ".jpg" 'den Dateinamen übernehmen
    
    Worksheets("Ausgabe").Activate            'Auf das Tabellenblatt Bild springen
    
    Application.EnableEvents = False       ' Reaktion auf Eingabe abschalten
    Target.Offset(0, 1) = ""                ' Zelle neben Eingabefeld leeren
       
    For Each objShape In ActiveSheet.Shapes
        If objShape.Type = msoLinkedPicture Then objShape.Delete
     Next
     With ActiveSheet.Shapes.AddPicture(StBild, True, True, Target.Offset(0, 1).Left, _
        Target.Offset(0, 0).Top, 450, 300)      'die letzten beiden Werte sind Breite und Höhe   _
 _
 _
_
der Bilder
     End With
        Application.EnableEvents = True         ' Reaktion auf Eingabe einschalten
End Sub




Private Sub ListBox1_Click()

End Sub



Ich schaffe es aber nicht diese Grafik auf eine bestimmte Position zu bringen. Also, die Grafik soll halt ab einer bestimmten Zelle auftauchen. Welcher Script-Eintrag fehtl da? Leider schafft meine Freundin das nicht.

Zudem ist es möglich die Grafik in den Hintergrund zu setzen? D.h. das z.B. Textfelder die Grafik überdecken?

Danke im Voraus und Gruß

Harald

  

Betrifft: AW: Grafik auf Position bringen von: Ramses
Geschrieben am: 01.08.2008 11:40:35

Hallo

"...Also, die Grafik soll halt ab einer bestimmten Zelle auftauchen..."

"... Welcher Script-Eintrag fehtl da? Leider schafft meine Freundin das nicht..."
Dann soll sie mal in die VBA-Hilfe schauen zu den Eigenschaften der Bildposition.

Sub Bildposition()
    With ActiveSheet.Shapes("Bild 1")
        .Top = Range("B2").Top
        .Left = Range("B2").Left
    End With
End Sub


"...Zudem ist es möglich die Grafik in den Hintergrund zu setzen?.."
Nein. Eine Grafik im Hintergrund wird von EXCEL für den GESAMTEN Tabellenhintergrund verwendet.

"...D.h. das z.B. Textfelder die Grafik überdecken?.."
Ja, ... wenn die Textfelder Eingabeboxen aus der Symbolleiste "Steuerelement Toolbox" sind.
Hilfe:
ZOrder oder ZOrderposition in den Eigenschaften der Textbox oder des Bildes

Option Explicit

Sub Bildposition()
    Dim myP As Shape
    Set myP = ActiveSheet.Shapes("Bild 1")
    With myP
        Debug.Print ""
        .Top = Range("B2").Top
        .Left = Range("B2").Left
        .ZOrder (msoSendBackward)
    End With
End Sub


Gruss Rainer


  

Betrifft: AW: Grafik auf Position bringen von: Daniel
Geschrieben am: 01.08.2008 11:47:56

Hi
die Grafik erscheint immer in der Position der Zelle, die geändert wurde.
die Postion des Bildes wird im 4. und 5. Parameter der ShapesADD-Funktion festgelegt.

wo genau soll denn das Bild erscheinen?
das das Bild in einem Anderen Blatt eingefügt wird, ist dir hoffentlich klar.

zu den weitern Fragen:
in Excel liegt ein Bild immer über der Exceltabelle und deren Zellen.
falls es auch noch andere Grafikelemente gibt (Textboxen gehören auch dazu), kannst du natürlcih eine Reihenfolge festlegen, das kann man von Hand über das Kontextmenü - REIHENFOLGE festlegen.
falls du es als VBA Benötigst, lass einfach den recorder bei der Aktion mitlaufen.

Gruß, Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Grafik auf Position bringen"