Anzeige
Archiv - Navigation
1860to1864
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

an UweD VBA Hilfe

an UweD VBA Hilfe
17.12.2021 08:15:11
Antonio
Hallo UweD,
du hast mir den Code für die Zellen Färbung gegeben.
https://www.herber.de/bbs/user/149862.jpg
Wiw du im Bild oben sehen kannst es funzt ganz gut. Aber nur wenn in Spalte "BB" eine Zahl steht der bis "10" geht.
Sobald eine "11" oder höher steht ist die Färbung inkorrekt:
https://www.herber.de/bbs/user/149863.jpg
Das liegt daran das auf dem Griffbrett ab Bund "12" die Töne sich wiederholen.
Dein Code weis nicht welche er nehmen soll und entscheidet sich für die erste gefundene Töne, es sind die gleiche Töne aber für die Darstellung des Akkordes Falsch da ungreifbar.
Hättest du hier eine Verbesserung des Codes?
Vielen Dank Im Voraus
Antonio

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Link
17.12.2021 09:00:39
Antonio
Danke SF für die aufmerksamkeit.
AW: Link
17.12.2021 09:18:18
UweD
Hallo
hast du nochmal eine aktuelle Musterdatei.
LG UweD
AW: Link
17.12.2021 10:42:25
UweD
Hallo
so?
Ich frage den Wert in BB auch ab. Grenze liegt bei 11

Option Explicit
Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RNGAsw As Range, RNGA As Range, RNGB As Range, RNGC As Range
Dim RNG1 As Range, RNG11 As Range, RNG12 As Range, RNG2 As Range, RNG3 As Range
Dim Sp As Integer, Z As Integer, i As Integer, Such As Variant
Dim RNGBF As Range, BF As Integer, BFGrenz As Integer, Anz As Integer
Set RNGAsw = Range("Z:BJ") 'Reaktionsbereich
Set RNGA = Range("AG:AL") 'Midi
Set RNGB = Range("AN:AS") 'Note
Set RNGC = Range("AU:AZ") 'TonHöhe
Set RNG11 = Range("B3:M8") 'bis 11
Set RNG12 = Range("N3:V8") 'ab 11
Set RNG2 = Range("B11:V16")
Set RNG3 = Range("B19:V24")
Set RNGBF = Range("BB:BB") 'BaseFret Bereich
BFGrenz = 11 'Doppelte Noten ab
If Not Intersect(RNGAsw, Target) Is Nothing Then
If Target.Rows.Count > 1 Then
MsgBox "Nur eine Zeile auswählen"
Exit Sub
End If
Z = Target.Row
'Reset
Union(RNG11, RNG12, RNG2, RNG3).Interior.Pattern = xlNone
' Suchen in Midi
For i = 6 To 1 Step -1
Such = Intersect(RNGA.Rows(Z), RNGA.Columns(6 - i + 1)).Value
If Such  "x" And Such  "" Then
Sp = WorksheetFunction.Match(Such, RNG2.Rows(i), 0)
With Intersect(RNG2, RNG2.Rows(i), RNG2.Columns(Sp))
.Interior.Color = 65280
End With
End If
Next
' Suchen in Note
BF = Intersect(RNGBF, Rows(Z)).Value 'BaseFred
For i = 6 To 1 Step -1
Such = Intersect(RNGB.Rows(Z), RNGB.Columns(6 - i + 1)).Value
If Such  "x" And Such  "" Then
Anz = WorksheetFunction.CountIf(Union(RNG11, RNG12).Rows(i), Such)
If Anz = 1 Then
Set RNG1 = Union(RNG11, RNG12)
Else
If BF >= BFGrenz Then
Set RNG1 = RNG12
Else
Set RNG1 = RNG11
End If
End If
Sp = WorksheetFunction.Match(Such, RNG1.Rows(i), 0)
With Intersect(RNG1, RNG1.Rows(i), RNG1.Columns(Sp))
.Interior.Color = 65280
End With
End If
Next
' Suchen in Tonhöhe
For i = 6 To 1 Step -1
Such = Intersect(RNGC.Rows(Z), RNGC.Columns(6 - i + 1)).Value
If Such  "x" And Such  "" Then
Sp = WorksheetFunction.Match(Such, RNG3.Rows(i), 0)
With Intersect(RNG3, RNG3.Rows(i), RNG3.Columns(Sp))
.Interior.Color = 65280
End With
End If
Next
End If
End Sub
LG UweD
Anzeige
AW: Link
17.12.2021 10:55:12
Antonio
Hallo UweD,
es klappt super bei alle Zeilen, nur in Zeile "31" will nicht, sollte man die Grenze runtersetzen?
LG
Antonio
Korrektur
17.12.2021 11:06:49
Antonio
....nur wenn in "BB" ein "10" steht und der Akkord über 3 bis 4 Bünde geht....
LG
....bin am montag wieder online....
17.12.2021 11:40:22
Antonio
SW
LG
Antonio
AW: ....bin am montag wieder online....
17.12.2021 17:09:26
Luschi
Hallo Antonio,
warum die Unterscheidung zwischen 'A#' und 'B' - bei 'E' und ' F' machst Du sie ja auch nicht, dann müßte ja da stehen: E-E#-F
Ich kenne kein Klavier, das dafür 2 verschiedene Tasten hat und auch bei der Posaune / Trompete usw. gibt es dafür keine besondere Zug-
bzw. Ventilposition.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Korrektur
17.12.2021 11:41:23
UweD
Hallo
Ich bin kein Musiker. Das Alles sagt mir recht wenig
Was gibt es denn für ein EINDEUTIGES Kriterium, wenn die Noten 2x vorkommen,
dass dann der hintere Teil zum Suchen genommen werden soll?
Userbild
Userbild
die 10 kann es ja nicht sein. Da kommen 2 unterschiedliche Bereiche zum Tragen
AW: Korrektur
20.12.2021 07:41:31
Antonio
Hallo UweD,
zu deine vorige Frage:
A#-B ist OK!
A - A# - B - C hier ist A# der halbe Ton zwischen A und B, man kann ihn auch Bb schreiben, das heißt A# und Bb sind der selbe Ton.
B - C : halber Ton
E - F : halber Ton
Wenn du auf "W5" Flats auswählst siehst du den Unterschied.
Zu diese Fragestellung:
das kommt davon das eine Tonart 12 Töne hat, und das Griffbrett länger ist, ab der 12. Bund wiederholen sich die Töne. (Du sollst hier nicht Musik Unterricht haben). Dann ist mir klar das der Code Probleme hat zu suchen und nimmt das erste in der Zeile.
Wie wärs wenn ich den Bereich Blau markiert mit einen Index versehe? Sagen wir ein Punkt "."
LG
Antonio
Anzeige
AW: Korrektur
22.12.2021 06:59:50
Luschi
Hllo Antonio,

A - A# - B - C
ist immer noch falsch, denn das geht so:

A - A# - B - H - C
wobei A# und B der selbe Ton sind.
10 Jahre Pionier- und Jugendblasmusik können da nicht irren!
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige