Office: VBA Sverweis Phänomen

Helfe beim Thema VBA Sverweis Phänomen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo! Ich habe ein Phänomen, welches mir gar nicht logisch in den Kopf will... via folgendem VBA Code setze ich einen SVERWEIS in ein sich ständig... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von andysmith, 9. Juni 2010.

  1. andysmith Erfahrener User

    VBA Sverweis Phänomen


    Hallo!

    Ich habe ein Phänomen, welches mir gar nicht logisch in den Kopf will...
    via folgendem VBA Code setze ich einen SVERWEIS in ein sich ständig ans Datum angepassende andere excel Sheet. Das mir unverständliche ist der Umstand, das wenn die Formel in die Zelle einegsetzt wird "#NAME?" erscheint. Wenn ich aber die syntaktische eigentlich korrekte Formel in der Zelle mit "F2" editiere und gleich wieder speichere ohne etwas zu verändern dann funktioniert der Sverweis. Wesentlich an der Sache ist, das in der Zelle am ende auch eine Formel stehen, also nicht nur der Sverweis einmalig eingetragen werden soll.

    Code:
    Option Explicit
    Sub Zelle_auslesen()
       Dim LUVsheetName As String, Wert1 As Date, Counter As Integer, Path1 As String, Datei1 As String, strvar(10) As Long, dashier As Workbook, LUV As Workbook
       Dim letzteZeile As Long, Zeile As Long, test, Zellbezug As String
       Set dashier = ThisWorkbook
       
       Wert1 = Date: Counter = 0: Path1 = "i:\Patenlisten_2do\H141\LUV\": Datei1 = "Paten_LUV_mit_Kommentar_original Arbeitsdatei für  Patengespräch.xls"
        LUVsheetName = "Lfde LUV-Aufträge_" & Format(Wert1, "dd.mm.yyyy")
       While GetDataClosedWB(Path1, Datei1, LUVsheetName) = False
       Counter = Counter - 1: Wert1 = Date + Counter
       LUVsheetName = "Lfde LUV-Aufträge_" & Format(Wert1, "dd.mm.yyyy")
       Wend
       With dashier.Sheets(1)
       If .Range("A1") <> LUVsheetName Then
       .Range("A1") = LUVsheetName
       End If
       End With
    strvar(3) = Application.Match("P-Geh", Rows(4), 0): strvar(2) = Application.Match("Pos", Rows(4), 0): strvar(1) = Application.Match("Belnr", Rows(4), 0)
       strvar(4) = Application.Match("Einteilungsdatum", Rows(4), 0): strvar(5) = Application.Match("Mo1", Rows(4), 0)
       letzteZeile = dashier.Sheets(1).Range("A65336:F65336").End(xlUp).Row
       For Zeile = 5 To letzteZeile
       If dashier.Sheets(1).Cells(Zeile, strvar(1)) <> "" And dashier.Sheets(1).Cells(Zeile, strvar(2)) <> "" And dashier.Sheets(1).Cells(Zeile, strvar(3)) <> "" Then
       
    'sverweis Einteilungsdatum,Mo1
       dashier.Sheets(1).Cells(Zeile, strvar(4)).Select
       ActiveCell.FormulaR1C1 = _
       "=IF(ISNA(VLOOKUP(RC1,'" & Path1 & "[" & Datei1 & "]" & LUVsheetName & "'!A:AE,25,0)),"""",VLOOKUP(RC1,'" & Path1 & "[" & Datei1 & "]" & LUVsheetName & "'!A:AE,25,0))"
       
       'dashier.Sheets(1).Cells(Zeile, strvar(4)).Formula = "=IF(ISNA(VLOOKUP(" & Range("A" & strvar(4)).Address & ",'" & Path1 & "[" & Datei1 & "]" & LUVsheetName & "'!$A:$AE,25,0)),"""",VLOOKUP(" & Range("A" & strvar(4)).Address & ",'" & Path1 & "[" & Datei1 & "]" & LUVsheetName & "'!$A:$AE,25,0)"
       Application.ScreenUpdating = False
    Application.AskToUpdateLinks = False
    Application.ScreenUpdating = True
       End If
       If dashier.Sheets(1).Cells(Zeile, 1) = "" Then
       dashier.Sheets(1).Cells(Zeile, 1).Select
       ActiveCell.FormulaR1C1 = "=RC[1]&RC[2]"
       
       End If
       Next Zeile
          
    End Sub
    Private Function GetDataClosedWB(SourcePath As String, SourceFile As String, sourceSheet As String) As Boolean
    Dim Zellbezug As String, Ergebnis As Variant, Adresse As String
       Zellbezug = Cells(1, 2).Address(ReferenceStyle:=xlR1C1)
       Adresse = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Zellbezug
       On Error GoTo ERROR_HANDLING
       Ergebnis = ExecuteExcel4Macro(Adresse)
    If Ergebnis = "Fehler 2023" Then
    GetDataClosedWB = False
    Else
    GetDataClosedWB = True
    End If
    GoTo ende
    ERROR_HANDLING:
    If Err.Number = 13 Then 'das war die originale Fehlernummer
    Resume Next
    End If
    MsgBox Err.Description + vbNewLine + vbNewLine + _
    Str$(Err.Number)
    Resume Next
    ende:
    End Function
    Private Function KW(d As Variant) As String
        Dim t As Date
    Application.Volatile
    If IsDate(d) Then
        t = DateSerial(Year(d - Weekday(d, 2) + 4), 1, 4)
        KW = "KW" & Format((d - t + Weekday(t, 2) - 1) \ 7 + 1, "00") & "/" & Year(d)
        End If
    End Function
    
    Die KW Funktion wird aus der jeweiligen Zelle aufgerufen hat also nur indirekt mit dem Makro etwas zu tun (ausser dem Bestandteil Volatile)

    Vielen Dank für die Hilfe
     
    andysmith, 9. Juni 2010
    #1
  2. schatzi Super-Moderator
    Hallo!

    Mag das vielleicht daran liegen, dass du in deiner Formel sowohl mit A1-Bezügen wie auch mit R1C1-Bezügen arbeitest?
     
    schatzi, 9. Juni 2010
    #2
  3. Beverly
    Beverly Erfahrener User
    Hi Andy,

    vielleicht hilft, wenn du ans Ende deines Codes die Zeile
    Code:
    Application.Calculate 
    schreibst.

    Bis später,
    Karin
     
    Beverly, 9. Juni 2010
    #3
  4. Exl121150 Erfahrener User

    VBA Sverweis Phänomen

    Hallo,

    Die Fehlermeldung #NAME? in einer Arbeitsblattzelle hat in der Regel damit zu tun, dass ein in der Zelle enthaltener Funktionsname nicht gefunden wird. Und das hängt wieder damit zusammen, dass Du die KW-Funktion Private deklariert hast: damit ist aber dieser Name außerhalb des deklarierenden Moduls unbekannt (er kann nur innerhalb des Moduls verwendet werden). Bei Verwendung der Funktion im Arbeitsblatt muss sie stets Public deklariert sein.
    (Außerdem - nur der Vollständigkeit halber - muss eine solche Arbeitsblatt-Funktion in einem allgem. Codemodul deklariert werden).
     
    Exl121150, 9. Juni 2010
    #4
  5. andysmith Erfahrener User
    @schatzi: werde ich noch testen ich wäre aber verwirrt wenn das so wäre

    @Beverly: hat nichts gebracht

    @Exl121150: hat nichts gebracht, ich war bisher immer der Annahme, das sich PRIVATE auf dieses Workbook bezieht und Public übergreifend auf alle geöffneten.

    Trotzdem Danke!
     
    andysmith, 10. Juni 2010
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi Andy,

    an welche Stelle genau hast du Application.Calculate geschrieben? Es sollte in die Prozedur Sub Zelle_auslesen vor die Zeile End Sub.

    Bis später,
    Karin
     
    Beverly, 10. Juni 2010
    #6
  7. andysmith Erfahrener User
    ja

    Code:
     ...
    
      End If
       Next Zeile
    
    Application.Calculate
    End Sub
     
    andysmith, 11. Juni 2010
    #7
Thema:

VBA Sverweis Phänomen

Die Seite wird geladen...
  1. VBA Sverweis Phänomen - Similar Threads - VBA Sverweis Phänomen

  2. VBA SVerweis? / VBA neues Worksheet erstellen

    in Microsoft Excel Hilfe
    VBA SVerweis? / VBA neues Worksheet erstellen: Moin liebe Forengemeinde, ich bastel gerade an einem Kalender für mich und meine Freundin. Leider habe ich hierbei einige Probleme und hoffe Ihr könnt mir hierbei helfen. Beispiel-Datei hängt mit...
  3. Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen

    in Microsoft Access Hilfe
    Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen: Hallo zusammen, ich stehe gerade vor dem Problem, dass ich die Datensätze zwischen zwei Tabellen nicht verknüpfen kann. Konkret habe ich die beiden Tabellen tblEigenschaft und tblBasis. In der...
  4. Excel VBA Userform Daten aus Tabelle Auslesen "sverweis"

    in Microsoft Excel Hilfe
    Excel VBA Userform Daten aus Tabelle Auslesen "sverweis": Hallo zusammen, ich lerne umständlich ein wenig VBA. Ich benötige mal einen Code von einem Profi, der mir Anregungen gibt zum Üben und Probieren. Eine Tabelle hat in Spalte A eindeutige numerische...
  5. Copy and Paste unter bestimmten Bedingungen VBA

    in Microsoft Excel Hilfe
    Copy and Paste unter bestimmten Bedingungen VBA: Hallo, ich bin recht neu und habe ein kleines Problemchen, bei welchem ich keinerlei Lösungsansatz habe. Ich vermute, dies kann in irgendeiner Art und Weise ggf. über eine Art Sverweis im Makro...
  6. Kundennummer in Sverweis Zelle fortlaufend einfügen und drucken (VBA)

    in Microsoft Excel Hilfe
    Kundennummer in Sverweis Zelle fortlaufend einfügen und drucken (VBA): Hallo und danke schon mal, ich benötige eure Hilfe. Ich habe eine Excel Liste mit der ich Kunden anlege. Mithilfe einer zugeordneten Kundennummer wird mit einem Sverweis ein Dokument ausgefüllt,...
  7. [VBA] Makro SVERWEIS auf andere Arbeitsmappe

    in Microsoft Excel Hilfe
    [VBA] Makro SVERWEIS auf andere Arbeitsmappe: Moin, ich benutze seid ewigkeiten für eine SVERWEIS Funktion dieses Makro. Code: Sub SVERWEIS_FORMULA() Dim strSrcAddress As String With Tabelle3.Range("A1").CurrentRegion .Sort .Cells(1),...
  8. VBA + SVERWEIS kombinieren?

    in Microsoft Excel Hilfe
    VBA + SVERWEIS kombinieren?: Hallo zusammen, ich bin die Neue hier :) Ich bin momentan dabei ein Helferlein zu erstellen für eine Tourenplanung von Montageterminen. Meine kleine Hürde, vor der ich gerade stehe ist...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden