Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Format erstellen

Forumthread: Format erstellen

Format erstellen
28.02.2023 11:24:02
kurt
Hallo zusammen,
ich habe folgendes Makro:
Public Sub Worksheet_Change(ByVal Target As Range)
Dim vntNewValue As Variant
Dim lrgRange As Range
On Error GoTo ERR_Handler
Set lrgRange = Range("b26:b50, b92:b115, b156:b179, b220:b243, b283:b306, b347:b370")
'--- hier Spalte D sollte das Zahlenformat für die Bereiche hinterlegt werden -----------
Set lrgRange = Range("d26:d50, d92:d115, d156:d179, d220:d243, d283:d306, d347:d370"),"#.##0,00 €"
If Intersect(Target, lrgRange) Is Nothing Then Exit Sub
With Target
If .Count = 1 Then
.Value = vntNewValue
End If
End With
ERR_Handler:
Application.EnableEvents = True
End Sub
so klappte es nicht !
mfg kurt k
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format erstellen
28.02.2023 11:30:59
Daniel
Hi
Man kann in VBA in der Regel nur eine Aktion gleichzeitig ausführen.
Du musst erst den Zellbereich der Variablen zuweisen und danach dann das Zahlenformat.
Set lrgRange = Range("d26:d50, d92:d115, d156:d179, d220:d243, d283:d306, d347:d370")
lrgRange.Numberformat = "#.##0,00 €"
Gruß Daniel
Anzeige
Entweder …
28.02.2023 11:40:16
RPP63
Entweder
lrgRange.NumberformatLocal = "#.##0,00 €"
oder
lrgRange.Numberformat = "#,##0.00 €"
Denn schließlich spricht VBA englisch (incl. der entsprechenden Tausender- und Dezimaltrenner).
Wobei ich mich schon frage, warum man einen festen Range immer und immer und immer wieder formatieren soll.
Außerdem:
vntNewValue wird überhaupt nicht gefüllt!
Dein Makro macht nix anderes als jede Änderung sofort wieder zu löschen?
Gruß Ralf
Anzeige
Hallo Ralf hier Antwort
28.02.2023 13:13:00
kurt
Hallo Ralf,
jedes mal wurde das Format geändert, wenn ich die Datei geöffnet hatte so: "€ #.##0,00"
mfg kurt k
Danke an ALLE -)
28.02.2023 13:10:27
kurt
Hallo zusammen.
herzlichen Dank an ALLE.
Ich habe den Vorschlag von Daniel genommen, natürlich mit der Änderung , und . = "#,##0.00 €"
mfg kurt k
AW:Oder
28.02.2023 12:41:29
GerdL
wir verstehen es nicht. :-)
Public Sub Worksheet_Change(ByVal Target As Range)
Dim lrgRange As Range, C As Range
On Error GoTo ERR_Handler
Set lrgRange = Range("b26:b50,b92:b115,b156:b179,b220:b243,b283:b306,b347:b370")
If Intersect(Target, lrgRange) Is Nothing Then Exit Sub
For Each C In Intersect(Target, lrgRange)
    Application.EnableEvents = False
    If C > "" Then
        C.NumberFormat = "#,##0.00 €"
        C.Offset(0, 2) = C.NumberFormat
    Else
        C.Offset(0, 2).ClearContents
    End If
    Application.EnableEvents = True
Next
Set lrgRange = Nothing
ERR_Handler:
If Err.Number > 0 Then Err.Clear
End Sub
Gruß Gerd
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige