Hallo werte excelgemeinde
ich habe mir ein makro gebastelt um die Formeln im activesheet anzeigen zu lassen.
(zwei schaltfläcen in der leiste über der Bearbeitungsleiste.)
Funktioniert so auch ganz gut beim einblenden.
das Problem kommt wenn ich die anzeige wieder löschen will und mehr als 1 Anzeigefeld
eingeblendet ist.
das Löschen passiert im moment mit dem zweiten code.
wenn ich die textbox mit textbox1 anspreche löscht der code nur eine textbox.
wenn ich sie mit ActiveSheet.Shapes.Count anspreche wird immer das
letzte steuerelement gelöscht das ich eingefügt habe.Das könnte auch mal ein button oder auch ne textbox
oder so sein..
Ich hätte gerne folgendes und kriegs nicht auf die reihe:
wenn eine anzeige eingeblendet ist, und ich klicke den anzeigen Button
nocheinmal soll die alte anzeige gelöscht und die neue Anzeige soll
eingeblendet werden.
vieleich hat ja jemand noch ne ganz andere idee. (außer die geniale Jeanie)
Option Explicit
Dim ac As Range
Dim t As String
Dim s As String
Dim zelle As Range
Sub formeln_anzeigen()
Set ac = ActiveCell
On Error GoTo fehler
For Each zelle In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas) 'formeln finden
t = zelle.Address & " " & zelle.FormulaLocal & Chr(10) & _
zelle.Address & " " & zelle.Formula
s = s & t & Chr(10)
Next
'Debug.Print s
'textbox einfügen
ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", _
Left:=ActiveCell.Left, _
Top:=ActiveCell.Top + ActiveCell.Height, _
Width:=700, _
Height:=300).Select
With ActiveSheet.OLEObjects(ActiveSheet.OLEObjects.Count).Object 'textbox formatieren
.Font.Size = 8
.Value = s
.AutoSize = True
.MultiLine = True
End With
ac.Activate
s = ""
Exit Sub
fehler:
MsgBox Prompt:="Im aktiven Blatt " & Chr(10) & _
"keine Zellen mit Formeln gefunden .", _
Title:="Fehlermeldung"
End Sub
Public Sub weg()
On Error Resume Next
ActiveSheet.OLEObjects("textbox1").Delete 'wieder löschen (ActiveSheet.Shapes.Count)
End Sub
danke schonmal ins vorraus an alle die sich damit beschäftigen:
ransi