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

Code zu schwierig

Code zu schwierig
05.03.2023 10:31:59
Antonio
Hallo Liebe Gemeinde,
ich habe voe einiger Zeit ein Code von "snb", der leider sich nicht mehr meldet.
https://www.herber.de/bbs/user/158121.xlsm
hier die Mappe,
ich habe mich im Code durchgekämfpt und finde die Stelle nicht.
in "M5" steht 2,3,4 für die Töne des Akkords "Am7"
ich würde gerne mehr Töne vergeben zB.: 2,3,4,5,6
und entsprechend in "F3" : A2,E3,G3,C4,E4,G4,
aber wo das zu ändern ist finde ich nicht,
es ist mir aufgefallen das wenn in "F3" mehr Töne vergebe geschiet nichts,
es werden nach wie vor immer 3 Töne genommen.
Wenn aber in "M5" mehr Zahlen vergeben werden zB.: 2,3,4,5,6 dann
"Index außerhalb des gültigen Bereich".
Kann eventuell jemand darüber schauen und mir die Stelle sagen wo ich was ändern Kann?
In "M5" können max. 3 unterschiedlich lang String:
2,3,4
2,3,4,5
2,3,4,5,6
Vielen Dank im Voraus
LG Antonio

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code zu schwierig Nachtrag
05.03.2023 10:38:25
Antonio
Wenn Ihr die Spalte "G:G" löscht
und Makro laufen lasse wird das Resultat sichtbar.
Wenn andere Lösungen gibt, bin auch sehr dankbar.
LG Antonio
AW: Code zu schwierig Nachtrag
05.03.2023 12:11:01
ralf_b
Typischer Fall von "selbst Schuld"
Manchmal, wie in deinem Fall, ist es eben nicht ratsam sich den kompliziertesten Code zu nehmen, den man bekommt.
Nur weil er vielleicht ein paar Zeilen kürzer ist und auf rätselhafte Weise funktioniert.
Er verwendet keine Variablendeklarationen, verzichtet auf nachvollziehbare Variablennamen und schreibt keine Kommentare.
snb macht kurze, passende Codes, die ein Laie aber nicht kapiert. Das ist sein Markenzeichen, wenn ich das so sagen darf.
Wenn dein Programm noch nicht fertig ist und sich Änderungen ergeben, landest du deshalb wieder und wieder hier.
snb wird sich schon wieder melden.
Anzeige
AW: Code zu schwierig Nachtrag
05.03.2023 14:37:38
Antonio
Hallo ralf,
sorry wir haben schönes wetter und war spazieren,
du hast vollkommen recht,
das war aber der einzige Code den ich bekommen hatte,
habe selber viel daraus herausgefunden und im meinem Programm damit kommentiert.
dieser Abschnitt ist für mich sehr wichtig
und wenn du meinst: "snb wird sich schon wieder melden. " da stehe ich schon wieder da um alles verstehen zu können.
daher:
"Wenn andere Lösungen gibt, bin auch sehr dankbar." wäre mir lieber wenn ich selber alles nachvollziehen kann:
Aber danke für deine Rückmeldung
LG Antonio
AW: Code zu schwierig Nachtrag
05.03.2023 15:17:57
ralf_b
du könntest nach dieser Zeile
  If sq(0) > "." Then    

das hier einfügen und sehen was passiert On Error Resume Next
Anzeige
AW: Code zu schwierig Nachtrag
05.03.2023 15:23:10
Antonio
Hallo ralf,
es funzt, aber ich steige trotzdem nicht durch,
und einfach es hinzunehmen ohne zu verstehen ist feige.
Hast du den Code verstanden? (blöde Frage)
Was hast du bewirkt mit "On Error Resume Next" ?
LG Antonio
AW: Code zu schwierig Nachtrag
05.03.2023 16:01:36
ralf_b
die Antwort darauf kannst du aber auch selbst recherchieren. Das Forum ist kein Chatersatz.
WerteAusZelleSpalteF(Wert - 1) oder st(it - 1) erzeugt einen Fehler. Die Zeile überspringt das.
Sub M_snb()
    BereichFbisG = Cells(1, 2).Resize(60, 6)
    ' Debug.Print sn.Address
    spalteM = Range("M3:M10")
   
    n = 3
    For j = 3 To 6                                                  'von Zeile 3 - 6 für Beispieldaten
        WerteAusZelleSpalteF = Split(BereichFbisG(j, 5), ",")         'Zerlegung der Inhalte von Zelle ab Zeile 3 in Spalte 6 (F) sn beginnt bei B
        BereichFbisG(n, 6) = BereichFbisG(j, 1)                     'Inhalt spalte B Zeile ab j=3 wird in Spalte 6(G) n=3 geschrieben
        n = n + 1                                                   'Zeile erhöhen um 1
        For jj = 2 To UBound(spalteM)                               'Schleife über die Einträge in M
            BereichFbisG(n, 6) = "."                                ' Punkt in Spalte G schreiben
            WerteVonZellenAusM = Split(spalteM(jj, 1), ",")         'Zellinhalt von Spalte M wird zerlegt ab Zeile 3
            If WerteVonZellenAusM(0) > "." Then                    ' nur wenn kein Punkt vorne dran ist
                On Error Resume Next
                For Each Wert In WerteVonZellenAusM                        ' Schleife über die einzelnen Werte
                    BereichFbisG(n, 6) = BereichFbisG(n, 6) & "," & WerteAusZelleSpalteF(Wert - 1)  'Umsortierte Werte aus Spalte F nach G
                Next
                On Error goto 0
                BereichFbisG(n, 6) = Mid(BereichFbisG(n, 6), 3)               'in Spalte G führender Punkt und Komma enfernen
            End If
            n = n + 1                                              'nächste Zeile
        Next
    Next
    Cells(1, 2).Resize(60, 6) = BereichFbisG   'bearbeitetes Array in Blatt zurückschreiben
End Sub

Anzeige
AW: VIELEN VIELEN DANK
05.03.2023 16:35:03
Antonio
Hallo ralf....
du hast es ungemein verständlicher gemacht,
dafür danke ich dir
LG Antonio
AW: VIELEN VIELEN DANK
05.03.2023 16:40:10
ralf_b
ja und ich hab mich verschrieben BereichFbisG muß heissen BereichBbisG
AW: VIELEN VIELEN DANK
05.03.2023 16:50:17
Antonio
Lieber ralf....
hatte schon gemerkt.
Danke nochmal
Liebe Grüße
Antonio

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige