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

Zahl in Ergebnis umwandeln

Zahl in Ergebnis umwandeln
15.07.2021 13:37:41
Marc
Hallo zusammen,
kurze Frage: wenn ich verbundene Zellen habe (z.B. A1, A2 und A3) und nun eine Zahl eingebe, ist es dann möglich die Zellen via VBA wieder zu trennen und in A1 eine 11 , in A2 ein Doppelpunkt und in A3 die vorher eingegebene Zahl schreiben zu lassen?
Also quasi so: Ich schreibe in A1 eine 6 rein, und Excel trennt mir die vorher verbundenen Zellen wieder und schreibt dann ein Ergebnis das 11:6 lautet. (A1, A2 und A3)
Geht sowas überhaupt?
Danke für Eure Rückmeldungen.
Gruß Marc

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl in Ergebnis umwandeln
15.07.2021 13:40:49
UweD
Hi
woher kommt die 11?
Ist die vor der Eingabe der 6 bereits in A1 drin?
LG
AW: Zahl in Ergebnis umwandeln
15.07.2021 14:03:09
Marc
Hallo UweD,
erstmal Danke für Deine Rückmeldung.
Es handelt sich um Tischtennisergebnisse. Die Sätze gehen normalerweise immer bis 11. Außer wenn jemand 10 Punkte erreicht hat. Dann muss einer von beiden Spielern 2 Punkte mehr erzielen.
Also jede Eingabe von 0-9 zieht eine 11 in A1 nach sich. Alles andere müsste um +2 erhöht werden.
Bei einer Eingabe von 10, müsste dann z.B. in A1 eine 12 eingetragen werden.
Ich wollte am Anfang nicht zu viel schreiben, sondern erst mal in Erfahrung bringen ob sowas prinzipiell möglich ist.
Beispieldatei kann ich jederzeit einfügen.
Gruß Marc
Anzeige
AW: Zahl in Ergebnis umwandeln
15.07.2021 14:31:04
UweD
Hallo nochmal
gehe einmal wie folgt vor
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Rechts dann das hier reinkopieren

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range, NeuWert As Variant, ZuWert As Integer
Set RNG = Columns(1)
On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
If Not Intersect(RNG, Target) Is Nothing And _
Target.Count = 1 Then
If IsNumeric(Target) Then
If Target.MergeCells Then
ZuWert = IIf(Target >= 10, Target + 2, 11)
With Application
.EnableEvents = False
Target.MergeCells = False
Target.Cells(1, 2) = ":"
Target.Cells(1, 3) = ZuWert
.EnableEvents = True
End With
End If
Else
MsgBox "Fehler: Muss eine Zahl sein"
End If
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
Anders herum
15.07.2021 14:41:42
UweD
sollte ja 11:6 sein

Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range, NeuWert As Variant, ZuWert As Integer
Set RNG = Columns(1)
On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
If Not Intersect(RNG, Target) Is Nothing And _
Target.Count = 1 Then
If IsNumeric(Target) Then
If Target.MergeCells Then
ZuWert = IIf(Target >= 10, Target + 2, 11)
NeuWert = Target
With Application
.EnableEvents = False
Target.MergeCells = False
Target.Cells(1, 1) = ZuWert
Target.Cells(1, 2) = ":"
Target.Cells(1, 3) = NeuWert
.EnableEvents = True
End With
End If
Else
MsgBox "Fehler: Muss eine Zahl sein"
End If
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Zahl in Ergebnis umwandeln
15.07.2021 14:51:36
Marc
Hallo UweD,
misst ich habe mich da total vertan, es geht um A1, B1, C1
Sorry
Gruß Marc
AW: Zahl in Ergebnis umwandeln
15.07.2021 15:23:35
UweD
Keine Ahnung, was du damit jetzt sagen möchtest?
Musterdatei?
AW: Zahl in Ergebnis umwandeln
15.07.2021 18:21:40
Marc
Hallo UweD,
hier mal die Datei.
https://www.herber.de/bbs/user/147142.xlsm
Ab S40 stehen die verkürzten Ergebnisse drin (3, 4 und 5)
In S44 stehen die Ergebnisse wie sie erscheinen sollen. 11:3; 11:4, 11:5)
genial wäre natürlich wenn das auch mit negativen Zahlen gehen würde. (-3, -4, -5 = 3:11, 4:11, 5:11)
Das ganze sollte im gesamten Bereich S40 - AG76 funktionieren.
Gruß Marc
Anzeige
AW: Zahl in Ergebnis umwandeln
16.07.2021 11:33:07
UweD
Hallo nochmal
Soll das ganze automatisch bei der Eingabe in eine Zelle ablaufen, oder soll ein Makro gestartet werden um die alten Eingaben zu ändern?
LG UweD
AW: Zahl in Ergebnis umwandeln
16.07.2021 11:40:40
Marc
Hallo UweD,
prima wäre es, wenn es direkt nach der Eingabe passieren würde, da in anderen Zellen die Sätze und Bälle gezählt werden.
Ich habe gesehen, dass noch viele Fehler auftreten und habe mal alle VBA Makros in der Beispieldatei gelöscht.
Vielen Dank für Deine Mühe.
Gruß Marc
https://www.herber.de/bbs/user/147154.xlsm
AW: Zahl in Ergebnis umwandeln
16.07.2021 12:32:31
UweD
Hallo
so?
In den Codebereich der Tabelle

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
'************** Normieren Ergebnisse
Dim RNG As Range, NeuWert As Variant, ZuWert As Integer
Set RNG = Range("S40:AG76")
If Not Intersect(RNG, Target) Is Nothing Then
If Target.Count  1 Then
MsgBox "Fehler: Zellen einzeln ändern"
GoTo Fehler
End If
If Not IsNumeric(Target) Then
MsgBox "Fehler: Muß eine Zahl sein"
GoTo Fehler
End If
If Target.MergeCells And Range(Target.MergeArea.Address).Count = 12 Then
NeuWert = Target
ZuWert = IIf(Abs(Target) >= 10, Target + 2, 11)
With Application
.EnableEvents = False
.Calculation = xlCalculationManual
'4x3 er Gruppierung aufheben
Target.MergeCells = False
'4er Grupierung 3x neu setzen
Target.Resize(4, 1).MergeCells = True
Target.Offset(0, 1).Resize(4, 1).MergeCells = True
Target.Offset(0, 2).Resize(4, 1).MergeCells = True
'Doppelpunkt in Mitte
Target.Cells(1, 2) = ":"
If NeuWert >= 0 Then 'Positive Eingabe
Target.Cells(1, 1) = ZuWert
Target.Cells(1, 3) = NeuWert
Else 'Negative Eingabe
Target.Cells(1, 3) = ZuWert
Target.Cells(1, 1) = -NeuWert
End If
.EnableEvents = True
.Calculate
End With
Else
MsgBox "Fehler: Verbunde Zellen?"
End If
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Zahl in Ergebnis umwandeln
16.07.2021 12:47:16
Marc
Hallo UweD,
das sieht ja mal genial auf!!!!
Allerdings erscheint wenn ich -10 eingebe ein Ergebnis von 10:-8 anstatt 10:12
Kannst Du da mal bitte nachschauen?
Ansonsten absolut top.
Tausend Dank schon mal im Voraus.
Gruß Marc
AW: Zahl in Ergebnis umwandeln
16.07.2021 13:05:07
UweD
HAllo nochmal
ändere diese Zeile (das 2. Abs() ergänzen

ZuWert = IIf(Abs(Target) >= 10, Abs(Target) + 2, 11)
LG UweD
AW: Zahl in Ergebnis umwandeln
16.07.2021 13:11:53
Marc
Hallo UweD,
ich bin leider gleich bis Sonntag Mittag nicht da.
Werde mich aber wenn ich alles geändert habe (Zellbezüge stimmen teilweise nicht mehr) nochmals bei Dir melden.
Sieht auf jeden Fall prima aus. Den Rest müsste ich selbst hinbekommen.
Vielen vielen Dank bis hierher.
Gruß Marc
Anzeige
AW: Zahl in Ergebnis umwandeln
18.07.2021 16:28:30
Marc
Hallo UweD,
prinzipiell funktioniert Dein Makro.
Allerdings gibt es noch ein paar (leichte?) Probleme.
1. Das Makro funktioniert „nur“ bei den 3 ersten Spielen und dem letzten Spiel (Doppel)
2. Die Eingabe bei den Einzelspielen funktioniert nicht. (Fehler: Verbunde Zellen?)
3. Zudem erfolgt bei Eingabe von -0 (Ergebnis für den Gegner) ein 11:0 und nicht 0:11.
4. Wenn ich den Blattschutz aktiviere funktioniert das Makro gar nicht. (Fehler in Sub „Worksheet_Change“; Fehlernummer: 1004; Die Merge-Cells Eigenschaft des Range Objekts kann nicht festgelegt werden.)
5. Die bedingte Formatierung funktioniert jeweils im dritten Feld nicht mehr. (schwarz statt grau) Siehe angehängte Datei.
Ich habe zwar heute schon einiges ausprobiert, bin aber leider zu keinem Ergebnis gelangt.
Könntest Du da mal bitte nachschauen und ggf. Änderungen einbringen?
Vielen Dank
LG Marc
https://www.herber.de/bbs/user/147179.xlsm
Anzeige
AW: Zahl in Ergebnis umwandeln
18.07.2021 23:48:23
Marc
Hallo UweD,
prinzipiell funktioniert Dein Makro.
Allerdings gibt es noch ein paar (leichte?) Probleme.
1. Das Makro funktioniert „nur“ bei den 3 ersten Spielen und dem letzten Spiel (Doppel)
2. Die Eingabe bei den Einzelspielen funktioniert nicht. (Fehler: Verbunde Zellen?)
3. Zudem erfolgt bei Eingabe von -0 (Ergebnis für den Gegner) ein 11:0 und nicht 0:11.
4. Wenn ich den Blattschutz aktiviere funktioniert das Makro gar nicht. (Fehler in Sub „Worksheet_Change“; Fehlernummer: 1004; Die Merge-Cells Eigenschaft des Range Objekts kann nicht festgelegt werden.)
5. Die bedingte Formatierung funktioniert jeweils im dritten Feld nicht mehr. (schwarz statt grau) Siehe angehängte Datei.
Ich habe zwar heute schon einiges ausprobiert, bin aber leider zu keinem Ergebnis gelangt.
Könntest Du da mal bitte nachschauen und ggf. Änderungen einbringen?
Vielen Dank
LG Marc
https://www.herber.de/bbs/user/147179.xlsm
Anzeige
AW: Zahl in Ergebnis umwandeln
19.07.2021 13:43:45
UweD
Hallo
zu 1 und 2)
Für Spiel 1-3 und 16 hast du jeweils 4 Zeilen verwendet und die in je 3 Spalten zusammen verbunden. (also 12 Zellen)
Genau auf diese 12 Zellen prüft das Makro
Die anderen Spiele sind nur je 2 zeilig. Da blende ich dann die Meldung ein.
Abhilfe:
Alle Spiele gleich aufbauen
oder Makro aufbohren
zu 3) ok. das kann man Ändern
Abhilfe:
das Gleichheitszeichen weglassen

If NeuWert >=0 Then 'Positive Eingabe
zu 4) Das Kombinieren und Trennen von Zellen ist eine Formatänderung. Die hast du aber beim Sperren des Blattes nicht zugelassen
Abhilfe:
den Haken bei "Zellen formatieren" anklicken
zu 5) du hast auf dem Baltt über 150 bedingte Formatierungsregeln eingebaut.
Sorry, aber da sehe ich nicht nach.
Auf den ersten Blick kannst du da einige löschen (Ausgeblendete Zellen brauchen keine Bed. Formatierung) oder zusammenfassen
Nur ein Beispiel: aus 3 Bedingungen
Formel:

$BE$41=1
$BE$41=2
$BE$41=3
Geht eine Bedingung
Formel:

$BE$41>=1 * $BE$41
LG UweD
Anzeige
AW: Zahl in Ergebnis umwandeln
19.07.2021 19:00:40
Marc
Hallo UweD,
erneut danke für Deine Antwort.
Punkt 3: funktioniert.
Punkt 4: habe ich geändert (war ein anderes Makro das ich noch ändern musste da ja die Zellen vorher nicht verbunden waren).
Punkt 5: So war das von mir gar nicht gemeint. Natürlich sollte ich die ganze Arbeit machen. (versuche ic ja auch.....) Mich wunderte ja nur das die Bedingte Formatierung nur in einer Zelle nicht funktioniert und dache Du hättest da eine einfache Erklärung für.
Das mit den Bedingungen zusammenfassen kannte ich nicht. Fällt aber weg, da ich das nur gemacht habe wenn eine falsche Eingabe gemacht wird. (z.B. 10:8 statt 11:8). Dank deines Makros kann das aber entfallen wenn ich die bedingte Formatierung irgendwie hinbekommen habe.
Mit Makro aufbohren meinst Du bestimmt den Bereich
'3er Gruppierung 4x aufheben
Target.MergeCells = False
'4er Grupierung 3x neu setzen
Target.Resize(4, 1).MergeCells = True
Target.Offset(0, 1).Resize(4, 1).MergeCells = True
Target.Offset(0, 2).Resize(4, 1).MergeCells = True
Sehe ich das richtig? Also um die 2er Gruppierung erweitern?
Gruß Marc
AW: Zahl in Ergebnis umwandeln
19.07.2021 22:29:26
Marc
Hallo Uwe D,
hallo alle Anderen,
Das was Du mir geschrieben hast, habe ich umgesetzt und funktioniert prima.
Die Zellen werden aber immer wieder nach der Eingabe gesperrt. Warum weiß ich nicht. (kann ich aber mit leben)
Warum die bedingte Formatierung immer in der 3. Zelle nicht funktioniert, das weiß ich leider nicht und habe schon alles versucht.
Was ich mir vorstellen kann ist, das das Makro eine höhere Priorität besitzt als die bedingte Formatierung.
Wo und was ich in dem Makro dafür ändern muss weiß ich allerdings nicht.
Jedes mal nach Ablauf des Makros ändert sich die bedingte Formatierung.
Vielleicht hat ja irgendjemand hier im Forum eine Lösung oder einen Ansatz dazu. (Farbe ändern via Makro vielleicht o.Ä.)
Würde mich über Antworten oder Fragen sehr freuen.
Gruß Marc
https://www.herber.de/bbs/user/147188.xlsm
AW: Zahl in Ergebnis umwandeln
19.07.2021 23:21:18
Marc
Hallo UweD,
so einfach wie Du mir geschrieben hast, ist das mit Punkt 3 gar nicht.
Wenn ich nun wie Du geschrieben hast bei If NeuWert >=0 Then 'Positive Eingabe das Gleichheitszeichen weglasse, dann kommt zwar bei der Eingabe von -0 ein Ergebnis von 0:11 heraus bei der Eingabe von 0 aber auch. Und bei der Eingabe von 0 soll ja 11:0 angezeigt werden.
Tut mir leid wenn ich Dir auf den Wecker gehen sollte, aber ich bekomme es einfach nicht hin.
Das Makro ist zwar von Dir super übersichtlich erstellt worden, aber wenn ich da irgendetwas ändere kommt ein Fehler nach dem anderen. Soweit bin ich mit VBA Makros noch lange nicht...........
Gruß Marc
AW: Zahl in Ergebnis umwandeln
20.07.2021 10:21:57
UweD
Hallo
Eine Eingabe von -0 wird von Excel sofort zu 0 umgewandelt, da es kein negatives Null gibt.
Ausweg:
- Die Eingabezellen müssen als Text formatiert sein.
- Mit dem nun abgeänderten Makro wird das Minus vorne erkannt.
- Auch habe ich die Prüfung auf 12er und 6er Zellverbund eingebaut

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'    If Target.Address = Range("BX2") Then
'        Call Modul3.LeerzeilenLoeschen_2
'    End If
ActiveSheet.Unprotect
On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
'************** Normieren Ergebnisse
Dim RNG As Range, NeuWert As Variant, ZuWert As Integer
Dim VZ As Boolean, Mcount As Integer
Set RNG = Range("S40:AG100")
If Not Intersect(RNG, Target) Is Nothing Then
If Target.Count  1 Then
MsgBox "Fehler: Zellen einzeln ändern"
GoTo Fehler
End If
If Not IsNumeric(Target) Then
MsgBox "Fehler: Muß eine Zahl sein"
GoTo Fehler
End If
Mcount = Range(Target.MergeArea.Address).Count
If Target.MergeCells And (Mcount = 12 Or Mcount = 6) Then
NeuWert = Target
ZuWert = IIf(Abs(Target) >= 10, Abs(Target) + 2, 11)
VZ = IIf(Left(Target.Text, 1)  "-", True, False) 'Vorzeichen
With Application
.EnableEvents = False
.Calculation = xlCalculationManual
'Gruppierung  aufheben
Target.MergeCells = False
If Mcount = 12 Then
'4er Grupierung 3x neu setzen
Target.Resize(4, 1).MergeCells = True
Target.Offset(0, 1).Resize(4, 1).MergeCells = True
Target.Offset(0, 2).Resize(4, 1).MergeCells = True
ElseIf Mcount = 6 Then
'2er Grupierung 3x neu setzen
Target.Resize(2, 1).MergeCells = True
Target.Offset(0, 1).Resize(2, 1).MergeCells = True
Target.Offset(0, 2).Resize(2, 1).MergeCells = True
End If
'Doppelpunkt in Mitte
Target.Cells(1, 2) = ":"
If VZ Then  'Positive Eingabe
Target.Cells(1, 1) = ZuWert
Target.Cells(1, 3) = NeuWert
Else 'Negative Eingabe
Target.Cells(1, 3) = ZuWert
Target.Cells(1, 1) = -NeuWert
End If
.EnableEvents = True
.Calculate
End With
Else
MsgBox "Fehler bei Verbunden Zellen! Keine 12er oder 6er Blöcke"
End If
End If
ActiveSheet.Protect
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
AW: Zahl in Ergebnis umwandeln
20.07.2021 16:53:00
Marc
Hallo UweD,
klasse und danke dass Du Dir die Mühe gemacht hast. Funktioniert einwandfrei.
Bleibt für mich nur die Frage warum mir Excel wenn das Spiel beendet ist (z.B. 1. Doppel) nur jeweils die ersten beiden Zellen formatiert, die dritte aber nicht.
S40 und T40 geht, U40 nicht.
V40 und W40 geht, X40 nicht
usw.
Formel ist ja richtig.
=ODER($AH$40"";$AJ$40"") Bereich: =$E$40:$S$40;$V$40;$Y$40;$AB$40;$AE$40;$AH$40:$AM$43; $E$41:$R$43
Das verstehe ich nun gar nicht.
Wenn ich den Bereich einzeln festlege: =$E$40;$F$40;$F$42;$L$40;$M$40;$M$42;$S$40;$T$40;$U$40;$V$40;$W$40;$X$40;$Y$40;$Z$40;$AA$40;$AB$40;$AC$40;$AD$40;$AE$40;$AF$40;$AG$40;$AH$40;$AI$40;$AJ$40;$AK$40;$AL$40;$AM$40
ändert mir Excel nach der Makroausführung der Bereich so ab: =$E$40:$F$40;$F$42;$L$40:$M$40;$M$42;$S$40;$V$40;$Y$40;$AB$40;$AE$40;$AH$40:$AM$40
Was mir aufgefallen ist, wenn ich manuell die Schriftfarbe in z.B. rot ändere, dann ändert Excel genau die, die bei der bedingten Formatierung fehlen.
Kommt evtl. vom Makro. Ich weiß es aber nicht.
Vielleicht hat ja jemand hier im Forum eine Idee dazu.
Sonst müsste ich damit leben.
Gruß Marc
AW: Zahl in Ergebnis umwandeln
16.07.2021 11:55:35
Marc
Hallo UweD,
mir fällt gerade etwas ein.
Die alten Ergebnisse tun nix zur Sache.
Ich würde ja wenn die Idee funktioniert, Die jeweiligen Zellen wo jetzt die Ergebnisse drinstehen (bis auf die die erste Zeile) verbinden.
Hoffentlich verstehst Du was ich meine.
Gruß Marc
AW: Zahl in Ergebnis umwandeln
15.07.2021 14:32:58
Daniel
Hi
Prinzipiell ist vieles machbar, aber nicht unbedingt sinnvoll.
Ich würde in A1 die Formel eintragen: =Wenn(A3="";"";max(11;A3+2))
Dann musst du ebenfalls nur die Verliererpunkte in A3 eintragen und A1 wird automatisch befüllt.
Gruß Daniel

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige