Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen

Forumthread: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen

Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
07.09.2024 16:59:24
Dieter(Drummer)
Guten Tag an alle.

In der Testdatei (anbei) ist der Code für die Anzeige der Zelladresse(n) mit Formel und weitere Angaben..
Wäre toll wenn die MsgBox auch die Angaben in MsgBox zeigt, die bei der ersten Zelle angezeigt werden.
Hab es nur für die erste Zelle geschafft.

Kann der Code verkürzt werden und wenn ja, wie und die Zellangaben auch in den Folgezellen, die Formeln beinhalten anzeigen?

Mit der Bitte um Hilfe,

grüßt,
Dieter(Drummer)
Testdatei:
https://www.herber.de/bbs/user/172065.xlsm
Jetziger Code in Modul1
Sub FormelZellen_JaNein()

If MsgBox("Nur erste Formelzelle markieren," & vbLf & " Ja Klicken" & vbLf & "Oder alle," & vbLf & " Nein Klicken?", vbYesNo) = vbYes Then
Selection.SpecialCells(xlCellTypeFormulas, 23)(1).Select
With ActiveCell
MsgBox "Zellinhalt: " & .Value & vbLf & "Zelladresse: " & .Address(0, 0) & vbLf & "Formula: " & .Formula & vbLf & _
"FormulaR1C1: " & .FormulaR1C1 & vbLf & "FormulaR1C1Local: " & .FormulaR1C1Local, vbInformation, " Erste Zelle mit Formel"
End With

Else
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
With Selection.SpecialCells(xlCellTypeFormulas, 23)
MsgBox "Alle Formelzellen." & vbLf & "Zelladresse(n): " & .Address(0, 0), vbInformation, " Zellen mit Formeln"
End With
End If
End Sub


Anzeige

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
07.09.2024 17:24:36
Onur
Dass die zweite Version soweit funktioniert, hast du nur Adress zu verdanken, denn Address spuckt alle Adressen aus, was Formula und FormulaLocal nicht tun.
Du solltest eine Userform mit 3 Listboxen für die Ausgabe benutzen, statt der MsgBox.
Hier eine weitere...
08.09.2024 10:57:29
Case
Moin Dieter, :-)

... Variante: ;-)
https://www.herber.de/bbs/user/172073.xlsb

Ist nur eine Spielerei. Vielleicht kannst du dir ein paar Infos rausziehen.
UserForm startet bei Datei öffnen (ist Modal False, du kannst also bei geöffneter UF im Tabellenblatt klicken).
Wenn du eine Formelzelle im Tabellenblatt anklickst, werden die Infos angezeigt.
Auch wie du sie in VBA schreiben musst (falls Hochkommata drin sind).
Bei Klick auf "Kopieren..." wird alles in die Zwischenablage kopiert.

Wie gesagt - nur eine Spielerei. ;-)

Servus
Case
Anzeige
AW: Hier eine weitere...
08.09.2024 18:13:04
Dieter(Drummer)
Danke Case,

werde mir das un Ruhe ansehen.

Guß, Dieter(Drummer)
Dann hätte ich noch...
09.09.2024 13:18:45
Case
Moin, :-)

... diese Variante (KEIN VBA - ist Office Script): ;-)

function main(workbook: ExcelScript.Workbook)

{let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
let cell: ExcelScript.Range = workbook.getActiveCell();
let formula: string = cell.getFormula() as string;
if (formula !== "")
{let value: string = cell.getText();
let address: string = cell.getAddress();
let formulaR1C1: string = cell.getFormulaR1C1() as string;
let formulaLocal: string = cell.getFormulaLocal() as string;
let formulaVBA: string = formula.replace(/"/g, `""`);
let outputCell: ExcelScript.Range = cell.getOffsetRange(0, 1);
let outputText: string = `Zellinhalt: ${value}\n` + `Zelladresse: ${address}\n` + `Formula: ${formula}\n` + `FormulaLocal: ${formulaLocal}\n` + `FormulaR1C1: ${formulaR1C1}\n` + `VBA Formel: ${formulaVBA}`;
outputCell.setValue(outputText);
let outputCellFormat = outputCell.getFormat();
outputCellFormat.setHorizontalAlignment(ExcelScript.HorizontalAlignment.left);
outputCellFormat.setVerticalAlignment(ExcelScript.VerticalAlignment.top);
outputCell.getFormat().autofitColumns();
outputCell.getFormat().autofitRows();}}


Vorteil:
Du kannst die Datei als "*.XLSX" speichern.

Informationen zu Office Script:
https://learn.microsoft.com/de-de/office/dev/scripts/overview/excel

Im Moment wird - wenn das Skript ausgeführt wird - die aktive Zelle auf Formel überprüft. Die Informatioenn werden in der Zelle daneben ausgegeben.
Userbild

Office Skript hat lange nicht den Funktionsumfang wie VBA. Ein paar Dinge kann man aber erledigen. ;-)

Servus
Case
Anzeige
AW: Dann hätte ich noch...
09.09.2024 14:58:28
Dieter(Drummer)
Danke Case,

damit muss ich ich mal beschäftigen und es ausprobieren.

Danke und Gruß,
Dieter(Drummer)
Dafür brauchst du dann...
09.09.2024 15:53:56
Case
Moin, :-)

... aber eine neuere Excelversion. ;-)

Servus
Case
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
07.09.2024 17:48:04
Dieter(Drummer)
Danke Onur für Rückmeldung und Info.

Werde es mit Userform und Listboxen mal ausprobieren

Gruß,
Dieter(Drummer)
Anzeige
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
08.09.2024 09:15:35
Dieter(Drummer)
Danke Onur und Sorry für späte Rückmeldung.

Das sieht ja schon prima aus und ich werde mir das genau ansehen.
Herzlichen Dank für deine Datei mit Userform etc.

Danke und Gruß,
Dieter(Drummer)
Anzeige
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
08.09.2024 10:08:13
Dieter(Drummer)
Guten Morgen Onur,

habe mir deine Datei mal angesehen und die Varinate mit Userform ist toll.
Ich muss mich wohl mal mit Listbox beschäftigen :-).

Habe noch einen Wunsch mit Anpassung deiner Datei:
Wenn die Daten mit Bezugsart Z1S1 umgestellt sind, wäre es prima, wenn das dann auch so in der Listbox gezeigt wird.
So habe ich es probiert, geht aber so nicht.

Mit der Bitte um nochmalige Hilfe,

grüßt, Dieter(Drummer)

Test Code:
Private Sub UserForm_Initialize()

ListBox1.AddItem "Adresse"
ListBox1.List(0, 1) = "Formula"
ListBox1.List(0, 2) = "FormulaLocal"
ListBox1.List(0, 3) = "FormulaLR1C1l"
ListBox1.List(0, 4) = "FormulaR1C1Local"
End Sub

Anzeige
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
08.09.2024 11:53:18
hary
Moin Dieter
aendere den Else Zweig
 '=================================================================================

Else

Set rng = Selection.SpecialCells(xlCellTypeFormulas, 23)
With UserForm1.ListBox1
.Clear '---loecht Inhalt
.BoundColumn = 4 '---Spaltenanzahl anpassen
.ColumnWidths = "40 Pt;150 Pt;150 Pt;150 Pt" '---Spaltenbreite anpassen
.AddItem "Address"
.List(.ListCount - 1, 1) = "Formula"
.List(.ListCount - 1, 2) = "FormulaLocal"
.List(.ListCount - 1, 3) = "FormulaR1C1"
'--usw.was du noch brauchst
For Each cel In rng
.AddItem cel.Address
.List(.ListCount - 1, 1) = cel.Formula
.List(.ListCount - 1, 2) = cel.FormulaLocal
.List(.ListCount - 1, 3) = cel.FormulaR1C1
'--usw.was du noch brauchst
Next
End With
UserForm1.Show
'=================================================================================

gruss hary
Anzeige
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
08.09.2024 18:28:39
Dieter(Drummer)
Danke Hary für Rückmeldung mit Code Erweiterung.

Lieder wird bei Klick auf Nein Button (Userform), nicht in der Listbox die Z1S1 Listung gezeigt.
Ich kann den Fehler nicht finden. Evtl hast dua da noch eine Idee.
Ich kann mich leider erst Morgen zurückmelden.

Danke und Gruß,
Dieter(Drummer)

Hier ist mal die angepasste Datei von Onur mit den Änderungen.
https://www.herber.de/bbs/user/172082.xlsm
Anzeige
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
08.09.2024 19:54:27
Dieter(Drummer)
Danke Onur,

jetzt ist es perfekt. Es war mir nicht zu viel Arbeit, mir fehlt manchmal einfach die Logik. Sorry ...

Danke dir und Gruß,
Dieter(Drummer)
Anzeige
AW: In Textbox1 erste Zeile ein Leerzeile
09.09.2024 11:50:59
Dieter(Drummer)
Guten Tag Onur und auch an alle ...

Danke Onur für deine bisherige tolle Hilfe. Es klappt sehr gut.

Wie kann man in der Textbox1, eine Leerzeile am Anfang einfügen?
Habe Testdatei mit einem Bild der Texbox1, zur besseren Erklärung, wo ich die Leerzeile gerne hätte.

Wäre schön, wenn du da eine Möglichkeit einbauen könntest, oder mir die Info gibst, wie ich das in und in welchen Code bekomme.

Mit Gruß,
Dieter(Drummer)

Testdatei:
https://www.herber.de/bbs/user/172088.xlsm
Anzeige
AW: In Textbox1 erste Zeile ein Leerzeile
09.09.2024 12:13:08
Dieter(Drummer)
Herzlichen Dank Onur,

wieder perfekt!

Werde mir das ansehen, wo du die Möglichkeit der Leerzeile im Code eingebaut hast.

Danke und Gruß,
Dieter(Drummer)
AW: In Textbox1 erste Zeile ein Leerzeile
09.09.2024 12:18:08
Onur
Hier

Userbild

und hier:

Userbild
Anzeige
AW: In Textbox1 erste Zeile ein Leerzeile
09.09.2024 12:48:06
Dieter(Drummer)
Danke Onur,

für deine neue Info und ist alles perfekt. Nun kann ich mich damit beschäftigen.

Gruß,
Dieter(Drummer)
Gerne !
08.09.2024 19:55:44
onur
Dann sage es doch einfach....
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
08.09.2024 12:06:50
Onur
Rechtsklick auf Listbox (im VBA-Editor), Eigenschaften, ColumnCount auf 6 ändern und ebenso die Spaltenbreite(n) anpassen.
Anzeige
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
08.09.2024 20:00:03
Dieter(Drummer)
Sorry Onur,

hatte diese Mitteilung noch nicht gelesen. Das hätte ich natürlich auch machen können.

Gruß,
Dieter(Drummer)
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
07.09.2024 18:34:47
Onur
Oder besser nur eine mit 3 Spalten.
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
07.09.2024 19:03:31
Dieter(Drummer)
Danke Onur auch für diese Info.

Gruß, Dieter(Drummer)
Anzeige
AW: Zelle(n) mit Formel. Zelladresse(n) zeigen. Code kürzen
07.09.2024 19:04:48
Onur
Wenn du es nicht alleine hinkriegst - einfach melden !

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige