variabler Pfad
10.11.2008 15:59:49
Harald
folgendes Problem:
Ich habe da einen VBA-Script, nur mit Hilfe gemacht:
Option Explicit ' Variablendefinition erforderlich
' Konstante für Ablagepfad Bilder
'Const StPfad As String = "h:\eigene dateien\Vordachberechnung\"
Const StPfad As String = "I:\Produkt Informationen\Rubrik14-Vordachsysteme\Vordachberechnung\Grafiken\"
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
Dim objShape2 As Object
Dim oShape As Object
Dim oZiel As Worksheet
Dim myP As Shape
Dim i As Integer
Dim vzelle As String
'Tabellenzellen die sich verändern können eintragen
If (Target.Address = "$G$7") Or (Target.Address = "$G$7") Then
Set oZiel = Worksheets("Zigmento")
'-----------------------------erstes Bild
If (Target.Address = "$G$7") Then
'Bildnamen zusammensetzen
If Target.Value = "" Then Exit Sub ' kein Eingabe, Prozedur
'verlassen
StBild = StPfad & Format(Target.Value, "00000") & ".png" 'den Dateinamen übernehmen
Application.EnableEvents = False ' Reaktion auf Eingabe
'abschalten
With oZiel.Shapes.AddPicture(StBild, True, True, 25, _
650, 700, 450) 'der dritt- und viertletzte Wert ist der
'Abstand in Pixel vom Rand und die letzten beiden Werte sind Breite und Höhe der Bilder
End With
Application.EnableEvents = True ' Reaktion auf Eingabe
'einschalten
End If
'-----------------------Ende erstes Bild
'-----------------------zweites Bild
If (Target.Address = "$G$7") Then
'Zelle in Variable schreiben die wirklich ausgelesen werden soll, auch Zahl jetzt ohne _
Probleme möglich
vzelle = ActiveSheet.Range("$G$7").Value2
' Bildnamen zusammensetzen
If Target.Value = "" Then Exit Sub ' kein Eingabe, Prozedur
'verlassen
StBild = StPfad & vzelle & ".png" 'den Dateinamen übernehmen
Application.EnableEvents = False ' Reaktion auf Eingabe
'abschalten
With oZiel.Shapes.AddPicture(StBild, True, True, 25, _
1500, 500, 330) 'der dritt- und viertletzte Wert ist der
'Abstand in Pixel vom Rand und die letzten beiden Werte sind Breite und Höhe der Bilder
End With
Application.EnableEvents = True ' Reaktion auf Eingabe
'einschalten
End If
'-----------------------Ende zweites Bild
'alle Textboxen in den Vordergund i ist der Zähler also Textbox 1 bis x usw.
For i = 1 To 27
Set oShape = oZiel.Shapes("TextBox" & i)
With oShape
.ZOrder msoBringToFront
End With
Next
Application.EnableEvents = True ' Reaktion auf Eingabe
'einschalten
End If
End Sub
Es kommt mir eigentlich nur auf den fetten Teil an. Die damalige Hilfe die ich für den Script hatte ist im Moment nicht zu erreichen, leider.
Kann man die Pfadangabe so variabel machen, dass der Pfad in einer Zelle reingeschrieben wird und das dann vom Script ausgelesen wird?
Beispiel:
A1= C:\test
im Script dann in etwa so:
Const StPfad As String = "Tabelle1!A1"
Vielen Dank schonmal