Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

keine Formel: sichtbar machen

keine Formel: sichtbar machen
11.09.2007 20:00:00
Mine
Hallo liebe Excelfreunde,
bin hier ganz neu und möchte gern mein Problem beschreiben. Ich habe in einer Tabelle Formeln hinterlegt und ich möchte ohne weitere Eingabe erkennen, ob ich die Formel mit einen Wert überschrieben habe. Die Formel selbst kann ich nicht schützen, da sie auch überschrieben werden muss. Ich will nur erkennen, wenn das geschehen ist. Ich habe es über die bedingte Formatierung schon versucht, aber ..., na ja, ich hätte ja die Frage dann nicht mehr. Kann jemand mit meiner Frage etwas anfangen?
Gruß Mine

32
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: keine Formel: sichtbar machen
11.09.2007 20:15:00
Mine
Hallo Beate,
Du sprichst mit keinen Experten. Ich würde gucken, aber wohin? Wenn Du meinst, "Gehe zu ..." usw., das mache ich bis ich eine andere Lösung finde. Die Datei ist sehr groß und ich muss jedesmal rüber und runter suchen. Das mache ich aber nicht bei jeder Eingabe und so kann man das auch mal vergessen. Ich arbeite nicht allein mit der Datei. Ich dachte auch schon an "Gültigkeit", aber es hat nichts geklappt. Mit der Eingabe möchte ich einem Hinweis haben, wenn die Formel überschrieben wurde. Hilf mir bitte noch einmal.
Gruß Mine

Anzeige
AW: keine Formel: sichtbar machen
11.09.2007 20:22:56
Beate
Hallo Mine,
Klick doch auf meinen gesetzten Link, denn den sollst du lesen.
Gruß,
Beate

AW: keine Formel: sichtbar machen
11.09.2007 20:31:00
Mine
Liebe Beate,
ja, habe ich gemacht, aber auf diese Weise prüfe ich immer. Ich suche den Hinweis bereits bei der Eingabe bzw. dem Überschreiben.
Gruß Mine

Formel verändert oder durch Wert ersetzt?
11.09.2007 20:47:08
Beate
Hallo Mine,
hiermit werden bearbeitete Formeln gelb markiert. Füge das Makro ins Codefenster der Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    For Each rng In Target.Cells
        If rng.HasFormula Then
            rng.Interior.ColorIndex = 6
        End If
    Next rng
End Sub

Guckst Du: Wie und wo fügt man ein Makro bzw. Code ein
Gruß,
Beate

Anzeige
AW: Formel verändert oder durch Wert ersetzt?
11.09.2007 21:01:36
ingUR
Hallo, @Mine,
hier eine möglichkeit, die beim Verändern einer Zelle überprüft, ob die Zelle eine Formel hat oder ncht. Allerdings scheint mir bei der entwiklung einer Tabbele bzw. deren Fortschreibung diese Art wohl eher hinderlich zu sein.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(UsedRange, Target) Is Nothing) Then
If Not Target.HasFormula Then
Target.Interior.ColorIndex = 3
Else
Target.Interior.ColorIndex = xlNone
End If
End If
End Sub

Hinweise zur Einbindung der Prozedur wurden bereits gegeben.
Gruß,
Uwe

Anzeige
AW: keine Formel: sichtbar machen
11.09.2007 20:08:00
Hajo_Zi
Hallo Mine,
lese ich das also richtig, Du möchtest alle Zellen markieren in denen keine Formel steht, ich vermute mal 90% der Tabelle also? Oder möchtest Du nur bestimmte Zelle bedingt formatieren?
Da mßtest Du wohl Zelle.Zuodnen einsetzen.

AW: keine Formel: sichtbar machen
11.09.2007 20:19:38
Mine
Mensch Hajo, ich weiß nicht was Du mir sagen wolltest. Alles ist Formel und wenn der Wert eingetragen wird und nicht durch eine Formel errechnet ist, da soll eben für mein Auge etwas passieren.
Überlege bitte noch einmal.
Gruß Mine

Vielen Dank, Ihr Lieben! Klappt!
11.09.2007 21:12:00
Mine
Danke an Alle,
ich habe gleich zwei Möglichkeiten. Das klappt hier aber prima. Vielleicht kann ich auch mal helfen!
Grüße aus Thüringen Mine

nochmal zu: Formel sichtbar machen
11.09.2007 21:30:55
Mine
Hallo,
zu früh gelobt! Deine Datei ist gut und da klappt es und wie kamme ich an das Macro? Ich denke das wird wohl eines sein. Melde Dich bitte noch mal. Danke!
Gruß Mine

AW: nochmal zu: Formel sichtbar machen
11.09.2007 21:52:39
Matthias
Hallo
hier die Codezeilen

in einem Modul
Option Explicit
Public X As Boolean

in der Tabelle
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then X = True
If ActiveCell.HasFormula = False Then X = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
If X = True Then
MsgBox "Achtung es wurde eine Formel überschrieben"
End If
End If
End Sub


Userbild

Anzeige
AW: keine Formel: sichtbar machen
11.09.2007 21:09:00
K.Rola
Hallo,
in diesem Fall halte ich die bedingte Formatierung ausnahmsweise für den richtigen Weg.
Wieviele Zellen wären denn so in etwa davon betroffen?
Gruß K.Rola

AW: keine Formel: sichtbar machen
11.09.2007 21:15:07
Mine
Hallo,
vielleicht hast Du ja auch noch eine Idee. Es sind 100 Spalten und 500 Zeilen.
Gruß Mine

AW: keine Formel: sichtbar machen
11.09.2007 21:42:23
K.Rola
Hallo,
schau mal morgen nach 15:00 Uhr rein, lade dir ein Beispiel hoch.
Gruß K.Rola

AW: keine Formel: sichtbar machen
12.09.2007 05:20:02
Mine
Hallo,
mache ich sehr gern.
Gruß Mine

Beispiel 100 Spalten 500 Zeilen
12.09.2007 06:51:53
Matthias
Hallo Mine
Bin nicht sicher, ob Du Dich nun für eine MSGBOX oder doch für bedingte Formatierung entscheidest.
Deshalb nochmal ein Beispiel.
In allen Zellen von A1 bis CV500 sind Formeln hinterlegt (also 100 Spalten, 500 Zeilen)
Um das schnell zu realisieren, habe ich den ganzen Bereich markiert und in die aktive Zelle
diese Formel geschrieben =Zeile()*Spalte().
Dann noch Strg+Enter und alle Zellen hatten eine Formel
Wie im Bild habe ich jetzt eine Zelle("E16") geändert und einen Wert eingetragen
Userbild
Code in einem Modul:

Option Explicit
Public X As Boolean


Code in der Tabelle:


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then X = True
If ActiveCell.HasFormula = False Then X = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:CV500")) Is Nothing Then
If X = True Then
MsgBox "Achtung es wurde eine Formel überschrieben"
End If
End If
End Sub


Die Datei ist leider zu groß zum uploaden
Userbild

Anzeige
AW: Beispiel 100 Spalten 500 Zeilen
12.09.2007 14:00:00
Peter
Hallo Matthias
Weiss nicht, ob ich mich hier eigentlich einklicken darf oder ob ich ein neuer Thread beginnen sollte. Ich probiere es mal so.
Diesen Lösungsansatz finde ich sehr interessant und ich habe mich des öftern schon gefragt, wie ganze Workbooks "soft", also ohne eigentlichen Zelleschutz, etwas sicherer gemacht vor unbeabsichtigtem Überschreiben von Formeln geschützt werden können.
Frage:
Bei untenstehendem Makro habe ich die Adresse mit einem benannten Bereich [formelcheck] ersetzt. Kann ein ähnlicher Code Workbook_selectionChange o.ä. erstellt werden, wo dann verschiedene Bereichsnamen (aus den einzelnen Tabellen) angegeben werden, bei denen diese Überwachung erfolgen soll? Z.B. Für Tabelle1 [formelcheck1], für Tabelle2 [formelcheck2] oder ähnlich.
Bin gespannt auf eine Rückmeldung.
Danke, Peter

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then X = True
If ActiveCell.HasFormula = False Then X = False
End Sub



Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [formelcheck]) Is Nothing Then
If X = True Then
MsgBox "Achtung es wurde eine Formel überschrieben"
End If
End If
End Sub


Anzeige
AW: Beispiel 100 Spalten 500 Zeilen
12.09.2007 19:15:00
Matthias
Hallo Peter
in ein Modul:

Option Explicit
Public X1 As Boolean, x2 As Boolean
Public OldFormel


in Tabelle1


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then X1 = True: OldFormel = Target.Formula
If ActiveCell.HasFormula = False Then X1 = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [Formelcheck1]) Is Nothing Then
If X1 = True Then
MsgBox "Achtung es wurde folgende Formel überschrieben" & vbLf & "in " & Target.Address & ": " _
& OldFormel
End If
End If
End Sub


in Tabelle2


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then x2 = True: OldFormel = Target.FormulaLocal
If ActiveCell.HasFormula = False Then x2 = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [Formelcheck2]) Is Nothing Then
If x2 = True Then
MsgBox "Achtung es wurde folgende Formel überschrieben" & vbLf & "in " & Target.Address & ": " _
& OldFormel
End If
End If
End Sub


Userbild
und hier die Datei: https://www.herber.de/bbs/user/45969.xls
Userbild

Anzeige
AW: Beispiel 100 Spalten 500 Zeilen
12.09.2007 21:07:59
Peter
Hallo Matthias
Ich finde die Lösung super, auch dass die überschriebene Formel angezeigt wird.
Ein kleines Schönheitsfehler besteht noch: Wenn anschliessend an die MsgBox die Aktion rückgängig gemacht wird, erscheint wieder eine MsgBox, die besagt, dass die Formel überschrieben wurde und zwar egal, ob ich mit Enter das nächste Feld angewählt wird oder nicht.
Vielleicht hast du ja auch noch eine gute Idee, wie das unterdrückt werden könnte.
Vielen Dank, Peter

ist mir rätselhaft !
12.09.2007 21:42:59
Matthias
Hallo Peter
Ich habe keinen blassen Schimmer wodurch das bei Dir eintritt.
Bei mir wird nur die Box angezeigt, wenn in der Zelle eine Formel stand.
Schreibe ich die Formel wieder in die Zelle die gerade nur einen Wert hatte bleibt die Box weg!
Beschreibe doch mal ganz genau was Du machst, aslo was Du wo änderst
Tabelle-Zelle-Formel-Wert. So kann ich es nicht nachvollziehen, was da passiert.
Oder lade Deine Tabelle, in der es nicht funktioniert hoch. Dann schau ich nochmal drauf.
Userbild

Anzeige
AW: ist mir rätselhaft !
12.09.2007 21:51:01
Peter
Hallo Matthias
Ich tippe die Formel nicht wieder ein sondern drücke die Tastenkombination Ctl+Z (für Rückgängig) oder wähle im Menu BEARBEITEN "Rückgängig, so dass die gelöschte Formel wieder eingetragen wird.
Gruss, Peter

Extras Optionen Bearbeiten Markierung. Haken raus!
12.09.2007 22:23:00
Matthias
Hallo Peter
mach hier den Haken raus!
Userbild
Extras Optionen Bearbeiten
Userbild

AW: Extras Optionen Bearbeiten Markierung. Haken raus!
13.09.2007 08:00:00
Peter
Danke, Matthias
Das ureigentliche Problem liesse sich vielleicht lösen, wenn beim Rückgängigmachen der Lösung diese Kontrolle nicht passiert. Aber ich bin schon mit diesem Behelf mehr als zufrieden.
Gruss, Peter

AW: Extras Optionen Bearbeiten Markierung. Haken raus!
13.09.2007 17:14:55
Reinhard
Hi Peter,
laß den Haken drin und probiere es mal so:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then X = True
If ActiveCell.HasFormula = False Then X = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:CV500")) Is Nothing Then
If X = True And Not Target.HasFormula Then
MsgBox "Achtung es wurde eine Formel überschrieben"
End If
End If
End Sub

Gruß
Reinhard

Perfekt ;o)
13.09.2007 18:03:00
Matthias
Hallo Reinhard
Das ist die perfekte Lösung, Danke für Deinen Beitrag
Userbild

AW: Extras Optionen Bearbeiten Markierung. Haken raus!
13.09.2007 18:03:00
Peter
Hallo Reinhard
Das funktioniert einwandfrei. Ich wollte allerdings noch die zusätzliche Info in der msgBox integrieren, wie die Formel lautet, die überschrieben wurde.
Habe es leider nicht geschafft. Habe es mit "OldFormel ..." versucht und zusätzlich in einem Modul x3 definiert (Public X3 as Boolean) - auch wenn ich den Zusammenhang nicht ganz verstehe ....
Kannst du mir da auch noch auf die Sprünge helfen? Vielen Dank!
Peter
PS: Anstelle des von Range("A1:CV500")) habe ich [Formelcheck3] berücksichtigt (definierter Bereich in Tabelle, der überwacht werden soll)
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then x3 = True: OldFormel = Target.Formula.local
If ActiveCell.HasFormula = False Then x3 = False
End Sub



Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [Formelcheck3]) Is Nothing Then
If x3 = True And Not Target.HasFormula Then
MsgBox "Achtung es wurde eine Formel überschrieben" & vbLf & "in " & Target.Address & ": _
" & OldFormel
End If
End If
End Sub


AW: Extras Optionen Bearbeiten Markierung. Haken raus!
Reinhard
Hi Peter,
in Modul1:
Public X As Boolean, Formel As String
in Tabelle1:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then
X = True
Formel = ActiveCell.FormulaLocal
Else
X = False
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:CV500")) Is Nothing Then
If X = True And Not Target.HasFormula Then
MsgBox "Achtung, folgende Formel wurde überschrieben" & Chr(13) & Formel
End If
End If
End Sub

Gruß
Reinhard

AW: Extras Optionen Bearbeiten Markierung. Haken r
13.09.2007 19:15:00
Matthias
Hallo Peter
Nach der glorreichen Idee von Reinhard den Code so anzupassen hier der Code komplett
in ein Modul

Option Explicit
Public X1 As Boolean, x2 As Boolean, x3 As Boolean
Public OldFormel As String


in die Tabelle mit dem Bereich [Formelcheck1]


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then X1 = True: OldFormel = Target.Formula
If ActiveCell.HasFormula = False Then X1 = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [Formelcheck1]) Is Nothing Then
If X1 = True And Not Target.HasFormula Then
MsgBox "Achtung es wurde folgende Formel überschrieben" & vbLf & "in " & Target.Address & ": " _
& OldFormel
End If
End If
End Sub


in die Tabelle mit dem Bereich [Formelcheck2]


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then x2 = True: OldFormel = Target.FormulaLocal
If ActiveCell.HasFormula = False Then x2 = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [Formelcheck2]) Is Nothing Then
If x2 = True And Not Target.HasFormula Then
MsgBox "Achtung es wurde folgende Formel überschrieben" & vbLf & "in " & Target.Address & ": " _
& OldFormel
End If
End If
End Sub


in die Tabelle mit dem Bereich [Formelcheck3]


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.HasFormula = True Then x3 = True: OldFormel = Target.FormulaLocal
If ActiveCell.HasFormula = False Then x3 = False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [Formelcheck3]) Is Nothing Then
If x3 = True And Not Target.HasFormula Then
MsgBox "Achtung es wurde folgende Formel überschrieben" & vbLf & "in " & Target.Address & ": " _
& OldFormel
End If
End If
End Sub


Hier die neue Datei: https://www.herber.de/bbs/user/46013.xls
Userbild

AW: Extras Optionen Bearbeiten Markierung. Haken r
14.09.2007 08:23:00
Peter
Hallo Matthias
Wie sind nahe am Ziel. Ich habe nur noch folgendes Problem festgestellt, das ich nicht lösen kann.
Wenn ich mehrere Zellen des Bereichs nur schon anwähle, kommt eine Fehlermeldung "Typen unverträglich". Wenn ich richtig verstehe, will der Code die Formel der aktiven Zelle zuordnen, wir haben aber eine Mehrfachauswahl.
Dementsprechend könnte man vielleicht vorsehen, dass die überschriebene Formel nur zurück gegeben wird, wenn es sich um eine einzelne Zelle handelt, andernfalls wir einfach der überschriebene Bereich gemeldet.
Danke und freundlicher Gruss, Peter

AW: Extras Optionen Bearbeiten Markierung. Haken r
15.09.2007 08:10:00
Matthias
Hallo Peter
Nimm statt

OldFormel = Target.FormulaLocal dieses:
OldFormel = ActiveCell.FormulaLocal

Userbild
;o) https://www.herber.de/bbs/user/46055.xls
Userbild

AW: Extras Optionen Bearbeiten Markierung. Haken r
15.09.2007 21:28:00
Peter
Hallo Matthias
Vielen Dank - diese Funktionalität könnte man ja jetzt Bill Gates verkaufen ...
Gruss, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige