Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Excel und dynamischer Sverweis (https://www.delphipraxis.net/28544-excel-und-dynamischer-sverweis.html)

Jens Schumann 26. Aug 2004 07:48


Excel und dynamischer Sverweis
 
Hallo,
hier ein Beispiel für einen Sverweis:
Code:
SVERWEIS($A$3:$A$550;'D:\Daten\[Test.xls]Tabelle2'!$B$14:$D$550;2;FALSCH)
Wie kann ich es erreichen, dass der Dateiname Test.xls aus einer Zelle gelesen wird
und nicht wie im Beispiel hart vorgegeben ist?

Igotcha 26. Aug 2004 09:31

Re: Excel und dynamischer Sverweis
 
Meiner Meinung nach gar nicht. Ich saß mal vor einem ähnlichen Problem, wo ich für verschiedene Anwender absolute Pfade brauchte (je nach Kostenstelle). Ich habe eine Routine in das Sheet eingebaut, die beim ersten Start die Verknüpfungen innerhalb der Arbeitsmappe korigiert.

Das sah dann bei mir so aus:

Code:
Sub Calc_References()
' Berechnet die Verknüpfungen, abhängig vom Speicherort
Dim strKstName, strTmpIst As String
Dim ix, iStart, iEnd As Integer

strKstName = ThisWorkbook.Name
strKstName = Mid(strKstName, 5, 4)

' Kostenstellennummer setzen
Sheets("Prognose").Range("D6").Value = strKstName

' Ist-Daten-Verknüpfung berechnen
iStart = 0
iEnde = 0
strTempIst = Sheets("Ist").Range("E11").Formula
For ix = 1 To Len(strTempIst)
    If Mid(strTempIst, ix, 1) = "," Then
        If iStart = 0 Then
            iStart = ix
        End If
    End If
    If Mid(strTempIst, ix, 1) = "!" Then
        If iEnde = 0 Then
            iEnde = ix
        End If
    End If

Next ix
strTempIst = Mid(strTempIst, iStart + 1, iEnde - iStart - 1)
Sheets("Ist").Select
Application.Calculation = xlCalculationManual

  Cells.Replace What:=strTempIst, _
        Replacement:="'" + Sheets("SYSTEM").Range("B4").Value + "[IST-WERTE.xls]PAGID " + strKstName + "'", LookAt:= _
        xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Application.Calculation = xlCalculationAutomatic
Sheets("SYSTEM").Range("B1").Value = 1
End Sub
Wichtig sind die letzten Zeilen und der Calculation-Mode, damit Dich das Sheet nicht mit Verknüpfungsmeldungen zumüllt.

Gruß Igotcha

Jens Schumann 26. Aug 2004 11:28

Re: Excel und dynamischer Sverweis
 
Danke,
auch keine schlechte Lösung


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz