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.

Eintragen eines Pfads in eine Zelle
#11
Hallo Arnold,

ersetze
path = "='\\MeinServer\MeinPfad\" & iYear & "\[MeineDatei_KW_" & iKW & ".xlsx]"
mit
path = "\\MeinServer\MeinPfad\" & iYear & "\MeineDatei_KW_" & iKW & ".xlsx"
und schon sollte es laufen.

Gruß Uwe
Antworten Top
#12
Moin Uwe,

fast, meine ich.  Da hab ich doch glatt was nicht bedacht Sad
Aus meiner Sicht beginnt das Rätselraten und es ist die Frage, was der Eintrag bezwecken soll.

Wenn es einfach nur ein Pfadeintrag wird, passt Dein Vorschlag.

Wenn es aber später mal eine Formel werden soll, dann kommt vielleicht noch Tabelle1'!A1 oder was entsprechendes dazu Smile Vielleicht steht das sogar irgendwo in einer Zelle und es fehlt am Ende nur & Range("A1").Value

path = "='\\MeinServer\MeinPfad\" & iYear & "\[MeineDatei_KW_" & iKW & ".xlsx]"

sollte man dann aber gleich dazu schreiben … Nichts genaues weiß man nicht Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
Hallo André,

(03.02.2019, 08:35)schauan schrieb: path = "='\\MeinServer\MeinPfad\" & iYear & "\[MeineDatei_KW_" & iKW & ".xlsx]"

sollte man dann aber gleich dazu schreiben … Nichts genaues weiß man nicht Sad

nicht sollte, sondern muss, da es sonst eben zum Fehler kommt.
Ich habe das übrigens tatsächlich nachgebaut und getestet.  Blush
Dabei habe ich festgestellt, dass folgender Code das Gleiche macht:
Public Sub initpaths()
Dim rowcounter As Integer           'Zeilenummer
Dim colcounter As Integer           'Spaltennummer
Dim Lettercount As Integer
Dim path As String                  'Quellpfad
Dim iKW As String                   'KW als Zeichen
Dim iYear As Integer                'Jahr als Zahl
iKW = Tabelle25.Cells(14, 4)        '14 Zeile (Rowindex) und 4 Spalte (Colindex)
iYear = Format(Tabelle25.Cells(14, 8), "YYYY")
path = "\\MeinServer\MeinPfad\" & iYear & "\MeineDatei_KW_" & iKW & ".xlsx"
Tabelle35.Range("$BX$6,$AR$6:$AR$19,$AT$6:$AT$19,$AZ$6:$AZ$19,$BF$6:$BF$19,$BL$6:$BL$19,$BR$6:$BR$19").Value = path
End Sub
Gruß Uwe
Antworten Top
#14
Hallo,

Aus den Angaben der Tabelle25 (KW) bildet sich der Verweis zur der Datei Morgenblatt-D........(KW), der dann in die Zellen in Tabelle35 AR6-AR20,AT6-AT20 usw. eingetragen wird um die Daten dort in die Zellen zu schreiben.
Des weiteren soll er dann noch in die Zellen AR86-AR100,AT86-100 usw. die Werte der folge KW eintragen.
 
Ich weis es liegt an mir, hätte gleich einiges Besser machen können :)

Gruss Arni49
Antworten Top
#15
Hallo Arnold,

(04.02.2019, 07:50)Arni49 schrieb: Ich weis es liegt an mir, hätte gleich einiges Besser machen können :)

auf jeden Fall ist geklärt, dass Dein "Pfad" eben unvollständig ist und Excel deshalb meckert.
Ich schrieb Pfad in Anführungszeichen, weil das ja eigentlich ein Zellbezug, wie auch André ja anmerkte, werden soll. Nur fehlt da eben einiges.

Gruß Uwe
Antworten Top
#16
Hallo,

Ich bekomme es nicht auf die Reihe :( habe alles probiert wie beschrieben.
habe die Tabelle und das Modul  mal angehangen, in der Hoffnung das mir einer von euch helfen kann.

Zur Erklärung was geschehen soll:

die gelb gekennzeichneten Zellen sollen mit Daten aus einer Morgenblatt Datei, die anhand der KW bestimmt wird ( es gibt davon 52 Dateien zum eintragen)  gespeist werden.
Der erste Bereich von KW5 ab AR6 und der untere Bereich ab AR86 mit Daten aus KW6.

Wird  noch etwas benötigt ?
PHP-Code:
Attribute VB_Name "mdl_Update_paths"
Public Function initpaths()

Dim rowcounter As Integer           'Zeilenummer
Dim colcounter As Integer           '
Spaltennummer
Dim Lettercount 
As Integer
Dim path 
As String                  'Quellpfad
Dim fpath As String
Dim iKW As String                   '
KW als Zeichen
Dim iYear 
As Integer                'Jahr als Zahl
Dim Field As String                 '
Feld als Zeichen
Dim FLetter 
As String               'Feldbuchstabe als Zeichen
Dim FNumber As Integer              '
Feldnummer als Zahl

Tabelle25
.Select

iKW 
Tabelle25.Cells(144       '14 Zeile (Rowindex) und 4 Spalte (Colindex)
iYear = Format(Tabelle25.Cells(14, 8), "YYYY")

path = "='
\\MeinServer\MeinPfad\" & iYear & "\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]"  'Pfad für das Morgenblatt Dokument

Counter = 0
rowcounter = 6          'Reihe 6
colcounter = 44         'Spalte AR6
Lettercount = 9         'Buchstabe "
J" für J9x
FNumber = 91  '330 'War Ursprünglich in der Morgenrunde vorhanden, Jetzt Montag J9X in Morgenrunde.

Do
FLetter = Chr(Asc("
A") + Lettercount)       'ASCII Buchstabe A + 9 = J
Field = FLetter & FNumber                   'J91
fpath = path

Tabelle35.Cells(rowcounter, colcounter).Value = fpath    'Zurückgeben oder festlegen ein Variant -Werts, das den Wert des angegebenen Bereichs darstellt

rowcounter = rowcounter + 1               'Schleife Reihe 6+1 = 7
FNumber = FNumber + 1                     '91+1 =92

If rowcounter = 20 Then                   'Reihe 20 erreicht zurück auf Reihe 6
rowcounter = 6
FNumber = 91
Lettercount = Lettercount + 1

If colcounter = 44 Then
colcounter = colcounter + 2
Else
colcounter = colcounter + 6
End If
End If

Loop While colcounter <= 70

Tabelle35.Cells(rowcounter, colcounter).Value = fpath
'MsgBox Tabelle35.Cells(rowcounter, colcounter).Value & vbNewLine & path & vbNewLine & "
KW" & iKW & "  Jahr" & iYear

End Function 



Gruß Arnold


Angehängte Dateien
.xlsx   Excelforum.xlsx (Größe: 89,5 KB / Downloads: 2)
Antworten Top
#17
Hallöchen,

ich wiederhole mich gerne:

Zitat:Wenn es aber später mal eine Formel werden soll, dann kommt vielleicht noch Tabelle1'!A1 oder was entsprechendes dazu



korrekt wäre
nicht
path = "='\\MeinServer\MeinPfad\" & iYear & "\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]"

sondern
path = "='\\MeinServer\MeinPfad\" & iYear & "\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]Tabelle1'!A1"


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

habe ich probiert ! dann bleibt er aber mit Laufzeitfehler 1004 hier stehen
Tabelle35.Cells(rowcounter, colcounter).Value = fpath    

Gruß
Antworten Top
#19
Hallöchen,

Du kannst gerne es mal anders probieren.
- Öffne mit dem Windows-Explorer den UNC-Pfad
- Öffne die Quelldatei.
- Gib in der Zieldatei eine einfache Formel ein,
beginne dazu mit =
Wechsle in die Datenquelle auf das Blatt und die Zelle, die Du holen willst
bestätige die Formeleingabe mit ENTER
- Schließe die Datenquelle

Jetzt hast Du eine komplette Formel und kannst bei der Ausführung vom Makro schauen, ob in fpath das gleiche steht. Dazu kannst Du einen Haltepunkt setzen und den Variableninhalt prüfen oder Du gibst nach der Zeile mit fpath = … eine Zeile mit msgbox fpath aus oder DU wartest einfach das Auftreten des Fehlers ab, schaust Dir den Variableninhalt an und vergleichst ihn mit der gerade erstellten Formel.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#20
Hallo,

hier nochmal der erste Post vom 5.02.2019, die Formel habe ich bereits umgestellt, siehe weiter unten. 
Zitat:Geschrieben von Arni49 - 05.02.2019, 17:14
Hallo,

Ich bekomme es nicht auf die Reihe :( habe alles probiert wie beschrieben.
habe die Tabelle und das Modul  mal angehangen, in der Hoffnung das mir einer von euch helfen kann.

Zur Erklärung was geschehen soll:

die gelb gekennzeichneten Zellen sollen mit Daten aus einer Morgenblatt Datei, die anhand der KW bestimmt wird ( es gibt davon 52 Dateien zum eintragen)  gespeist werden.
Der erste Bereich von KW5 ab AR6 und der untere Bereich ab AR86 mit Daten aus KW6.

Wird  noch etwas benötigt ?
PHP-Code:

Code:
Attribute VB_Name = "mdl_Update_paths"
Public Function initpaths()

Dim rowcounter As Integer           'Zeilenummer
Dim colcounter As Integer           'Spaltennummer
Dim Lettercount As Integer
Dim path As String                  'Quellpfad
Dim fpath As String
Dim iKW As String                   'KW als Zeichen
Dim iYear As Integer                'Jahr als Zahl
Dim Field As String                 'Feld als Zeichen
Dim FLetter As String               'Feldbuchstabe als Zeichen
Dim FNumber As Integer              'Feldnummer als Zahl

Tabelle25.Select

iKW = Tabelle25.Cells(14, 4)        '14 Zeile (Rowindex) und 4 Spalte (Colindex)
iYear = Format(Tabelle25.Cells(14, 8), "YYYY")

path = "='\\MeinServer\MeinPfad\" & iYear & "\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]"  'Pfad für das Morgenblatt Dokument

Counter = 0
rowcounter = 6          'Reihe 6
colcounter = 44         'Spalte AR6
Lettercount = 9         'Buchstabe "J" für J9x
FNumber = 91  '330 'War Ursprünglich in der Morgenrunde vorhanden, Jetzt Montag J9X in Morgenrunde.

Do
FLetter = Chr(Asc("A") + Lettercount)       'ASCII Buchstabe A + 9 = J
Field = FLetter & FNumber                   'J91
fpath = path

Tabelle35.Cells(rowcounter, colcounter).Value = fpath    'Zurückgeben oder festlegen ein Variant -Werts, das den Wert des angegebenen Bereichs darstellt

rowcounter = rowcounter + 1               'Schleife Reihe 6+1 = 7
FNumber = FNumber + 1                     '91+1 =92

If rowcounter = 20 Then                   'Reihe 20 erreicht zurück auf Reihe 6
rowcounter = 6
FNumber = 91
Lettercount = Lettercount + 1

If colcounter = 44 Then
colcounter = colcounter + 2
Else
colcounter = colcounter + 6
End If
End If

Loop While colcounter <= 70

Tabelle35.Cells(rowcounter, colcounter).Value = fpath
'MsgBox Tabelle35.Cells(rowcounter, colcounter).Value & vbNewLine & path & vbNewLine & "KW: " & iKW & "  Jahr: " & iYear

End Function 
[size=undefined]



Gruß Arnold [/size]



da niemand weiter darauf eingegangen ist habe ich mit meinen Mäßigen Kenntnissen folgendes zusammen bekommen
Zitat:Public Sub initpaths()
Dim rowcounter As Integer           'Zeilenummer
Dim colcounter As Integer           'Spaltennummer
Dim Lettercount As Integer
Dim path As String                  'Quellpfad
Dim pathDienstag As String
Dim pathMittwoch As String
Dim pathDonnerstag As String
Dim pathFreitag As String
Dim fpath As String
Dim iKW As String                   'KW als Zeichen
Dim iYear As Integer                'Jahr als Zahl
Dim Field As String                 'Feld als Zeichen
Dim FLetter As String               'Feldbuchstabe als Zeichen
Dim FNumber As Integer              'Feldnummer als Zahl
Dim Counter As Integer
Tabelle25.Select
iKW = Tabelle25.Cells(14, 4)        '14 Zeile (Rowindex) und 4 Spalte (Colindex)
iYear = Format(Tabelle25.Cells(14, 8), "YYYY")
Lettercount = 9
FLetter = Chr(Asc("A") + Lettercount)
Field = 91
path = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Montag'!" & FLetter & Field 'Pfad f?r das Morgenblatt Dokument
pathDienstag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Dienstag'!" & FLetter & Field
pathMittwoch = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Mittwoch'!" & FLetter & Field
pathDonnerstag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Donnertag'!" & FLetter & Field
pathFreitag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Freitag'!" & FLetter & Field
Tabelle35.Select
Counter = 0
rowcounter = 6          'Reihe 6
colcounter = 44         'Spalte AR6
Lettercount = 9         'Buchstabe "J" f?r J9x
FNumber = 91  '330 'War Urspr?nglich in der Morgenrunde vorhanden, Jetzt Montag J9X in Morgenrunde.
Do
Letter = Chr(Asc("A") + Lettercount)       'ASCII Buchstabe A + 9 = J
FNumber = FNumber + 1                        '91+1 =92
Field = FLetter & FNumber                   'J91
fpath = path
Tabelle35.Cells(rowcounter, colcounter).Value = fpath
rowcounter = rowcounter + 1               'Schleife Reihe 6+1 = 7
path = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Montag'!" & Field
If rowcounter = 20 Then 'Reihe 20 erreicht zur?ck auf Reihe 6
End If
Counter = Counter + 1
Loop Until Counter = 15
'Montag
colcounter = colcounter + 2
rowcounter = 6
FLetter = "AR"
FNumber = 91
Lettercount = Lettercount + 1
Field = FLetter & FNumber
Do
pathMontag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Montag'!" & Field
fpath = pathMontag
'Lettercount = Lettercount + 1
Tabelle35.Cells(rowcounter, colcounter).Value = fpath
rowcounter = rowcounter + 1 'Schleife Reihe 6+1 = 7
FNumber = FNumber + 1
Field = FLetter & FNumber                      '91+1 =92
pathMontag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Montag'!" & Field
Counter = Counter + 1
Loop Until Counter = 30

'Dienstag
colcounter = colcounter + 6
rowcounter = 6
FLetter = "AR"
FNumber = 91
Lettercount = Lettercount + 1
Field = FLetter & FNumber
Do
pathDienstag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Dienstag'!" & Field
fpath = pathDienstag
'Lettercount = Lettercount + 1
Tabelle35.Cells(rowcounter, colcounter).Value = fpath
rowcounter = rowcounter + 1 'Schleife Reihe 6+1 = 7
FNumber = FNumber + 1
Field = FLetter & FNumber                      '91+1 =92
pathDienstag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Dienstag'!" & Field
Counter = Counter + 1
Loop Until Counter = 45
'Mittwoch
colcounter = colcounter + 6
rowcounter = 6
FLetter = "AR"
FNumber = 91
Lettercount = Lettercount + 1
Field = FLetter & FNumber
Do
pathMittwoch = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Mittwoch'!" & Field
fpath = pathMittwoch
'Lettercount = Lettercount + 1
Tabelle35.Cells(rowcounter, colcounter).Value = fpath
rowcounter = rowcounter + 1 'Schleife Reihe 6+1 = 7
FNumber = FNumber + 1
Field = FLetter & FNumber                      '91+1 =92
pathMittwoch = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Mittwoch'!" & Field
Counter = Counter + 1
Loop Until Counter = 60

'Donnerstag
colcounter = colcounter + 6
rowcounter = 6
FLetter = "AR"
FNumber = 91
Lettercount = Lettercount + 1
Field = FLetter & FNumber
Do
pathDonnerstag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Donnerstag'!" & Field
fpath = pathDonnerstag
'Lettercount = Lettercount + 1
Tabelle35.Cells(rowcounter, colcounter).Value = fpath
rowcounter = rowcounter + 1 'Schleife Reihe 6+1 = 7
FNumber = FNumber + 1
Field = FLetter & FNumber                      '91+1 =92
pathDonnerstag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Donnerstag'!" & Field
Counter = Counter + 1
Loop Until Counter = 75
'Freitag
colcounter = colcounter + 6
rowcounter = 6
FLetter = "AR"
FNumber = 91
Lettercount = Lettercount + 1
Field = FLetter & FNumber
Do
pathFreitag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Freitag'!" & Field
fpath = pathFreitag
'Lettercount = Lettercount + 1
Tabelle35.Cells(rowcounter, colcounter).Value = fpath
rowcounter = rowcounter + 1 'Schleife Reihe 6+1 = 7
FNumber = FNumber + 1
Field = FLetter & FNumber                      '91+1 =92
pathFreitag = "='\\E:\excel4170\Abt 4170\[Morgenrundenblatt-DL382_KW_" & iKW & ".xlsx]" & "Freitag'!" & Field
Counter = Counter + 1
Loop Until Counter = 90

'MsgBox Tabelle35.Cells(rowcounter, colcounter).Value & vbNewLine & path & vbNewLine & "KW: " & iKW & "  Jahr: " & iYear
End Sub

läuft an sich und befüllt die ersten gelben Felder in KW5 wie gewünscht.
Meine Fragen:
kann diese Formel optimiert werden ? wahrscheinlich für Profis eine Blöde Frage :)


Und wie bekomme ich es dann hin in den 2 Tabellenbereich die Daten  der Morgenblatt KW 6 ab AR86  einzutragen.
Hoffe das ihr mir helfen könnt.
Danke 
Gruß Arnold
Antworten Top


Gehe zu:


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