Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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
Zahlenformat automatisch anpassen
25.02.2021 15:05:33
Sonja
Hallo Excel-Freaks,
ich bin mal wieder am verzweifeln. Ich habe von euch im Mai letzten Jahres folgenden Code bekommen. Er funktioniert auch in den anderen Tabellenblättern wunderbar. Aber jetzt - in einem weiteren Tabellenblatt nicht mehr - und ich verstehe nicht warum. Mein Ziel ist es, dass ich in der Userform in einer Textbox eine Zahl eingebe z.B. 1
Bei der Übernahme in die Tabelle (in Spalte I), soll nachgeschaut werden, welches Kürzel vergeben werden soll z.B. RIS - die Info hierzu steht 4 Spalten weiter rechts (also Spalte M).
Ergebnis soll sein, dass eine "echte" Zahl erhalten bleibt und in der Ansicht soll stehen: RIS001
Ich kann die Vergabe des Kürzels erreichen, wenn ich in der entsprechenden Zelle auf F2 drücke und die Eingabe nochmal bestätige. Das ist aber umständlich und soll so nicht sein (wein).
Ich interpretiere:
'Const zielSp As Long = 9 (Spalte I)
'ziel.NumberFormat = """" & ziel.Offset(0, 4) & """000" (4 Zellen rechts vom Ausgangspunkt also Spalte M)
hier mein Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const zielSp As Long = 9
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, 4) & """000"
Else: ziel.Offset(0, 1).NumberFormat = """" & ziel & """000"
End If
Next ziel
End If
End Sub

Ich hoffe so sehr, dass ihr mir helfen könnt.
Danke schon mal vorab.
Gruß Sonja

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlenformat automatisch anpassen
25.02.2021 23:15:19
Yal
Hallo Sonja,
die Reaktion ist auf das Ändern (oder allgemein Editieren) von einer Wert in den Spalte 9 und 8 (I und H) ausgelegt, aber nicht auf das Ändern von Wert in der Spalte M. Daher muss man abfangen, wenn was in Spalte M passiert.
Private Sub Worksheet_Change(ByVal Target As Range)
Const Sp1 = 8  'H
Const Sp2 = 9  'I
Const Sp3 = 13 'M
Dim ziel As Range
Dim Z As Range
'Wenn in Spalte H was geändert wurde, Format in Splate I auf Basis Inhalt Spalte H anpassen
'(auch wenn Zelle in Spalte H leer ist?)
Set ziel = Intersect(Target, Cells(1, Sp1).EntireColumn)
If Not ziel Is Nothing Then
For Each Z In ziel.Cells
Z.Offset(0, 1).NumberFormat = """" & Z & """000"
Next
End If
'Wenn in Spalte I was geändert wurde, Format in Splate I auf Basis Inhalt Spalte M anpassen
'(auch wenn Zelle in Spalte M leer ist?)
Set ziel = Intersect(Target, Cells(1, Sp2).EntireColumn)
If Not ziel Is Nothing Then
For Each Z In ziel.Cells
Z.NumberFormat = """" & Z.Offset(0, 4) & """000"
Next
End If
'Wenn in Spalte M was geändert wurde, Format in Splate I auf Basis Inhalt Spalte M anpassen
'(auch wenn Zelle in Spalte M leer ist?)
Set ziel = Intersect(Target, Cells(1, Sp3).EntireColumn)
If Not ziel Is Nothing Then
For Each Z In ziel.Cells
Z.Offset(0, -4).NumberFormat = """" & Z & """000"
Next
End If
End Sub

VG
Yal
Anzeige
AW: Zahlenformat automatisch anpassen
26.02.2021 11:10:58
Sonja
Hallo Yal,
ich habe jetzt alle 3 Möglichkeiten versucht. Es haut einfach nicht hin. Was ich überhaupt nicht kapiere ist, dass mein Code in den anderen 3 Tabellenblättern einwandfrei läuft ?!? Das einzige was ich verändert habe ist, eine Spalte vor I einzufügen. Das heißt, dass sich die Bezüge jeweils um eine Spalte nach rechts verschoben haben. Wärend des Einlesens der Userform in die Tabelle kann ich beobachten, dass das Kürzel gewählt wird. Es erscheint für kurze Zeit die richtige Formatierung! Wenn das Einlesen abgeschlossen ist, steht nur noch eine 3-stellige Zahl da. also z.B. 009 anstatt RIS009. Und wie gesagt, wenn ich mit F2 in die Zelle klicke und Enter drücke, dann steht die Zahl in ihrer ganzen Pracht da.
Es ist zum heulen...
LG
Sonja
Anzeige
AW: Zahlenformat automatisch anpassen
26.02.2021 16:04:24
Yal
Hallo Sonja,
ja, auf genau diesen Verhalten wollte ich hinweisen mit mein Kommentar "auch wenn Zelle in Spalte H/M leer ist?"
Hier das Coding, das das berücksichtigt:
Private Sub Worksheet_Change(ByVal Target As Range)
Const Sp1 = 8  'H
Const Sp2 = 9  'I
Const Sp3 = 13 'M
Dim ziel As Range
Dim Z As Range
'Wenn in Spalte H was geändert wurde, Format in Splate I auf Basis Inhalt Spalte H anpassen
Set ziel = Intersect(Target, Cells(1, Sp1).EntireColumn)
If Not ziel Is Nothing Then
For Each Z In ziel.Cells
If Z  "" Then Z.Offset(0, 1).NumberFormat = """" & Z & """000"
Next
End If
'Wenn in Spalte I was geändert wurde, Format in Splate I auf Basis Inhalt Spalte M anpassen
Set ziel = Intersect(Target, Cells(1, Sp2).EntireColumn)
If Not ziel Is Nothing Then
For Each Z In ziel.Cells
If Z.Offset(0, 4)  "" Then Z.NumberFormat = """" & Z.Offset(0, 4) & """000"
Next
End If
'Wenn in Spalte M was geändert wurde, Format in Splate I auf Basis Inhalt Spalte M anpassen
Set ziel = Intersect(Target, Cells(1, Sp3).EntireColumn)
If Not ziel Is Nothing Then
For Each Z In ziel.Cells
If Z  "" Then Z.Offset(0, -4).NumberFormat = """" & Z & """000"
Next
End If
End Sub
VG
Yal
Anzeige
AW: Danke - passt jetzt
02.03.2021 10:13:50
Sonja
Hallo Yal,
leider etwas zeitverzögert aber dennoch vielen Dank. Ich hab es jetzt geschafft.
Einen sonnigen Frühling
Sonja

19 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige