Zellbezug aus Datei | Wert aus Zelle an Dateinam
#11
Zitat:Oder ich verstehe es nicht.

Genau das habe ich mir gedacht.

Drücke Strg+f, Suchen nach: Alter_Mappenname.xlsm, Ersetzen durch: Neuer_Mappenname.xlsm
Suchen in 'Formeln' - wahlweise nur im 'Blatt' oder in der 'Arbeitsmappe' - Alle ersetzen - fertig.
Dauert genau 3 Sekunden.
Antworten Top
#12
Hallo Marko,

dieses Makro erzeugt die entsprechenden Bezüge:

Code:
Sub ErzeugeDateibezuege()
  Dim varBezuege() As Variant
  Dim varDateinamen As Variant
  Dim i As Long
  varDateinamen = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).Value
  ReDim varBezuege(1 To UBound(varDateinamen), 1 To 1)
  For i = 1 To UBound(varDateinamen)
    If Len(varDateinamen(i, 1)) Then
      varBezuege(i, 1) = "='G:\XXX\YYY\ZZZ\[" & varDateinamen(i, 1) & ".xlsm]Tabelle1'!B2"
    End If
  Next i
  Range("D2").Resize(UBound(varBezuege), 1).Formula = varBezuege
End Sub

Gruß, Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Marko120586
Antworten Top
#13
Hi Uwe,


Zitat:dieses Makro erzeugt die entsprechenden Bezüge:

Dein Ernst gemeinter Tipp ggü. Suchen-Ersetzen? Ist doch offensichtlich, dass der TE nicht weiß, wie (schnell und einfach) das geht....
Antworten Top
#14
Hi Boris,

leider verstehe ich Deinen Vorschlag auch nicht wirklich. Huh

Gruß, Uwe
Antworten Top
#15
Hi Uwe,


Zitat:leider verstehe ich Deinen Vorschlag auch nicht wirklich.

Das wundert mich jetzt gerade ehrlich gesagt etwas Wink
Man kann mit Suchen-Ersetzen auf einen Knopfdruck auch Textteile aus einer Formel ersetzen. Ist eine von mir ständig angewandte Methode.
Also in diesem Fall einfach den alten Mappennamen durch den neuen Mappennamen ersetzen - und das für alle Formeln gleichzeitig. Geht rasend schnell, ist super einfach, benötigt kein VBA und dauert keine 3 Sekunden Wink
Antworten Top
#16
Moin,

Alternativ kannst du die Formel als Text zusammensetzen, mit Strg + C kopieren und anschließend als Wert einfügen und dann mit F2 in die Bearbeitung und mit Enter abschließen. 

Viele Grüße 
derHoepp
Antworten Top
#17
Eigentlich sollte sich dies auch mit Power Query recht einfach realisieren lassen.
Antworten Top
#18
Ich habe jetzt mal testweise mit Power Query aus einem Verzeichnis mit 53 Mappen, die im Schnitt 600KB groß sind und jeweils 31 Tabellenblätter haben, von einem Tabellenblatt einige Werte einer Zeile ausgelesen. Dauert bei mir ca. 3 Sekunden. Sollte sich somit auch bei 300 Mappen noch in einem überschaubaren Zeitrahmen bewegen.
Antworten Top
#19
Hallo Boris,

Suchen und Ersetzen geht nicht. Wie soll ich in 3 Sekunden eine Suchergebniss durch 300 verschiedene Dateinamen ersetzen?
 LG

Zitat:Code:
Code:
Sub ErzeugeDateibezuege()
  Dim varBezuege() As Variant
  Dim varDateinamen As Variant
  Dim i As Long
  varDateinamen = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).Value
  ReDim varBezuege(1 To UBound(varDateinamen), 1 To 1)
  For i = 1 To UBound(varDateinamen)
    If Len(varDateinamen(i, 1)) Then
      varBezuege(i, 1) = "='G:\XXX\YYY\ZZZ\[" & varDateinamen(i, 1) & ".xlsm]Tabelle1'!B2"
    End If
  Next i
  Range("D2").Resize(UBound(varBezuege), 1).Formula = varBezuege
End Sub
 
Das war die Lösung die ich gesucht habe. DANKE DANKE DANKE.
Danka natürlich auch an die anderen Beiträge und Teilnahme. 

LG MArko
Antworten Top
#20
Möchte mich eben entschuldigen - hab es doch überlesen, dass es 300 verschiedene Quelldateien sind.
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • derHoepp
Antworten Top


Gehe zu:


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