Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pfad als Variable oder Konstante

Forumthread: Pfad als Variable oder Konstante

Pfad als Variable oder Konstante
22.06.2013 07:27:47
Alexander
Hallo
Ich möchte einen Pfad den ich immer wieder benötige als variable oder Konstante setzten. wenn ich jedoch:
Const Pfad1 As String = "'C:\Users\###\#####\[#######"
setze und Pfad1 wieder einsetze zum beispiel in:
cmbtyp.RowSource = "& Pfad1 & .xlsm]KUKA'!B7:B200"
bekomme ich jedes mal beim Probelauf die meldung "Laufzeitfehler '380' Eigenschaft Rowsource konnte nicht Gesetzt werden. Ungültiger Eigenschaftswert "
Woran liegt das.
Danke schonmal im Voraus

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
in deinem Text ist...
22.06.2013 07:37:14
Oberschlumpf
Hi Alexander
...der Fehler hier:
cmbtyp.RowSource = "& Pfad1 & .xlsm]KUKA'!B7:B200" ergibt als Ergebnis nur:
"& Pfad1 & .xlsm]KUKA'!B7:B200"
denn du beginnst mit "
Alles was mit " beginnt, wird als String interpretiert
Und wieso ein & direkt hinter dem " steht, verstehe ich nicht - denn es würde zu einem Fehler führen.
Wenn du als Rückgabewert für cmbtyp.RowSource das hier haben willst:
"'C:\Users\###\#####\[#######.xlsm]KUKA'!B7:B200"
dann versuch es mal so:
Const Pfad1 As String = "'C:\Users\###\#####\[#######"
cmbtyp.RowSource = Pfad1 & ".xlsm]KUKA'!B7:B200"
Hilfts?
Ciao
Thorsten

Anzeige
AW: in deinem Text ist...
22.06.2013 10:31:54
Alexander
Hallo Thorsten
Es funktioniert leider immer noch nicht habe es genau so probiert wie du es geschrieben hast und es kommt immer noch der selbe Fehler.
danke nochmal

AW: in deinem Text ist...
22.06.2013 11:03:43
Alexander
Hallo Thorsten
Ich habe es hinbekommen nur funktioniert es nicht im sverweis. :-(
Range("d12").FormulaLocal = "=SVERWEIS(b12; Pfad1 & "KUKA'!B7:F200;2;FALSCH)"

Anzeige
AW: in deinem Text ist...
22.06.2013 11:05:41
Oberschlumpf
Hi
ok, dann vergiß meinen Beitrag mit Bsp-Datei ;-)
Ciao
Thorsten

AW: in deinem Text ist...
22.06.2013 11:12:25
Alexander
Hallo Thorsten
Muss ich in diesem Fall etwas besonderes beachten:
 Select Case cmbrbt
Case "KUKA"
Range("d12").FormulaLocal = "=SVERWEIS(b12;Pfad1 & KUKA'!B7:F200;2;FALSCH)"
Range("d13").FormulaLocal = "=SVERWEIS(b12;Pfad1 & KUKA'!B7:F200;3;FALSCH)"
Range("d14").FormulaLocal = "=SVERWEIS(b12;Pfad1 & KUKA'!B7:F200;4;FALSCH)"
'Lastfall Angaben
Range("a5").Value = "Lastfall Vom Roboter:"
With Range("a5").Font
.Name = Arial
.Color = vbBlue
.Bold = False
.Underline = False
End With
Range("a5:b5").MergeCells = True
Range("d5").Value = "Lastfall Am Roboter:"
With Range("d5").Font
.Name = Arial
.Color = vbBlue
.Bold = False
.Underline = False
End With
Range("d5:e5").MergeCells = True
Case "ABB"
Range("d12").FormulaLocal = "=SVERWEIS(b12;'N:\[QuickCalk.xlsm]ABB'!B7:F200;2; _
FALSCH)"
Range("d13").FormulaLocal = "=SVERWEIS(b12;'N:\[QuickCalk.xlsm]ABB'!B7:F200;3; _
FALSCH)"
Range("d14").FormulaLocal = "=SVERWEIS(b12;'N:\[QuickCalk.xlsm]ABB'!B7:F200;4; _
FALSCH)"
Range("d5").Value = "Nur STOP 1 verfügbar"
With Range("a5").Font
.Name = Arial
.Color = vbRed
.Bold = True
.Underline = True
End With
Range("a5:c5").MergeCells = True
End Select
im unteren case bei ABB habe ich noch den Pfad Vom stick aber den jedesmal zu ändern ist aufwändig da der Pfad noch ca 50 mal benötigt wird .
wäre toll wen du was wüstest
Danke

Anzeige
AW: in deinem Text ist...
22.06.2013 11:55:31
Oberschlumpf
Hi Alex
ich kenn noch immer nich deine Datei. Daher kann ich auch nich wirklich helfen, glaub ich.
Einzige Idee:
Mach doch aus dem "festen" Pfadeintrag auch eine Variable.
Am Anfang des Codes:
Pfad2 = "'N:\[QuickCalk.xlsm]ABB'!B7:F200"
Und im Code dann
Range("d12").FormulaLocal = "=SVERWEIS(b12;" & Pfad2 & ";2; FALSCH)"
So müsstest du bei Pfadänderung nur noch
Pfad2 = "..anderer Pfad..."
ändern, und nicht mehr an 50 versch. Stellen im Code.
Hilfts?
Ciao
Thorsten

Anzeige
AW: in deinem Text ist...
22.06.2013 12:30:33
Oberschlumpf
Hi Alex
Ich übersah deinen Hinweis, dass es im SVERWEIS nicht klappt.
Versuch es mit allen Zeilen so:
Range("d12").FormulaLocal = "=SVERWEIS(b12;" & Pfad1 & "KUKA'!B7:F200;2;FALSCH)"
Hilfts?
Wenn nicht, DANN BSP-DATEI!
Ciao
Thorsten

AW: in deinem Text ist...
23.06.2013 15:23:00
Alexander
Hallo Thorsten
danke es hat funktioniert.
LG Alex

Anzeige
AW: in deinem Text ist...
22.06.2013 11:04:33
Oberschlumpf
Hi Alexander
Tja, dann wäre es schön, wenn du uns ne Bsp-Datei zeigst.
Ciao
Thorsten
;
Anzeige
Anzeige

Infobox / Tutorial

Pfad als Variable oder Konstante in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Variable oder Konstante definieren: Um einen Pfad als Konstante oder Variable zu definieren, kannst du folgenden Code verwenden:

    Const Pfad1 As String = "'C:\Users\###\#####\[#######"
  2. RowSource setzen: Wenn du den Pfad in einer RowSource verwenden möchtest, sollte der Code wie folgt aussehen:

    cmbtyp.RowSource = Pfad1 & ".xlsm]KUKA'!B7:B200"
  3. SVERWEIS verwenden: Um den Pfad in einer SVERWEIS-Formel zu verwenden, kannst du den Code anpassen:

    Range("d12").FormulaLocal = "=SVERWEIS(b12;" & Pfad1 & "KUKA'!B7:F200;2;FALSCH)"

Häufige Fehler und Lösungen

  • Laufzeitfehler '380': Dieser Fehler tritt auf, wenn der RowSource-Wert ungültig ist. Stelle sicher, dass du den Pfad korrekt definierst und keine Anführungszeichen oder Sonderzeichen falsch platzierst.

  • Formel im SVERWEIS funktioniert nicht: Achte darauf, dass du den Pfad korrekt in die Formel einfügst. Verwende das Verkettungssymbol &, um Variablen in Formeln zu integrieren.


Alternative Methoden

Eine alternative Methode zur Handhabung von Pfaden ist die Verwendung von Variablen anstelle von Konstanten. Du kannst am Anfang deines Codes eine Variable definieren:

Dim Pfad2 As String
Pfad2 = "'N:\[QuickCalk.xlsm]ABB'!B7:F200"

Dann kannst du diese Variable überall im Code verwenden, was die Wartung erleichtert.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den Pfad in verschiedenen Kontexten verwenden kannst:

  • VBA Code für KUKA:

    Select Case cmbrbt
    Case "KUKA"
       Range("d12").FormulaLocal = "=SVERWEIS(b12;" & Pfad1 & "KUKA'!B7:F200;2;FALSCH)"
    End Select
  • VBA Code für ABB:

    Case "ABB"
       Range("d12").FormulaLocal = "=SVERWEIS(b12;'" & Pfad2 & ";2;FALSCH)"
    End Select

Tipps für Profis

  • Verwende immer & zum Verketten: Achte darauf, dass du beim Setzen von Formeln in Excel VBA immer das Verketten-Symbol & verwendest, um Variablen korrekt in Strings einzufügen.

  • Variablen für häufige Pfade: Wenn du einen Pfad an mehreren Stellen in deinem Code benötigst, definiere ihn einmal als Variable. So kannst du bei Änderungen nur an einer Stelle Anpassungen vornehmen.


FAQ: Häufige Fragen

1. Wie kann ich einen Pfad dynamisch ändern?
Lege den Pfad als Variable an und ändere den Wert nur an einer Stelle, wenn sich der Pfad ändert.

2. Warum funktioniert mein SVERWEIS nicht mit einem Pfad?
Stelle sicher, dass du den Pfad korrekt in die Formel einfügst und alle Zeichen richtig plazierst. Verwende das Verketten-Symbol & richtig.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige