Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1336to1340
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
Inhaltsverzeichnis

Zellen formatiren mit Funktion

Zellen formatiren mit Funktion
29.10.2013 17:08:57
Dirk
Hallo zusammen
Folgendes Anliegen habe ich
Ich würde gerne eine Zelle ein Format zuweisen und zwar über eine Funktion
alse sowas wie
.NumberFormat ="0.00"

Ich möchte aber nicht mit
Format(Wert, "0.00")

arbeiten, da sich der eigendliche Wert dadurch ja ändert.
Geht sowas?
Gruß
Dirk

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen formatiren mit Funktion
29.10.2013 17:13:23
Hajo_Zi
Hallo Dirk,
ja, der erste Teil ist VBA.
Warum nicht einfach Zellen formatieren?

AW: Zellen formatiren mit Funktion
29.10.2013 17:25:22
Dirk
Ich Hallo Hajo,
von hand formatieren kommt nicht in Frage, da sich das Format während des arbeitens mehrmalt ändern kann.
eine Starre formatierung zu hinterlegen ist daher nicht möglich.
kurzes Beispiel
in "a1" hinterlege ich das gewünschte Format 0,02 (berechnet)
und in mehreren Zellen sind Ergebnisse, die bis zu 8 Nachkommastellen haben
nun muss jede dieser Zellen das Format von "A1" annehmen.
Gruß
Dirk

Anzeige
AW: Zellen formatiren mit Funktion
29.10.2013 17:41:54
Tino
Hallo,
kommt darauf an von wo du diese Funktion aufrufen willst.
Über eine Excelformel in der Tabelle, ist möglich aber umständlich.
Aus einem anderen Makro, evtl. so.
Sub Beispiel()
FormatZelle Tabelle1.Range("A2"), "0.00"
End Sub
'kommt in ein Modul
Function FormatZelle(rngRange As Range, strFormat$)
rngRange.NumberFormat = strFormat
End Function
Gruß Tino

AW: Zellen formatiren mit Funktion
29.10.2013 17:50:33
Dirk
Hallo Tino,
leider geht es genau darum die Funktion in einer Tabelle zu hinterlegen.
als "Rechenfunktion".
Da hab ich bis jetzt aber nur so hin bekommen
Function signirund(vorgabe As String, Wert As Range, Optional mehrstellen As Integer = 0)
'Funktion zum signifikanten Runden
Dim nachk As Integer
Dim zellform As String
Dim tmpwert As Double
If Wert 
Die Funktion soll immer nach der Vorgabe die Zelle formatieren, es sei denn die Zahl ist kleiner als die Vorgabe dann soll er den Ersten Wert anzeigen.
Das Problem ist aber, das ich mit dem Ergebniss noch Verweisen muss und das nicht Funktioniert, _ wenn der Wert "abgeschnitten" wird wie hier mit

signirund = Format(Wert, zellform)

Gruß
Dirk

Anzeige
AW: Zellen formatiren mit Funktion
29.10.2013 18:55:40
Tino
Hallo,
kann man mit einem Timer machen der nach x Millisekunden die Zelle Formatiert.
Allerdings würde ich maximal 1 Zelle mit solch einer Funktion füttern.
An Deiner Stelle würde ich eherer auf ein Worksheet_Change Event ausweichen und
dies auf die Zelle anwenden die unmittelbar die Funktion beinflusst.
Evtl. müsstest Du aber in einer Hilfsspalte dann dieses Format ablegen wo dieses Event dann darauf zurückgreifen kann.
Also eine Zelle fürs Ergebnis und eine Zelle fürs Format.
Beispiel Zelle A2:A... beeinflusst die Zelle C2:C...,
Format wurde zuvor über eine Funktion in B2:B... geschrieben/ermittelt.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Intersect(Range("A2").Resize(UsedRange.Rows(UsedRange.Rows.Count).Row), Target)
If rng Is Nothing Then Exit Sub
For Each rng In rng.Cells
rng.Offset(, 2).NumberFormat = rng.Offset(, 1)
Next rng
End Sub

Gruß Tino

Anzeige
wenn ich so drüber nachdenke...
29.10.2013 19:53:27
Tino
Hallo,
müsste doch auch über die Bedingte Formatierung gehen,
da kann man auch ein Format zuweisen wenn Bedingung erfüllt.
Gruß Tino

AW: wenn ich so drüber nachdenke...
30.10.2013 07:30:24
Dirk
Hallo Tino,
kann man in der Bedingten Formatierung das Variabel hinterlegen?
das Format der Zelle muss hinterher ja so aussehen
nachkommastellen=Vorgabe
wenn Ergebnis*10^nachkomma 
bsp:
vorgabe =0,020
Ergebnis 1 = 0,12345 Ausgabeformat 0,123
Ergebnis 2 = 0,000512 Ausgabeformat 0,0005
Bekommt mann das da rein?
Gruß
Dirk

AW: wenn ich so drüber nachdenke...
30.10.2013 10:57:56
Tino
Hallo,
zumindest kannst Du in der Bedingten Formatierung eine Formel einbauen und
ab xl2007 kann man auch mehr als 3 verwenden sollte es nötig sein.
Hier ein Beispiel
 B
30,0005

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
B31. / Formel ist =LÄNGE(WECHSELN(REST(B3;1);"0,";""))-LÄNGE(WECHSELN(REST(B3;1);"0,";"")*1)=3Abc
B32. / Formel ist =LÄNGE(WECHSELN(REST(B3;1);"0,";""))-LÄNGE(WECHSELN(REST(B3;1);"0,";"")*1)=2Abc
B33. / Formel ist =LÄNGE(WECHSELN(REST(B3;1);"0,";""))-LÄNGE(WECHSELN(REST(B3;1);"0,";"")*1)<2Abc

Format 1. Bedingung: Zahl 4 Dezimalstellen
Format 2. Bedingung: Zahl 3 Dezimalstellen
Format 3. Bedingung: Zahl 2 Dezimalstellen
Zu der anderen sachen, eine Funktion aus einer Tabelle aufgerufen
kann keine Zelle formatieren, geht einfach nicht.
Gruß Tino

Anzeige
AW: Zellen formatiren mit Funktion
29.10.2013 19:53:45
Dirk
Hallo tino
da hatte ich auch schon drann gedacht das hab aber wieder zu folge, das es relativ lange durchlaufzeiten gibt. Ein ähnliches Problem hab ich nämlich bei der Zwischenlösung gehabt.
es gibt insgesammt 15 zellen, die ein Format für je ~200 zellen bereit hält.
wenn der die anpasst dauert das halt schon ein paar sek (3-4). Das nervt halt beim arbeiten. daher halt die überlegung das so umzustellen, das es über eine Funktion läuft, da er immer nur die nötigsten zellen neu berechnet.
Gruß
Dirk

AW: Zellen formatiren mit Funktion
30.10.2013 09:56:31
Dirk
Das muss doch irgendwie möglich sein das NumberFormat einer Zelle über eine Rechenfunktion anzusteuern.
Gruß
Dirk

Anzeige
Das geht nur mit API-Fktt oder mit ...
30.10.2013 14:06:24
Luc:-?
physischer Entkopplung (RECHERCHE-Stichwort ) der UDF vom Formatierungsteil, Dirk,
was aber recht kompliziert und nicht sonderlich empfehlenswert ist.
Eine UDF, die nur formatieren soll, wäre also in reinem xlVBA sinnlos, da trotzdem zusätzlich eine Ereignisprozedur benötigt würde. Nur mit Letzterer würde ich das Problem auch lösen, falls die Möglichkeit, ein anderes Zahlenformat per BedingtFormatierung einzustellen, die es ab Xl12 (2007) gibt, nicht ausreicht oder auch unter Xl14 noch nicht zuverlässig fktioniert und sich ein benutzerdefiniertes Format, das alle Varianten umfasst, nicht formulieren lässt.
Gruß Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige