Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

VBA: Fehler beim Kompilieren - ungültiger Bezeichner

Hallo zusammen,
vielleicht kann mir einer helfen.Ich bringe mir im Moment selber VBA bei und habe mir eine vermeindlich einfache Aufgabe gestellt, bekomme aber die Fehlermeldung: "Fehler beim Kompilieren - ungültiger Bezeichner".
Ich spiele kein Lotto, möchte aber einemfreund zeigen, dass Lotto die "Steuer der Armen ist". Dafür habe ich mir beim Euro Lotto 6 Spielscheine mit je 8 Feldern mit je 5 Zahlen zzgl. der 2 Gewinnzahlen ausgedacht. Über den 6 Spielscheinen trage ich die Aktuellen Gewinnzahlen in einer Zeile von der betreffenden Woche ein.

Ziel des Makros: Die Zahlen aus den Spielscheinen, die mit den Gewinnzahlen
überienstimmen sollen einfach farblich hervorgehoben werden. Bei Übereinstimmung soll hier die Hintergrundfarbe grün werden. Mehr nicht.
Wo liegt der Fehler? (Hmmm? ich verschachtele For-NextSchleifen mit I-Then-Els-Abfrage - Zulässig???)
Hier der Code:

Sub Lottozahlen()
Dim T(6 To 68, 2 To 6) As Integer, U(2 To 2, 2 To 6) As Integer
Dim i As Integer, j As Integer, k As Integer, l As Integer
For k = 2 To 2
  For l = 2 To 6
    For i = 6 To 68
      For j = 2 To 6
        If T(i, j).Value = U(k, l).Value Then
          T(i, j).Interior.ColorIndex = vbGreen
        Else
          T(i, j).Interior.ColorIndex = vbWhite
        End If
      Next j
    Next i
  Next l
Next k
End Sub


Antworten zu VBA: Fehler beim Kompilieren - ungültiger Bezeichner:

Hallo
hier hast Du meines Erachtens ein paar Fehler gemacht.
T und U sollen ja Arrays sein? Oder Zellen, oder beides?
In der ersten Zeile sind Arrays definiert. Brauchst Du aber nicht, da ist ja nichts eingetragen. Also weglassen.
"T(Zeile,Spalte)" geht ja nicht. Du willst da doch Zellen ansprechen und keine Arrays?
Nun musst Du i, j, k, l nochmal anpassen. Wie Dein Arbeitsblatt aussehen soll, weiß ich ja nicht. Dann sollte es gehen.

 

Zitat
Sub Lottozahlen()
Dim T(6 To 68, 2 To 2) As Variant, U(2 To 2, 2 To 6) As Variant
Dim i As Integer, j As Integer, k As Integer, l As Integer
For k = 2 To 2  'Reihe
  For l = 2 To 6   'Spalte
    For i = 6 To 68   'Reihe
      For j = 2 To 6   'Spalte
        If Cells(i, j).Value = Cells(k, l).Value Then
          Cells(i, j).Interior.Color = vbGreen
        Else
          Cells(i, j).Interior.ColorIndex = 7
        End If
      Next j
    Next i
  Next l

Nochwas.
Colorindex ist eine Zahl.
Color ist z.B. vbGreen

Lieber Gast64,

vielen Dank für die Korrekturhinweise.
Werde mich noch weiter durchkauen, aber bis hier hin funktioniert es schon.

Grüße Didio


« lacht nicht! (VBA Grundwissen?!)Netlogo-Hilfe »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet einen unkompilierten Programm-Code einer Software. Der Quellcode ist meist in einer der verbreiteten Programmierspra...

Unicode
Ein Unicode ist ein "Einheitsschlüssel", der als internationaler Standard gilt. Unicode ist ein digitaler Zeichensatz zur Darstellung von weitestgehend jedem Schrift...

QR-Code
Die Abkürzung QR steht für "Quick Response" und besteht aus einer quadratischen Matrix mit schwarzen und weißen Punktren. Zudem sind auch Striche zu sehen...