Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
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

Bestimmtes Format wenn

Bestimmtes Format wenn
walli
Hallo zusammen,
ich brauch ein Zahlenformat in der Spalte "C".
Wenn in der Zelle z.b. B10 ein "B.." oder ein "Q..." anfängt,
soll das Zahlenformat z.b. in "C10" ### ## ## sein.
Wenn in der Zelle B10 ein "A.. oder N.." als Eingabe anfängt,
soll das Zahlenformat 000 000 00 00 werden.
mfg Walli
AW: Bestimmtes Format wenn
23.02.2010 15:24:50
hary
Hallo Walli
Beispiel:
Formel ist: =ODER((LINKS(B2;1)="B");(LINKS(B2;1)="Q"))
und dementsprechendes benutzer Format
gruss hary
das zweite entsprechend aendern(A und N)
Das geht doch nicht
23.02.2010 15:44:31
walli
Hey Hary,
ich kann in bedingte Formatierung nur Schrift,
Rahmen und Muster einstellen.
mfg walli
...Bis xl11 ist das auch so, das hat Hary...
23.02.2010 16:00:47
Luc:-?
…offensichtl nicht bedacht, Walli…
Bis xl11 geht zwar auch so manches mit der „normalen“ Formatierung, aber nicht so etwas. Dafür würdest du VBA benötigen. Da es sich bei B… und Q… um echte Zelleinträge zu handeln scheint, müsste das auch unter Nutzung der Ereignisprozedur …_Change machbar sein: Zellinhalt der relevanten Zellen abfragen und das .NumberFormatLocal der relationalen Zellen durch entsprd String-Eintrag ändern. Ein Grundgerüst bekommst du, wenn du eine manuelle Änderung mal mit dem Recorder aufzeichnest…
Gruß Luc :-?
Anzeige
AW: ...Bis xl11 ist das auch so, das hat Hary...
23.02.2010 16:13:05
walli
Hallo Luc,
hast RECHT.
Habe mal aufgezeichnet.
Sub Makro2()
wenn also in spalte B ein "B.. oder Q .. " anfängt das Format:
Range("C39").Select
Selection.NumberFormat = "### ## ##"
wenn also in spalte B ein "A.. oder N .." anfängt das Format:
Range("C40").Select
Selection.NumberFormat = "000 000 00 00"
End Sub
Kannst Du mir ein Change-Makro dazu als Muster mal senden ?
mfg Walli
Ja, mal aus dem Stegreif, weil ich hier...
23.02.2010 16:46:23
Luc:-?
…auf Linux bin, Walli… ;-)
Also zuerst im VBEditor-Baumverzeichnis auf das entsprechende TabBlatt klicken, so dass der VBE quasi seine „Rückseite“ zeigt (nennt man Dokument-Klassenmodul des Tabellenblattes). Oben hast du ja dann die beiden Auswahl-Dropdown-Menüs. Auf dem linken Worksheet einstellen → schwupps wird da auch schon eine EventProc angelegt. ich glaube, das ist auch schon die richtige. Wenn nicht, im rechten Menü die richtige auswählen und die andere wieder entfernen. Um diese Prozz nicht allzusehr zu belasten, treffe ich in diesen stets nur eine Vorauswahl und rufe dann ggf ein normales Makro auf, also ungefähr so…
If Not Intersect(Target, Range("derrelevanteaktionsbereich")) Is Nothing Then _
Call FormatKorrektur(Target)
Das bitte entsprechend präzisiert in die leere PgmZeile einfügen.
Dein Makro änderst du dann wie folgt…
Sub FormatKorrektur(FormatQuellZelle As Range)
If FormatQuellZelle Like "[BQ]*" Then
Rem wenn also in spalte B ein "B.. oder Q .. " anfängt das Format:
Range("C39").NumberFormat = "### ## ##"
ElseIf FormatQuellZelle Like "[AN]*" Then
Rem wenn also in spalte B ein "A.. oder N .." anfängt das Format:
Range("C40").NumberFormat = "000 000 00 00"
End If
End Sub
Das müsste es dann auch schon gewesen sein…
Viel Erfolg! Gruß, Luc :-?
Anzeige
Leider funktioniert nich
23.02.2010 17:06:39
walli
Hey Luc,
super danke aber es klappt leider nicht.
In der Spalte B stehen die Buchstaben gefolgt mit Nummern, ich sehe den Bezug
nicht oder ich bin halt...
mfg Walli
Das müsste aber,...
23.02.2010 17:51:09
Luc:-?
…Walli,
denn FormatQuellZelle Like "[BQ]*" bedeutet, dass der Wert in der an die Subroutine übergebenen Zelle mit B bzw Q (groß geschrieben, sonst musst du in die eckige Klammer noch bq einfügen) anfängt und sich dann beliebig oder auch nicht (*) fortsetzt. Wenn nach B/Q immer und nur Zahlen kommen, kannst du auch "[BQ]#*" schreiben. Die Klammer steht nur für 1 Zeichen, also B oder Q, der * steht für 0 bis beliebig viele beliebige Zeichen, # steht für eine beliebige Ziffer. Kannst du in der VBE-Hilfe unter Operator Like nachlesen.
Aber evtl fkt es ja aus einem anderen Grund nicht. Teste das mal im Debug-Modus schrittweise und teile das Ergebnis mit, falls erforderlich…!
Gruß Luc :-?
Anzeige
AW: @ Luc
23.02.2010 18:31:27
hary
Hallo Luc
macht er auch. Hab mal eine Beispielmappe hochgeladen, in der Dein Code jetzt so aussieht.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B1:B200")) Is Nothing Then _
Call FormatKorrektur(Target)
End Sub

