Microsoft Excel

Herbers Excel/VBA-Archiv

sverweise löschen aber...

    Betrifft: sverweise löschen aber... von: Silvi
    Geschrieben am: 02.09.2003 10:16:39

    Moin!
    Habe eine Datei in der ich nur die sverweise löschen möchte,
    Summenformeln sollen (müssen) erhalten bleiben.
    Kann man sowas mit VBA lösen?

    Gruß
    Silvi

      


    Betrifft: AW: sverweise löschen aber... von: sergiesam
    Geschrieben am: 02.09.2003 10:25:40

    HI,

    ich weiß nicht genau, ob ich dich richtig verstanden habe: Diese Funktion löscht alle Formeln, die mit =Sverweis beginnen....

    Sub SVerweisLöschen()
      Dim c As Range, alleFormeln As Range
      
      'Markiere alle Formeln
      On Error Resume Next
        Set alleFormeln = Cells.SpecialCells(xlCellTypeFormulas, 23)
      On Error GoTo 0
      
      If Not alleFormeln Is Nothing Then
        For Each c In alleFormeln
          If UCase(Left(c.Formula, Len("=VLookup"))) = "=VLOOKUP" Then
            'lösche Formel
            c.ClearContents
          End If
        Next c
      End If
        
    End Sub
    


    Gruß,
    sam


      


    Betrifft: AW: sverweise löschen aber... von: Silvi
    Geschrieben am: 02.09.2003 11:07:41

    Hallo Sam!
    War nicht ganz das was ich mir vorgestellt habe, aber trotzdem ganz interessant.
    Ich möchte, daß die Werte in der Datei stehen bleiben, also es sollen nur die Formeln in denen ein sverweis vorkommt in Werte umgewandelt werden. Geht das?

    Gruß
    Silvi


      


    Betrifft: AW: sverweise löschen aber... von: sergiesam
    Geschrieben am: 02.09.2003 11:53:24

    Hallo Silvi,

    sowieso geht das, kein Problem, du brauchst nur das Löschen durch "Werte Einfügen" ersetzen:

    Sub SVerweisLöschen()
      Dim c As Range, alleFormeln As Range
      
      'Markiere alle Formeln
      On Error Resume Next
        Set alleFormeln = Cells.SpecialCells(xlCellTypeFormulas, 23)
      On Error GoTo 0
      
      If Not alleFormeln Is Nothing Then
        For Each c In alleFormeln
          If UCase(Left(c.Formula, Len("=VLookup"))) = "=VLOOKUP" Then
            'Ersetze Formel durch seinen Wert
            c.Formula = c.Text
          End If
        Next c
      End If
        
    End Sub
    


    Viel Spaß,
    Sam