Warum kann ich keine Zelle farbig markieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: Versionsunabhängig
nach unten

Betrifft: Warum kann ich keine Zelle farbig markieren
von: Sven
Geschrieben am: 24.05.2002 - 09:59:00

Hallo Leute,
ich bin gerade am durchdrehen, ich hab folgenden Quellcode
Range("M1").Interior.ColorIndex = 2 ' für weiß
Worksheets("Tabelle1").Range(x, g).Copy _
Destination:=Worksheets("Tabelle2").Range("M" & count2)
Sheets("Tabelle2").Select
Range("M1").Interior.ColorIndex = 2
Worksheets("Tabelle1").Range(u).Copy _
Destination:=Worksheets("Tabelle2").Range("A" & count2)
Sheets("Tabelle2").Select
Range("M1").Interior.ColorIndex = 2
WIe ihr seht, hab ich insgesamt 3mal versucht die Zelle M1 zu markieren, überall funktioniert dieser Befehl, vor und nach diesem Auszug. Jedoch nicht an dieser Stelle. Warum ???
nach oben   nach unten

Re: Warum kann ich keine Zelle farbig markieren
von: Martin Beck
Geschrieben am: 24.05.2002 - 10:15:39

Hallo Sven,

Du färbst die Zelle M1 einmal im aktiven Worksheet und zweimal im Sheet "Tabelle2". Im welchem Worksheet soll gefärbt werden?

Läuft der Code fehlerfrei durch und es wird "nur" nicht gefärbt? Oder gibt es eine Fehlermeldung?

Versuch mal

Sheets("Tabelle2").Range("M1").Interior.ColorIndex = 3

zum färben in Tabelle2.

Gruß
Martin Beck


nach oben   nach unten

Re: Warum kann ich keine Zelle farbig markieren
von: Sven
Geschrieben am: 24.05.2002 - 10:29:51

Der Code läuft fehlerfrei durch, nur anscheinend übersieht Excel diese Zeilen zum Färben, es geht einfach nicht.
Dieser Auszug ist in einer IF Anweisung, die fehlerfrei läuft, nur das markieren bestimmter Zellen ignoriert es einfach.
Ich versteh das nicht,.,,,

nach oben   nach unten

Re: Warum kann ich keine Zelle farbig markieren
von: Martin Beck
Geschrieben am: 24.05.2002 - 10:35:13

Hallo Sven,

poste mal den gesamten Code. Und in welcher Tabelle soll gefärbt werden?

Gruß
Martin Beck


nach oben   nach unten

Re: Warum kann ich keine Zelle farbig markieren
von: sven
Geschrieben am: 24.05.2002 - 10:39:11

Sodele, hier ist der gesamte Code :-))

In der Zeile IF Count > p , ab da fängt mein Problem an.Es sollen alle Zellen in der zweiten Tabelle gefärbt werden, die sich von der ersten Tabelle unterscheiden, wenn diese ergänzt werden.Naja, nun ist das ganz ein bissl komplizierter, aber ich komme da einfach nicht weiter
Ich hoffe ma du findest Dich zurecht

Sub profilösung_vergleich2()
'
'
'
Dim i, p, a, q, z, sap, u, n, m, privat, count, count2 As Integer
Dim x, g As String
a = 2 ' i beschreibt die Zelle in der man sich gerade befindet. In diesem Fall am Tabellenanfang der Tabelle 2 .Zeile 2
i = 2 ' i beschreibt die Zelle in der man sich gerade befindet. In diesem Fall am Tabellenanfang der Tabelle 1 .Zeile 2
sap = 1 / 2 ' Der Wert sap wird auf 1 gesetzt, damit die erste Bedingung erfüllt ist. Dieser Wert beschreibt ansonsten den Wert der Personalnummern
count = 0 ' Ist ein Zähler, der die Versuche zählt, bis die Personr. identisch sind.
p = 0 ' p ist ein Zähler, der das Ende der zweiten Tabelle bestimmen soll, an das dann die nicht identifizierbaren Datensätze hintendran gehängt werden
z = 2
q = 2


Do While Worksheets("Tabelle1").Range("A" & z) = 0 ' das ist ein Zähler, den ich eingebaut habe um die Variable i genau zu bestimmen, da die erste personalnummer der tabelle1 nicht immer genau in der 2. zelle steht.
z = z + 1 ' nach jedem durchgang wird z um eins erhöht, und demnach i auch
Loop


i = z


Do While Worksheets("Tabelle2").Range("A" & q) = 0 ' das ist ein Zähler, den ich eingebaut habe um die Variable a genau zu bestimmen, da die erste personalnummer der tabelle2 nicht immer genau in der 2. zelle steht.
q = q + 1 ' nach jedem durchgang wird q um eins erhöht, und demnach a auch
Loop


a = q
p = q

Do While Worksheets("Tabelle2").Range("A" & p) > 0 ' p ist die anzahl der zellenj vom anfang der tabelle bis zum ende
p = p + 1
Loop
'MsgBox p
count2 = p ' Das ist der Zähler für nicht vorhandene Personalnummern. Die Datensätze werden ab dem Ende der Tabelle hinzugefügt. Hier ab Zelle 11


Do While sap > 0 ' Wiederhole die Schleife solange, bis der wert sap > 0 ist, da das Ende der Tabelle mit einer leeren Zelle mit dem Wert 0 gekennzeichnet ist
If privat = 0 Then a = q ' wenn der wert der Zelle privat in der zweiten Tabelle 0 ist, d.h. wenn diese leer ist und somit die Tabelle endet, muss ich wieder nach oben gehen an den Anfang gehn, um vergleichen zu können


If count > p Then ' Ich habe hier einen Zähler eingefügt,für den Fall, dass eine Personalnummer nicht vorhanden ist
'wenn der zähler größer als p ist, dann



x = "B" & i 'gehe zu Tabelle eins, dann gehe in die spalte B und das Feld i
g = "K" & i ' und gehe zur Spalte K mit dem Zusatz i
u = "A" & i
m = "M" & count2
n = "V" & count2
' Workbooks.Open FileName:="\\RM2MS000052\U_behlings$\data\externeTABELLE.xls"
' Sheets("Tabelle2").Select
' Sheets("Tabelle2").Select
' Range("A1").Interior.ColorIndex = 2 ' für weiß
Worksheets("Tabelle1").Range(x, g).Copy _
Destination:=Worksheets("Tabelle2").Range("M" & count2)
Worksheets("Tabelle1").Range(u).Copy _
Destination:=Worksheets("Tabelle2").Range("A" & count2)
Sheets("Tabelle2").Range("M1").Interior.ColorIndex = 3

' Kopiere die informationen von dem intervall x und g, und
'füge diese an die tabelle2 an Spalte M hinzu in der Zelle count2
count2 = count2 + 1 ' count2 ist ein Zähler, den ich eingebaut habe, damit, falls mehrere Personalnummern nicht verglichen werden können,
'nicht alle nicht vorhandenen Personalnummern an der selbe Stelle hinzugefügt werden, sondern immer eine Zeile tiefer



i = i + 1 ' Wenn ich einen Datensatz hinzugefügt habe, muss ich in der Tabelle 1 eine Zeile tiefer, damit ich die nächste Personalnummern mit den in der Tabelle 2 vergleichen kann





count = 0 ' wenn ein neues element kommt, dann muss der zähler count auf null gesetzt werden, da sonst beim nächsten versuch eine andere personalnummer einer anderen zuzuweisen, diese schon vorbelastest wäre, d.h. wenn 2 Personr. vorhanden sind, und ich aber jedesmal 5 versuche
' brauche um diese zu finden, dann würde die P.Nr als nicht gefunden als Datensatz in der 2.Tabelle hinzugefügt werden


End If



Sheets("Tabelle2").Select
' für die nachfolgenden Variable wird die Tabelle 2 ausgesucht
privat = Range("a" & a).Value2
' die variable privat ist der wert der in der zelle a1 steht
MsgBox sap & " wird verglichen mit " & privat ' gibt den wert der zelle a wieder, wo sich sap befindet und der wert der zelle privat die mit sap verglichen wird, für bessere Übersichtlichkeit




If sap = privat Then
' nur wenn sap=privat ( d.h. der Wert der Zelle der Personalnummer in Tabelle 1 identisch mit der in Tabelle 2 ist, dann gilt folgender prozess
x = "B" & i ' x ist Tabelle eins, Spalte B mit der Zellennummer i
g = "K" & i ' g ist Tabelle eins, Spalte K mit der Zellennummer i

Sheets("tabelle1").Select ' wählt die Tabelle eins aus um folgende Daten zu markieren
Worksheets("Tabelle1").Range(x, g).Copy _
Destination:=Worksheets("Tabelle2").Range("M" & a)
'Hier wird nun wieder die Informationen des Intervalls von x und g markiert und kopiert und in der 2ten Tabelle an die Spalte M in der Zelle a hinzugefügt

a = a + 1 ' da die jetzige Zelle a in der Tabelle2 gerade gefüllt wurde, muss ich in die nächste Zelle, als eine "höher"
i = i + 1 ' die Personalnummer war ja identisch, also gehe ich hier zur nächsten Personalnummer in der Tabelle 1
count = 0 ' der Zähler count wird hier wieder auf null gesetzt, damit alle PNummern mit der in der zweiten zweiten Tabelle verglichen werden kann.in diesem Fall 10 mal







Else
a = a + 1 ' wenn die sap=privat anweisung nicht erfüllt ist, dann gehe in die nächste Zeile in Tabelle 2 und vergleiche diesen Wert, deshalb erhöhe a
count = count + 1

End If ' Ende der If sap = privat Anweisung






Sheets("Tabelle1").Select
sap = Range("A" & i).Value2
' der variablen sap wird der wert, der in der zelle
' a1 auf blatt 1 ist zugewiesen



Loop ' Das ist das Ende der Do While....Loop Anweisung
Sheets("tabelle2").Select ' Um sich das Ergebnis direkt anzugucken, ist es sinnvoll in die Tabelle 2 zu gehn

End Sub ' Ende des Programms


nach oben   nach unten

Re: Warum kann ich keine Zelle farbig markieren
von: Martin Beck
Geschrieben am: 24.05.2002 - 10:57:35

Hallo Sven,

in der Tat, etwas kompliziert. Da kann ich mich jetzt nicht "durchbeißen". Aber noch eine Frage: Ist denn die Bedingung

If count > p

überhaupt erfüllt? Schreibe unmittelbar danach mal die Zeile

MsgBox "Hallo"

um dies zu testen.

Gruß
Martin Beck

nach oben   nach unten

Re: Warum kann ich keine Zelle farbig markieren
von: sven
Geschrieben am: 24.05.2002 - 11:02:18

Ja klar, das Programm geht erst in diese Bedingung wenn count größer als p ist. Weil ich unten einen Zähler eingebaut habe, der nach ein paar Versuchen größer als p wird, ist diese Bedingung erfüllt.
Naja, ma gucken ob ich da weiter komme, trotzdem vielen Dank.
Evtl. kannst du mir sagen, ob es eine möglichkeit gibt Matrizen zu vergleichen und die unterschiede farblich zu markieren ..

nach oben   nach unten

Re: Warum kann ich keine Zelle farbig markieren
von: Sven
Geschrieben am: 24.05.2002 - 11:19:47

Ahhh ich habe den Fehler entdeckt, sehr ärgerlich,
du hattest recht, er geht nur beim ersten Programmstart in die Schleife.
Wenn ich das Programm ein zweites Mal ausführe, geht er nicht mehr in die Schleife rein, da in diesem Fall die Personnummern
schon vorhanden sind.
Danke danke danke !!!!!!!!

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Warum kann ich keine Zelle farbig markieren"