Sub FormatKorrektur(FormatQuellZelle As Range)
If FormatQuellZelle Like "[BQ]*" Then
'Rem wenn also in spalte B ein "B.. oder Q .. " anfängt das Format:
FormatQuellZelle.Offset(0, 1).NumberFormat = "### ## ##"
ElseIf FormatQuellZelle Like "[AN]*" Then
'Rem wenn also in spalte B ein "A.. oder N .." anfängt das Format:
FormatQuellZelle.Offset(0, 1).NumberFormat = "000 000 00 00"
End If
End Sub

gruss hary
Anzeige
Ja, danke, Hary, hatte ich ja auch so...
24.02.2010 00:57:49
Luc:-?
…erwartet… ;-)
Das Target-Zellenzählen hielt ich bei …_Change für überflüssig, da man ja nicht mehrere Zellen gleichzeitig ändern kann. Bei …_SelectionChange kann das aber wichtig sein, je nachdem wie der PgmCode angelegt ist!
Gruß Luc :-?
AW: Leider funktioniert nich
23.02.2010 18:27:16
hary
Hallo
Walli
hab mal Luc's Code genommen. Jetzt kannst Du in SpalteB eintragen und das Format in C aendert sich.
Ich weiss aber nicht ob es schon bei der Eingabe anspringen soll oder ob Du hinterher, also Zahlen sind schon drin, brauchst.
https://www.herber.de/bbs/user/68204.xls
gruss hary
Anzeige
Absolut Klasse, Hary u. Luc
23.02.2010 19:57:20
walli
Hallo Luc u. Hary,
genau das brauch ich.
Die Funktion soll ausgeführt werden, sobald man einen
Buchstaben und/ oder eine Zahl nachher eingibt,
mfg Walli
Na, dann...gut Change! ;-) Gruß owT
24.02.2010 00:59:19
Luc:-?
:-?
AW: stimmt!!... das hat Hary...
23.02.2010 16:45:28
hary
Hallo Luc und T'schuldigung Walli
unterschlagen. Springe wie'n Känguruh zwischen 2007 und juenger2007 hin und her. Um zu lernen, dabei kann das raus. funzt aber ;-))))
gruss hary

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige