Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

CurrentProject.Path funktioniert nicht

Forumthread: CurrentProject.Path funktioniert nicht

CurrentProject.Path funktioniert nicht
21.02.2018 12:31:57
Linda
Hallo Zusammen,
ich möchte gerne meine Daten per VBA zwischen 2 Mappen austauschen. Da ich den Order indem sich die beiden Mappen befinden auch kopieren und verschieben möchte, kann ich nicht den kompletten Pfad in der Formel hinterlegen. Deshalb möchte ich "CurrentProjekt.Path" verwenden.
Leider funktioniert es nicht. Ich habe wohl einen Denkfehler drin. Kann mir jemand helfen?
Sub Export()
' Export Makro'
'Überprüfen ob es Mitarbeiter 1 ist….
If Sheets("Übersicht Rapporte").Range("C5").Value = 1 Then
'Ja? Dann werden folgende Zeilen kopiert…
Sheets("Übersicht Rapporte").Rows("15:4055").Copy
'Mappe: Schlosser_Datenbank öffnen
Workbooks.Open Filename = _
(CurrentProject.Path & "\Schlosser_Datenbank.xlsx"), Password:="schlosser"
'Werte einfügen (ohne Formel - nur Werte)
Workbooks("Schlosser_Datenbank.xlsx").Sheets("Alle Rapporte").Rows("15-4055").PasteSpecial  _
xlPasteValues
'Arbeitsmappe speichern
Workbooks("Schlosser_Datenbank").Save
'Arbeitsmappe schließen
Workbooks("Schlosser_Datenbank").Close
End If
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CurrentProject.Path funktioniert nicht
21.02.2018 12:41:44
Rudi
Hallo,
das liegt daran, dass es das Objekt nicht gibt.
ThisWorkbook.Path
sollte passen.
Gruß
Rudi
AW: CurrentProject.Path funktioniert nicht
21.02.2018 12:46:35
Linda
Hallo Rudi,
habe jetzt statt CurrentProject.Path ThisWorkbook.Path eingsetzt. Funktioniert leider auch nicht...
AW: CurrentProject.Path funktioniert nicht
21.02.2018 12:54:59
Rudi
hallo,
wenn man alles richtig macht, dann klappt es auch. ;-)
Sub Export()
'Überprüfen ob es Mitarbeiter 1 ist….
If Sheets("Übersicht Rapporte").Range("C5").Value = 1 Then
'Ja? Dann werden folgende Zeilen kopiert…
Sheets("Übersicht Rapporte").Rows("15:4055").Copy
'Mappe: Schlosser_Datenbank öffnen
Workbooks.Open Filename:= _
(ThisWorkbook.Path & "\Schlosser_Datenbank.xlsx"), Password:="schlosser"
With ActiveWorkbook
'Werte einfügen (ohne Formel - nur Werte)
.Sheets("Alle Rapporte").Range("A15").PasteSpecial xlPasteValues
'Arbeitsmappe speichern und schließen
.Close True
End With
End If
End Sub

Gruß
Rudi
Anzeige
AW: CurrentProject.Path funktioniert nicht
21.02.2018 13:05:26
Linda
Danke Rudi, Du bist Spitze :-)
AW: CurrentProject.Path funktioniert nicht
21.02.2018 14:45:28
Luschi
Hallo Linda,
ohne Rudis Leistungen zu schmälern, aber es liegt auch einen Großteil daran, das die aktuelle Online-Vba-Hilfe dazu sehr dürftig ausfällt und viel leere Fläche enthält statt zusätzlicher Informationen.
In der Hilfe zu Excel 2003-Vba stand noch dies:

Returns the complete path to the application, excluding the final separator and name of the application. Read-only String.
also ohne den abschließenden '\'-Pfad-Seperator.
Sowas findet man heute leider nicht mehr. Wahrscheinlich haben auch die Maschinenprogramme, die diese Hilfe zusammenschustern keine Lust mehr.
Gruß von Luschi
aus klein-Paris
Anzeige
;
Anzeige

Infobox / Tutorial

CurrentProject.Path in VBA richtig nutzen


Schritt-für-Schritt-Anleitung

Um CurrentProject.Path in VBA erfolgreich zu nutzen, befolge die folgenden Schritte:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).

  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Füge den folgenden Code ein:

    Sub Export()
       ' Überprüfen, ob es Mitarbeiter 1 ist
       If Sheets("Übersicht Rapporte").Range("C5").Value = 1 Then
           ' Ja? Dann werden folgende Zeilen kopiert
           Sheets("Übersicht Rapporte").Rows("15:4055").Copy
           ' Mappe: Schlosser_Datenbank öffnen
           Workbooks.Open Filename:= _
           (ThisWorkbook.Path & "\Schlosser_Datenbank.xlsx"), Password:="schlosser"
           ' Werte einfügen (ohne Formel - nur Werte)
           With ActiveWorkbook
               .Sheets("Alle Rapporte").Range("A15").PasteSpecial xlPasteValues
               ' Arbeitsmappe speichern und schließen
               .Close True
           End With
       End If
    End Sub
  4. Führe das Makro aus, um sicherzustellen, dass es funktioniert.


Häufige Fehler und Lösungen

  • Fehler: "CurrentProject.Path funktioniert nicht"

    • Lösung: Verwende ThisWorkbook.Path anstelle von CurrentProject.Path. ThisWorkbook bezieht sich auf die Arbeitsmappe, in der das Makro gespeichert ist.
  • Fehler: Arbeitsmappe öffnet nicht

    • Lösung: Überprüfe den Dateipfad. Stelle sicher, dass der Pfad korrekt ist und die Datei existiert.

Alternative Methoden

Wenn du CurrentProject.Path oder ThisWorkbook.Path nicht verwenden möchtest, kannst du folgende Methoden verwenden:

  • Direkte Pfad-Angabe: Gib den vollständigen Pfad in der Workbooks.Open-Methode an. Dies kann jedoch unpraktisch sein, wenn sich die Dateien an verschiedenen Orten befinden.

  • Nutze die Application-Objekte: Du kannst Application.ThisWorkbook.Path verwenden, um den Pfad zur aktuellen Arbeitsmappe zu erhalten.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den aktuellen Pfad verwenden kannst:

  1. Öffnen einer Datei mit ThisWorkbook.Path:

    Workbooks.Open Filename:= ThisWorkbook.Path & "\Beispiel.xlsx"
  2. Kopieren von Daten in eine andere Arbeitsmappe:

    Sub KopiereDaten()
       Dim ZielMappe As Workbook
       Set ZielMappe = Workbooks.Open(ThisWorkbook.Path & "\Ziel.xlsx")
       ThisWorkbook.Sheets("Daten").Range("A1:B10").Copy Destination:=ZielMappe.Sheets("Daten").Range("A1")
       ZielMappe.Close SaveChanges:=True
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich, alle Variablen zu deklarieren, was die Fehlersuche erleichtert.

  • Fehlerbehandlung: Implementiere On Error-Anweisungen, um unerwartete Fehler abzufangen.

  • Dokumentiere deinen Code: Füge Kommentare hinzu, damit andere (oder du selbst in der Zukunft) den Code besser verstehen.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen CurrentProject.Path und ThisWorkbook.Path?
CurrentProject.Path bezieht sich auf den Pfad eines Access-Projekts, während ThisWorkbook.Path den Pfad der aktuellen Excel-Arbeitsmappe angibt.

2. Warum funktioniert mein VBA-Code nicht, wenn ich CurrentProject.Path verwende?
In Excel gibt es kein CurrentProject-Objekt. Du solltest stattdessen ThisWorkbook.Path verwenden, um den aktuellen Pfad der Arbeitsmappe abzurufen.

3. Kann ich Application.CurrentProject.Path in Excel verwenden?
Nein, Application.CurrentProject.Path ist spezifisch für Access und funktioniert nicht in Excel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige