Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Variabler Dateipfad in Verwendung von Formeln
#11
Hallo MicHan

ich freu mich sehr das dir meine Arbeit gefallt, und vor allem das du den VBA Code sofort verstanden hast!!  Super!!
Hier noch eine Aendrung für den User aus Blatt "SDMA" automatisch einzufügen. Würde mich freuen wenn es so klappt ...

mfg  Gast 123


Code:
Sub Formel_perVBA_setzen()
Dim AC As Range, xlTxt As String
Dim Jahr  As Integer, lz1 As Long
Dim Monat As Variant, i As Integer
Dim Pfad1 As String, Pfad2 As String
Dim Pfad3 As String, Pfad4 As String
Dim Pfad5 As String, Formel As String
Dim FName As String, VName As String
Dim Stg As Worksheet, User As String
Dim SDM As Worksheet 'für User Variable

Set Stg = Worksheets("Settings")
Set SDM = Worksheets("SDMA")

With Worksheets("Stunden_Stats")
  lz1 = .Range("A300").End(xlUp).Row
  .Range("D4:D200").ClearContents
 
  Pfad1 = Stg.Range("B4").Value
  Pfad2 = Stg.Range("B5").Value
  Pfad3 = Stg.Range("B6").Value
  Pfad4 = Stg.Range("B7").Value
  Pfad5 = Stg.Range("B8").Value
 
  Jahr = Stg.Range("B2").Value
  Monat = Month(Stg.Range("B1")) & " "
  If Len(Monat) = 2 Then Monat = "0" & Monat
  xlTxt = ".xlsx]Vorlage'!$A$1:$P$45"

'Laufwerk:\Projekt\Ordner1\*user1*\01 Stundenzettel\2019\[Stundenzettel 2019-01 Mustermann, Lutz.xlsx]Vorlage'!$A$1:$P$45
  On Error Resume Next
  For Each AC In .Range("A4:A" & lz1)
  If AC.Value <> Empty Then
     i = i + 1
     Formel = Empty  'Text löschen
     VName = AC.Cells(1, 2).Value
     FName = AC.Cells(1, 3).Value & ", "
     User = SDM.Cells(i + 1, "J").Value
     Formel = "'=" & Pfad1 & User & Pfad3 & Jahr & "\[Stundenzettel " & Jahr & "-" & Monat & FName & VName & xlTxt
     .Cells(AC.Row, 4).FormulaLocal = Formel
  End If
  Next AC

End With
End Sub
Antworten Top
#12
Hallo Gast 123,
vielen Dank noch einmal. Allerdings bin ich jetzt mit VBA an der gleichen Stelle wie vorher auch.
Ja ich lasse mir den Pfad nun über eine Makro ausgeben, aber die Summe aus A1 - P45 gibt er mir weiterhin nicht aus.

Genau hierfür benötige ich jedoch Hilfe.

Greetz Mictlan
Antworten Top
#13
Hallo M,cHan

Sorry, Summenformel habe ich übersehen. Probier es bitte mal so:
   xlTxt = ".xlsx]Vorlage'!$A$1:$P$45)"    xlTxt mit ")" Zeichen am Ende!
  Formel = "SUMME('" & Pfad1 & User & Pfad3 & Jahr & "\[Stundenzettel " & Jahr & "-" & Monat & FName & VName & xlTxt
  ** das ' Zeichen steht jetzt nach dem  ( Zeichen von Summe!  

mfg  Gast 123
Antworten Top
#14
Hallo Gast 123,

vielen lieben Dank. ich merke gerade das ich mit der VBA einfach nicht klar komme. deine Korrektur hat super geklappt. Ich versuchte jetzt folgendes aus deinem Coda abzuwandeln:

 Monat = Month(Stg.Range("B1")) & " "
  If Len(Monat) = 2 Then Monat = "0" & Monat

Hier soll nicht der Monat der Zelle B1 vom Blatt "Settings" genommen werden, sonder D3 vom Blatt "Stunden_Stats".
Die einfache Umstellung der Zelle funktionierte logischer weiße nicht. Aber bitte, was muss ich dafür tun?

ein einfaches Monat = Month("B1") sollte doch eigentlich gehen. Kannst du mir das erklären?

Greetz Mictlan
Antworten Top
#15
Hallöchen,

wenn Du was aus D3 haben willst, reicht meist schon mal nicht, wenn dort wieder B1 steht … Smile
Wenn Du bei Ausführung auf dem betreffenden Blatt bist, reicht aber ein einfaches
Monat = Month(Range("B1"))

B1 ist übrigens kein Datum, aber der Inhalt der Zelle bzw. des Bereichs B1 vielleicht schon eher.

Damit Du im Code weist, wo DU eigentlich bist oder sein solltest, wäre
Monat = Month(Sheets("Stunden_Stats").Range("B1"))

besser.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#16
Hallo,

(08.07.2019, 10:04)Gast 123 schrieb: Ich wüsste im Augenblick auch nicht nach welchem Thema ich da im Archiv suchen müsste?? Vielleicht erinnert sich ein Kollege??
mfg  Gast 123

vielleicht handelt es dabei um die "alten" Makro4-Formeln?

=TEIL(ZELLE("Dateiname";B2);1;FINDEN("[";ZELLE("Dateiname";B2))-1)
zeigt z.B. den aktuellen Pfad...
VG
von René und seinen 3 Gehirnzellen

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste