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

bedingte formatierung

Forumthread: bedingte formatierung

bedingte formatierung
05.05.2020 10:53:25
Sonja
Hallo zusammen,
gibt es eine Möglichkeit als bedingte Formatierung das Zahlenformat individuell anzupassen? Je nachdem, was in einer weiteren Zelle in der entsprechenden Zeile steht.
Beispiel: (das Ergebnis soll immer 3-stellig sein und die Info aus Spalte A berücksichtigt werden)
A1 steht "NA" - Eingabe B1 "1" - Ergebnis Zahlenformat in B1 = NA001
A2 steht "AR" - Eingabe B2 "2" - Ergebnis Zahlenformat in B2 = AR002
A3 steht "RR" - Eingabe B3 "11" - Ergebnis Zahlenformat in B3 = RR011
A4 steht "SR" - Eingabe B4 "100" - Ergebnis Zahlenformat in B4 = SR100
(Ich weiß, dass die Möglichkeit der Verkettung existiert - da müsste ich aber noch eine weitere Spalte einpflegen, was ich eigentlich nicht will.)
Wahrscheinlich ist es mal wieder ganz einfach - ich lass mich überraschen.
Grüße
Sonja
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: standardmäßig so nicht möglich ...
05.05.2020 11:08:23
neopa
Hallo Sonja,
... oder nur dann wenn die Datenwerte in Spalte A fix sind, sich also nicht verändern. Mit VBA sicherlich realisierbar, aber damit beschäftige ich mich nicht.
Wobei ich momentan nicht wirklich nachvollziehen kann, was gegen eine zusätzliche Spalte spricht in der Du eine entsprechende Verkettung wie =A1&TEXT(B1;"000") vornimmst.
Gruß Werner
.. , - ...
Anzeige
AW: standardmäßig so nicht möglich ...
05.05.2020 11:15:58
Sonja
Hallo Werner,
das liegt daran, dass der Anwender (der nach Fertigstellung dieser Monster-Tabelle hoffentlich nicht nur ich bin) sich dann möglicherweise überfordert fühlt. Die entsprechenden Spalten kann ich ja nicht ausblenden, da ich die Möglichkeit der Eingabe ja brauche. Ich danke dir auf jeden Fall für deine Mühe, jetzt weiß ich wenigstens, dass ich mit dem Tüfteln aufhören kann. Unglaublich eigentlich, dass Excel was nicht kann.
Schönen Tag
Anzeige
AW: bedingte formatierung
05.05.2020 11:15:23
KlausFz
Hallo Sonia,
einfach ist das nicht - sogar unmöglich!
Benutzerdefinierte Zahlenformate sehen das Anhängen(!) eines festen Textes(!) vor.
Also einen Zellbezug in das Format einfügen geht nicht, und dann noch vorneanstellen erst recht nicht!
Bleibt nur VBA oder doch die Hilfsspalte.
Bei VBA bin ich dann, wie Werner, erst mal aus dem Rennen;-(((
Gruß!
Klaus
Anzeige
AW: bedingte formatierung
05.05.2020 11:29:35
excelsocke
Hallo Sonja
Ich habe es mit VBA gelöst.
Auf Excel Ebene wie meine Vorredner nur mit Hilfsspalte.
Mein Code lautet:
Sub test()
For a = 1 To 4
Cells(a, 2) = Cells(a, 1) & Application.Text(Cells(a, 2), "000")
Next a
End Sub
Ich habe einen Button erstellt und diesem das Makro zugewiesen.
Nach der Eingabe deiner Werte den Button anklicken.
Hoffe dir Helfen zu können.
Gruß Jörg
Anzeige
AW: bedingte formatierung
05.05.2020 11:44:05
MRUTor
Hallo,
Dein Ansatz ist gut.
Aber da sie schon keine Hilfsspalte moechte, wird sie sicher auch keinen Button einbauen wollen. Ausserdem vermute ich, dass die Formatierung nach Eingabe in B erfolgen soll, aber nicht in einer Schleife ueber alle Zeilen, sondern nur fuer die jeweilige Zeile, wo der Eintrag erfolgt. Also dann so im Worksheet_Change Ereignis:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Application.EnableEvents = False
Target = Target.Offset(0, -1) & Application.Text(Target, "000")
Application.EnableEvents = True
End If
End Sub

Gruss Tor
Anzeige
AW: bedingte formatierung
05.05.2020 11:47:57
Sonja
Hallo Jörg,
Ich erstelle eine Liste, in der unterschiedliche Dokumente abgelegt und permanent nach dem jeweiligen Status verwalten werden. Diese Liste lebt und verändert sich ständig. Es kommen im Laufe eines Projekts auch viele, viele Zeilen zusammen.
Muss ich bei deinem Vorschlag dann in jeder Zeile eine Schaltfläche einbauen? Oder gibt es deinen Code auch individuell (also so, dass er auf alle vorhandenen Zeilen anspricht und seine Arbeit macht), je nach dem wie lang die Tabelle ist?
Gruß Sonja
Anzeige
AW: bedingte formatierung
05.05.2020 11:56:56
MRUTor
Hallo Sonja,
schau dir bitte meinen Code an. Da brauchst du keinen Button. Er springt immer an, wenn in Spalte B ein Eintrag erfolgt und mit Enter abgeschlossen wird oder eine andere Zelle mit der Maus angewaehlt wird nach der Eingabe.
Der Code kommt ins Codefenster der jeweiligen Tabelle.
Gruss Tor
Anzeige
AW: bedingte formatierung
05.05.2020 12:18:07
Sonja
Hallo Tor,
danke für Deinen Code - aber die Verkettung mit den vorangestellten Buchstaben haut leider nicht hin. Die Auswirkung ist lediglich, dass er die eingegebene Zahl dreistellig erweitert.
Gruß Sonja
AW: bedingte formatierung
05.05.2020 12:28:59
MRUTor
Kann ich nicht nachvollziehen. Bei mir funktioniert das.
Hier mal ne kleine Beispieldatei.
https:\/\/www.herber.de/bbs/user/137273.xlsm
Gib in B deine Nummer ein.
Gruss Tor
Anzeige
AW: bedingte formatierung
05.05.2020 12:39:43
Sonja
Hallo Tor,
es geeeeht. Mein Fehler - ich dachte ich muss den Tabellennamen ändern. Es läuft ICH DANKE DIR !!!!!
Liebe Grüße auch an alle anderen Helfer.
Sonja
gerne und danke fuer die Rueckmeldung
05.05.2020 12:43:51
MRUTor
AW: bedingte formatierung
05.05.2020 12:10:11
excelsocke
Hallo Sonja
Versuch es mal so:
Sub test()
letzteZeile = Sheets("Tabelle1").Range("B" & Rows.Count).End(xlUp).Row
For a = 1 To letzteZeile
Cells(a, 2) = Cells(a, 1) & Application.Text(Cells(a, 2), "000")
Next a
End Sub
Ändere bei Sheets("Tabelle1") tabelle1 in den tatsächlichen Name
Range("B" die Spalte in der Gezählt werden soll
Die Formelzeile
letzteZeile = Sheets("Tabelle1").Range("B" & Rows.Count).End(xlUp).Row
zählt wieviele Zeilen vorhanden sind.
Hoffe geholfen zu haben
Gruß Jörg
Anzeige
Wolltest du nicht eine Formatierung, ...
05.05.2020 14:48:22
Luc:?
…Sonja?
Bisher wurden dir doch nur TextErzeugungen angeboten! Mit einer EreignisProzedur ala MRUTor sähe eine reine FormatErzeugung so aus (d.h., die eingetragene Zahl bleibt eine echte Zahl):
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const zielSp As Long = 2
Dim ziel As Range
If Target.Column = zielSp Or Target.Column = zielSp - 1 Then
For Each ziel In Target
If Target.Column = zielSp Then
ziel.NumberFormat = """" & ziel.Offset(0, -1) & """000"
Else: ziel.Offset(0, 1).NumberFormat = """" & ziel & """000"
End If
Next ziel
End If
End Sub
Diese Prozedur bietet auch noch den Vorteil, den ganzen Zahlenblock auf 1× mit diesem Format versehen zu können, falls die Zahlen bereits eingetragen sind (dann einfach alle kopieren und an gleicher Stelle wieder aufkopieren). Außerdem wird auch auf Änderungen der Spalte A reagiert.
Problematisch könnte es nur wdn, wenn dadurch zuviele verschiedene ZahlenFormate entstehen. Dann bliebe dir nur noch die TextErzeugung.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: Wolltest du nicht eine Formatierung, ...
05.05.2020 16:09:13
Sonja
Hallo Luc,
so kurz vor dem Feierabend nochmal ins Forum geschaut...
Mein Gott, wo nehmt ihr dieses Hirn her? Ich habe keine Ahnung, wie man das verstehen kann. Ihr seid alle super und ohne euch, könnte ich eh schon lange einpacken.
Die Lorbeeren werde ich aber einheimsen, wenn die Tabelle fertig ist.
Ich freu mich, Dein Code ist noch der bessere (wie du schon schreibst, alles bleibt bei einer echten Zahl). Damit werde ich arbeiten.
Vielen Dank nochmal euch ALLEN.
Sonja
Anzeige
Bitte sehr! ;-) Langjährige Erfahrung! owT
05.05.2020 17:21:44
Luc:?
:-?
;

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