Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
excel formel durch wert ersetzen vba
22.12.2017 10:23:09
Helmut
Schönen Vormittag VBA'ler
ich habe folgenden Code im Internet gefunden.
  • 
    Private Sub Worksheet_Calculate()
    Dim objCell As Range
    For Each objCell In Range("M2:M14")
    If objCell.HasFormula Then _
    If IsNumeric(objCell.Text) Then _
    If Fix(objCell.Value) = objCell.Value Then _
    objCell.Value = objCell.Value
    Next
    End Sub
    

  • Dieser löscht in einem vordefinierten Bereich die Formel und gibt das Ergebnis der Formel in der Zelle ein.
    Mein Problem, mein Ergebnis der Berechnung ist ein Text (zb.: "Falsch"). Hierbei funktioniert der Code nicht.
    Hat jemand eine Ahnung?
    LG Helmut

    18
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: excel formel durch wert ersetzen vba
    22.12.2017 10:30:30
    Sepp
    Hallo Helmut,
    warum nicht einfach
    
    Range("M2:M14") = Range("M2:M14").Value
    
    ?
    Gruß Sepp

    AW: excel formel durch wert ersetzen vba
    22.12.2017 10:35:48
    fcs
    Hallo Helmut,
    probiere es mit folgender Variante.
    ggf. muss die Prüfung des Zellwert angepasst werden.
    Bei meiner Variante wird die Formel umgewandelt, wenn das Formelergebnis verschieden von Leerstring ist.
    Gruß
    Franz
    Private Sub Worksheet_Calculate()
    Dim objCell As Range
    For Each objCell In Range("M2:M14")
    If objCell.HasFormula Then
    If objCell.Text  "" Then
    objCell.Value = objCell.Text 'oder = objCell.Value
    End If
    End If
    Next
    End Sub
    

    Anzeige
    AW: excel formel durch wert ersetzen vba
    22.12.2017 10:53:36
    Helmut
    Servus Sepp, Servus Franz
    vielen Dank für eure schnelle Hilfe, doch bei deinen Code lieber Franz wandelt es mir gleich den ganzen vordefinierten Bereich in die dortigen End-Ergebnisse um. Das sollte nicht der Sinn der Sache sein.
    Der Code den ich gepostet habe, dort wird nur die Zelle umgewandelt, wo eine Berechnung vor sich geht. Wenn möglich, möchte ich das beibehalten.
    Nochmals herzlichen Dank vorerst für eure Mithilfe
    LG Helmut
    AW: excel formel durch wert ersetzen vba
    22.12.2017 10:46:45
    Werner
    Hallo Helmut,
    Lösungen hast du jetzt ja schon.
    Ob es aber tatsächlich das ist, was du willst/brauchst ist die Frage.
    Du nutzt das Calculate Ereignis deines Tabellenblattes. Dabei solltest du dir über eines im klaren sein. Dieses Ereignis löst aus, sobald irgendwo auf dem Tabellenblatt eine Berechnung ausgelöst wird. Die Betonung liegt auf irgendwo.
    Gibst du jetzt z.B. in Zelle A1 folgende Formel ein:=1+1, dann löst das Calculate Ereignis aus und deine Formeln im Bereich M2-M14 werden durch die jeweiligen Formelergebnisse ersetzt.
    Ob du das tatsächlich so willst/brauchst kannst aber nur du wissen.
    Gruß Werner
    Anzeige
    AW: excel formel durch wert ersetzen vba
    22.12.2017 12:00:50
    Helmut
    Servus Werner
    genau um das geht es, nur habe ich vor deiner Antwort schon festgestellt das das so nicht funktioniert.
    Weißt du hier einen Ausweg? Siehe noch einmal bei meinem letzten Thread nach! Da steht wie ich es mir gerne vorgestellt hätte.
    LG Helmut
    AW: excel formel durch wert ersetzen vba
    22.12.2017 18:45:35
    guenni
    Mit den Börsenbriefen wird den Leuten regelmäßig so viel Geld abgeluchst, dass man sich auch einen Profi vor Ort leisten kann!
    Hier muss beim Füllen der Eingabefelder der Datensatz identifiziert werden, und vom Change-Ereignis zurückgeschrieben werden.
    AW: excel formel durch wert ersetzen vba
    23.12.2017 13:08:26
    Helmut
    Servus guenni
    Ich verstehe nur Bahnhof. Weiß überhaupt nicht was du damit meinst.
    Gibt es noch irgendwo die Möglichkeit mir zu helfen?
    LG Helmut
    Anzeige
    Brauche bitte noch immer Hilfe
    25.12.2017 20:51:41
    Helmut
    Guten Abend VBA'ler
    Kann mir den niemand mehr helfen?
    Fröhliche Weihnachten wünscht Helmut
    AW: Brauche bitte noch immer Hilfe
    26.12.2017 01:11:33
    Sepp
    Hallo Helmut,
    so?
    ' **********************************************************************
    ' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
    ' **********************************************************************

    Option Explicit

    Private Sub Worksheet_Calculate()
    Dim objCell As Object, objRange As Object

    On Error Resume Next
    Application.EnableEvents = False
    Set objRange = Range("M2:M14").SpecialCells(xlCellTypeFormulas)
    If Not objRange Is Nothing Then
      For Each objCell In objRange
        If objCell.Value <> "" Then objCell.Value = objCell.Value
      Next
    End If
    Application.EnableEvents = True
    End Sub

    Gruß Sepp

    Anzeige
    weitere Hilfe benötigt
    26.12.2017 09:39:33
    Helmut
    Guten Morgen Sepp
    Danke vorerst einmal für die Hilfe während der Feiertage, Leider komme ich nicht zum gewünschten Ergebnis.
    In meinem festgelegten Bereich M2:M14 ist jede Zelle mit einer wenn Formel ausgestattet. Wenn nun durch eine Berechnung eine Zelle in diesem Bereich verändert wird, soll nur diese Zelle anstatt der wenn Formel das Endergebnis haben alle anderen Zellen in diesem Bereich sollen trotzdem die "Wennformel" behalten.
    Ich bin sehr dankbar über eure Hilfe.
    LG Helmut
    AW: weitere Hilfe benötigt
    26.12.2017 10:06:32
    Sepp
    Hallo Hellmut,
    ganau das macht mein Code! Allerdings hängt das von deiner Formel ab, solange du die nicht zeigst, knn ich dir nicht weiterhelfen.
    Gruß Sepp

    Anzeige
    Hier die Formel
    26.12.2017 18:49:05
    Helmut
    Guten Abend Sepp
    hiermit sende ich dir meine „wennformel". In meiner Datei habe ich fast alle Zellen bzw. Bereiche mit Namen versehen. Ich hoffe, dass dies nicht das Problem sein wird.
    Vielen Dank vorerst noch einmal für deine Hilfe
    =WENN(UND(Überprüfung1=JAHR(DatumDerPrüfung);(QR_Code_Nr=Matrix2!$C3));StandsicherheitStabilität)
    LG Helmut
    AW: Hier die Formel
    26.12.2017 19:40:48
    Sepp
    Hallo Helmut,
    das deine Formel FALSCH als Ergebnis liefert, solange die Bedingung nicht erfüllt ist, hättest du selber wissen müssen und den Code auch entsprechend anpassen können.
    ' **********************************************************************
    ' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
    ' **********************************************************************

    Option Explicit

    Private Sub Worksheet_Calculate()
    Dim objCell As Object, objRange As Object

    On Error Resume Next
    Application.EnableEvents = False
    Set objRange = Range("M2:M14").SpecialCells(xlCellTypeFormulas)
    If Not objRange Is Nothing Then
      For Each objCell In objRange
        If objCell.Value <> False Then objCell.Value = objCell.Value
      Next
    End If
    Application.EnableEvents = True
    End Sub

    Gruß Sepp

    Anzeige
    Hilfeschrei
    26.12.2017 20:15:14
    Helmut
    Guten Abend
    Meine VBA Kenntnisse sind nicht so besonders, deshalb bin ich auf eure Hilfe angewiesen.
    Habe jetzt ein wenig herumprobiert, doch ohne Erfolg. Die Formel wird nicht gegen das Ergebnis ausgetauscht.
    Hilfe!!!!
    LG Helmut
    AW: Hilfeschrei
    26.12.2017 20:35:59
    Sepp
    Hallo Helmut,
    dann wirst du wohl eine Beispieldatei hochladen müssen, denn wenn ich die Situation nachbaue, dann funktioniert es!
    Gruß Sepp

    Hier die Datei
    27.12.2017 18:46:21
    Helmut
    Servus Sepp
    Hier die Datei. Im Tabellenblatt „Leiter-Kontrollblatt“ sind Checkboxen. Wenn diese angehakt sind oder eben nicht, steht in der Zelle daneben (Spalte D) wahr oder falsch. Im Tabellenblatt "Matrix 2" sind ab "K3"überall Berechnungen mit „wenn Formeln“ die sich wenn die Check-Box angehakt ist, in das Endergebnis „wahr“ verwandeln soll, also die Formel löschen und nur "wahr" beinhalten.
    https://www.herber.de/bbs/user/118545.xlsm
    Jetzt schon herzlichen Dank für deine unermüdlichen Leistungen für mich
    LG Helmut
    Anzeige
    AW: Hier die Datei
    27.12.2017 19:29:10
    Sepp
    Hallo Helmut,
    also bei mir funktioniert der Code, allerdings nicht in K3 sondern in BY3, weil die Formeln in K3 nie WAHR ergibt.
    Habe in nur vom Bereich her angepasst.
    ' **********************************************************************
    ' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
    ' **********************************************************************


    Option Explicit

    Private Sub Worksheet_Calculate()
    Dim objCell As Object, objRange As Object

    On Error Resume Next
    Application.EnableEvents = False
    Set objRange = Range("K3:CS10").SpecialCells(xlCellTypeFormulas, xlLogical)
    If Not objRange Is Nothing Then
      For Each objCell In objRange
        If objCell.Value = True Then objCell.Value = objCell.Value
      Next
    End If
    Application.EnableEvents = True
    End Sub

    Gruß Sepp

    Anzeige
    Alles Bestens
    28.12.2017 17:37:43
    Helmut
    Guten Abend Sepp
    Es funktioniert alles nach meinen Vorstellungen!!! Vielen herzlichen Dank für deine Hilfe und das während der Feiertage, ich wünsche dir und allen die sich an meinen Problem beteiligt haben einen guten Rutsch ins Jahr 2018, viel Gesundheit und Erfolg.
    LG Helmut

    180 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige