Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
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

variabler Pfad

variabler Pfad
10.11.2008 15:59:49
Harald
Hallo zusammen,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: variabler Pfad
10.11.2008 16:05:00
JogyB
Hallo.
Ist letztendlich ganz einfach, nur vermute ich, dass hier noch mehr Code existiert, der u.U. angepaßt werden muss (ansonsten würde die Const-Deklaration im Kopf keinen Sinn machen).
Gruss, Jogy
AW: variabler Pfad
10.11.2008 20:15:00
Daniel
Hi
eigentlich ganz einfach:
statt Const StPfad As String ="xxx" schreibst du Dim StPfad As String ="xxx"
und weist dann der Variable StPfad irgenwo im Code, bevor sie das erste mal verwendet wird, den Wert zu: StPfad = Sheets("Tabelle1").Range("A1").value
wo die Dimensionierung der Variable erfolgen muss (also die DIM-Anweisung), hängt davon ab, wo die Variable verwendet wird:
- Nur innerhalb eines Makros:
~dann auch im Marko nach SUB XXX()
- von mehreren Makros, die sich aber im gleichen Modul befinden:
~ dann unterhalb von OPTION EXPLICIT im betroffenen Modul(tabelle1)
- von mehren Makros aus verschieden Modulen:
~ dann unterhalb von Option Explicit in einem allgemeinen Modul (modul1)
Gruß, Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige