Microsoft Excel

Herbers Excel/VBA-Archiv

namen definieren | Herbers Excel-Forum


Betrifft: namen definieren von: josef
Geschrieben am: 14.10.2008 14:07:21

Hallo!

Habe eine "Plattform", von wo aus die Makros gestartet werden und in welcher auch Daten aus 20 Listen ausgelesen werden. Die Plattform und auch die Listen sind auf dem Laufwerk "P" abgelegt.
Zum Auslesen der Daten habe ich für die 20 Listen 20 Namen vergeben. In diesen Nanem ist daher auch der Laufwerkbuchstabe integriert. Wenn ich nun die Listen und die Plattform auf ein anderes Laufwerk (LW) schiebe ( ist manchmal nötig ), dann bleibt in den Namen die Zuordnung zu dem alten LW erhalten und es ist erforderlich, dass alle Namen überarbeitet werden müssen ( und manchmal vergessen wird - was zu Fehlern führt ).
Gibt es eine Möglichkeit, dass das jeweilige aktuelle LW in den Namen beim verschieben übernommen wird ??

Danke für Eure Hilfe

Josef

  

Betrifft: AW: namen definieren von: Andre´
Geschrieben am: 14.10.2008 14:19:26

Hallo Josef,
gebe den richtigen Pfad an wie:

\\A-....\

MFG Andre


  

Betrifft: AW: namen definieren von: josef
Geschrieben am: 14.10.2008 14:47:24

Hallo Andre,

ich verstehe Deine Hilfe nicht,
derzeit ist der Pfad im Namen ='P:\Listen\Liste01 und soll, wenn die Ganze Gruppe verschoben wird auf LW D heißen ='D:\Listen\Liste01
Wie muss ich das schreiben, damit sich dies selbsständig ändert?

Josef


  

Betrifft: AW: namen definieren von: Rudi Maintaire
Geschrieben am: 14.10.2008 15:02:14

Hallo,
=links(Zelle("Dateiname";A1);3)&"Listen\Liste01"

Gruß
Rudi


  

Betrifft: AW: Laufwerk ändern von: Erich G.
Geschrieben am: 14.10.2008 17:04:19

Hallo Josef,
eine Preisfrage: Wie und wo hast du "für die 20 Listen 20 Namen vergeben".
Stehen diese 20 Lang-Dateinamen in einer Tabelle in der "Plattform"?
Oder stehen die 20 Dateinamen im Code?
Danach richtet sich, wie du am einfachsten den Laufwerksbuchstaben anpassen kannst.

Den Buchstaben des Laufwerks, auf dem die Plattform gerade liegt, bekommst du z. B. mit
Left(ThisWorkbook.Path, 1) - wenn der Code in der Plattform steht.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Laufwerk ändern von: josef
Geschrieben am: 14.10.2008 17:29:21

Hallo Erich,

Nein, die Namen stehen nicht in den Zellen einer Tabelle der Plattform und auch nicht im VBA-Code.

also - ich habe in der Excel-Liste "Plattform" über Einfügen > Namen > Definieren als "Namen in der Arbeitsmappe" in dem Eingabefeld "Bezieht sich auf:" den Bereich eingetragen, aus welchem ich die Info auslesen möchte.
Name: Liste01
='P:\Listen\[Liste01.xls]Gesamt!$A$4:$W$3052

mit diesem Namen fülle ich in der Liste(Plattform) in einer Zelle die Formel
=SVERWEIS($A$2;Liste01;E$1;FALSCH) , in der nächsten Spalte
=SVERWEIS($A$2;Liste02;E$1;FALSCH) , usw.

Bei dieser Auswertung finde ich heraus, in welcher Liste von den 20 der Eintrag steht und wo ich dann die anderen Informationen auslesen kann.

und dieses LW ( ='P: ) möchte ich immer automatisch auf den aktuellen Laufwerkbuchstaben ( z.Bsp ='D: ) ändern, ohne bei allen Namen händisch zu ändern.


Villeicht gibt es ja auch die Möglichkeit, bei jedem Start der Plattform die Namen per VBA zuzuweisen?

Danke für dDeine Hilfe

lg

Josef


  

Betrifft: AW: Laufwerk ändern von: Erich G.
Geschrieben am: 14.10.2008 18:55:30

Hi Josef,
die folgende Prozedur ändert im Bezug aller Namen das Laufwerk.
Sie gehört in eine normales Modul in der "Plattform":

Option Explicit

Sub LWinNamen()
   Dim namX As Name, strT As String, intP As Integer
   
   For Each namX In ThisWorkbook.Names
      strT = namX.RefersTo
      intP = InStr(strT, ":")
      If intP > 2 Then
         strT = Left(strT, intP - 2) & _
            Left(ThisWorkbook.Path, 1) & _
            Mid(strT, intP, 999)
         namX.RefersTo = strT
      End If
   Next namX
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Laufwerk ändern von: josef
Geschrieben am: 14.10.2008 21:05:21

Hallo Erich,



einmalig, funktioniert super.



danke vielmals



lg

Josef


  

Betrifft: AW: Laufwerk ändern von: Uduuh
Geschrieben am: 14.10.2008 19:08:56

Hallo,
das geht so nicht. Du kannst die Einschränkungen von INDIREKT nicht über die Vergabe eines Namens umgehen.
Dir bleibt nichts anderes, als die Bezüge per VBA anzupassen.

Gruß aus’m Pott
Udo



  

Betrifft: AW: Laufwerk ändern von: josef
Geschrieben am: 14.10.2008 21:11:31

Hallo Udo,

Danke für die Info, Du hast recht und Erichs Lösung hat mir geholfen.

lg
Josef