Relativer Pfad

Hallo zusammen

Hab da ein Problem
Habe im Excel Dateien Makros. Die muss ich bearbeiten. Hab schon raus gefunden wie. Nun was ich tun muss:

Die Absoluten Pfade ändern zu relative. Die Dateien sind alle im selben Ordner. Aber dieser Ordner heisst halt nicht immer gleich, weil die die Dateien verschieben (weiss der Himmel warum).

Hier zwei Code Beispiele:
Sub oeffnenDetail()
Workbooks.Open Filename:= _
„Fintan:smiley:esktop Folder:Rechnungen:Generalliste“
Windows(„RechnungGLYCINE1“).Activate
Range(„A24“).Select
End Sub

und

Sub Adressenoeffnen()

ChDir „Fintan:smiley:esktop Folder:Rechnungen:“
Workbooks.Open FileName:= _
„Fintan:smiley:esktop Folder:Rechnungen:AdressenGlycine“
End Sub

Wie kann ich den die nun Relativ machen?

Hab nun schon viel Ausrobiert… hoffe ihr habt eine Lösung :smile:
mfg Cele

Hallo,
den Pfad, in dem die ausgeführte Datei liegt, bekommst Du mit …

App.Path

Gruß, Rainer

danke dir. Das hilft mir schon sehr weiter!

Probiere das nun aus. Meld mich wieder wenn ich nochmals Hilfe brauch!

Danke
Cele

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hab mal das so eingebaut:

Workbooks.Open Filename:=App.Path & „\Generalliste“

Wenn ich nun das Makro aufrufe, kommt nun die Fehlermeldung, das es ein Objekt braucht. Wie kann man das lösen?

Danke für deine Hilfe
Cele

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Workbooks.Open Filename:=App.Path & „\Generalliste“

Wenn ich nun das Makro aufrufe, kommt nun die Fehlermeldung,
das es ein Objekt braucht. Wie kann man das lösen?

sorry, VBA kenne ich nicht, nur über die Teile der Syntax, die in VBA wie in VB6 funktionieren kann ich Dir etwas erzählen. ;-(

Gruß, Rainer

hm
ich weiss nicht. mache das seit gestern zum erstenmal…
also wenn ich auf info klicke, heisst es das ich Visual Basic 6.0 hab. Ist das nun VB6?

sorry, VBA kenne ich nicht, nur über die Teile der Syntax, die
in VBA wie in VB6 funktionieren kann ich Dir etwas erzählen.
;-(

Gruß, Rainer

Hallo,

ich weiss nicht. mache das seit gestern zum erstenmal…
also wenn ich auf info klicke, heisst es das ich Visual Basic
6.0 hab. Ist das nun VB6?

hmmm, im ersten Beitrag steht …
Habe im Excel Dateien Makros.
… daraus hatte ich geschlossen, daß Du in Excel mit VBA arbeitest.
War dann wohl 'ne Fehlinterpretation.

Da es sich dann wohl doch um VB handelt …

OK, ich habe mir mal ein Beispiel gebastelt. :wink:

Private Sub Command1\_Click()
 CommonDialog1.ShowOpen
 Workbooks.Open FileName:=CommonDialog1.FileName
 Workbooks.Close
End Sub

Das läuft ohne Fehlermeldung durch. Was mir an Deinem Quellcode auffällt: Deinem Filename fehlt die Endung ‚.xls‘. Ist das ein Excel-File? Ist der Name richtig? Liegt es im Ordner …\VB98? Oder hast Du das Projekt kompiliert und die .exe zu den Excelfiles gelegt?

In VB habe ich noch nichts mit Excel gemacht, deshalb kann ich mit dem geöffneten ‚Workbook‘ nichts anfangen. :wink:

Gruß, Rainer

naja eben ich kenne mich wneig aus. Das wurde von jemand anderem erstellt… und es ging ja auch. Er arbeitete aber erstens auf Mac und zweitens waren eben die Pfade absolut.
Ich habe es nun übernommen von ihm. Ich kann die Pfade abändern, sodass sie immer noch absolut sind, aber auf Windows funktionieren.
Problem, ist eben das relative.

Diese Makros sind im Excel, aber wenn ich sie bearbeite, startet es VB6

Beim absoluten Pfad musste ich nie xls schreiben. Keine Ahnung warum. Ist mir auch schon aufgefallen.

Zu deinem Beispiel

Was ist der unterschied zwischen Private Sub und Sub?
Ist Command1_Click() wichtig oder kann ich es bei oeffnenDetail() belassen?

Mit Command1_Click() kann ich es nicht öffnen im Excel, weil dann der link natürlich falsch ist.
Mit oeffnenDetail() kommt imme rnoch die Fehlermeldung, das es ein Objekt braucht.

Hoffe hast noch bisschen Geduld mit mir :smile:
mfg Cele

Das gibts nicht. Habs grad rausbekommen

Sub oeffnenDetail()

’ oeffnenDetail Makro
’ Makro am 26.04.2002 von * aufgezeichnet
’ bearbeitet von Mathis Furrer

Phad = ThisWorkbook.Path

Workbooks.Open Filename:= _
Phad & „\Generalliste.xls“

Windows(„RechnungGLYCINE1“).Activate
Range(„A24“).Select

End Sub

danke dir. Hast mir sehr geholfen!!!

Hallo,

naja eben ich kenne mich wneig aus. Das wurde von jemand
anderem erstellt… und es ging ja auch. Er arbeitete aber
erstens auf Mac und zweitens waren eben die Pfade absolut.
Ich habe es nun übernommen von ihm. Ich kann die Pfade
abändern, sodass sie immer noch absolut sind, aber auf Windows
funktionieren.
Problem, ist eben das relative.

Diese Makros sind im Excel, aber wenn ich sie bearbeite,
startet es VB6

aha, also doch VBA. :wink: Na ja, wird trotzdem funktionieren.

Beim absoluten Pfad musste ich nie xls schreiben. Keine Ahnung
warum. Ist mir auch schon aufgefallen.

??? Du kannst Die Endung weg lassen? Komisch.

Zu deinem Beispiel

Was ist der unterschied zwischen Private Sub und Sub?

Vergiß es. Das ist die Syntax aus VB, wenn das bei Dir anders aussieht, ändere da nichts.

Ist Command1_Click() wichtig oder kann ich es bei
oeffnenDetail() belassen?

Ja, ich muß hier nur etwas haben, wo ich den Code hin schreiben muß, in den Fall war das ein Button. Hat mit Deinem Problem nichts zu tun.

Mit Command1_Click() kann ich es nicht öffnen im Excel, weil
dann der link natürlich falsch ist.
Mit oeffnenDetail() kommt imme rnoch die Fehlermeldung, das es
ein Objekt braucht.

Hoffe hast noch bisschen Geduld mit mir :smile:

Na klar. :wink: Ich versuch’s gleich noch mit VBA, hab ich ja auch.
Da kenne ich mich aber nicht so gut aus, wird aber klappen. Ich melde mich wieder.

Gruß, Rainer

Hi,

Das gibts nicht. Habs grad rausbekommen

erledigt? Prima! Viel Spaß noch!

Gruß, Rainer