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

Zelle aktivieren ?

Zelle aktivieren ?
Walter
Guten Morgen zusammen,
ich kopiere Zahlen aus einer CSV Datei in meine Excel Tabelle.
In der Tabelle habe ich ein Change-Ereignis hinterlegt,
die Zelle hat eine bestimmte Farbe.
Ich kann nur dieses Ereignis auslösen wenn ich jetzt Händig in die
Zelle gehe/anklicke mit F2 und mit Enter verlasse.
Kann man diesen Prozess per Makro ausführen ?
mfg Walter

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zelle aktivieren ?
16.11.2009 10:11:48
hary
Moin Walter
Teste mal Deinen Code im:
Private Sub Worksheet_Calculate()
Ereigniss.
Hilft's, ich weiss ja nicht ob Du das Change Ereigniss anderweitig brauchtst.
gruss hary
Geht nicht...
16.11.2009 10:45:31
Walter
Guten Morgen Hary,
geht leider nicht mein Makro sieht so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Column = 12 And Not Target.Column = 13 Then Exit Sub
If Cells(Target.Row, 12) "" Then
Range(Cells(Target.Row, 1), (Cells(Target.Row, 10))).Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
Cells(Target.Row, 12).Select
' MsgBox "Wert drin"
' Application.Calculation = xlCalculationAutomatic
Else
...
mfg walter
Anzeige
AW: Geht nicht...
16.11.2009 11:07:35
JogyB
Hi.
Wenn Du kopierst, dann ist das Target der komplette kopierte Bereich. Du mußt die Zellen schon einzeln prüfen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim zeLLe As Range
Dim pruefRng As Range
' Die Prüfung auf Spalte 13 ist nur sinnvoll, wenn in Spalte 12 eine Formel steht
' die sich auf Spalte 13 bezieht
Set pruefRng = Intersect(Target, Range("L:M"))
If pruefRng Is Nothing Then Exit Sub
' Pruefung nur in den relevanten Spalten
For Each zeLLe In pruefRng
If Cells(Target.Row, 12)  "" Then
With Range(Cells(Target.Row, 1), (Cells(Target.Row, 10))).Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
Cells(Target.Row, 12).Select
' MsgBox "Wert drin"
' Application.Calculation = xlCalculationAutomatic
Else
End If
Next
End Sub
Gruss, Jogy
Anzeige
AW: Geht nicht...
16.11.2009 11:58:37
Walter
Hallo JogyB,
leider das GLEICHE wie vorhin.
Kann man den nicht Zelle für Zelle die Aktion
durchlaufen lassen ?
Wenn ich mit F2 in die Zelle gehe, wird anschließend z.b. die Zelle, das Datum
ROT angezeigt.
Ich finde es umständlich, wenn ich das in den 230 Zellen einzeln tun muß.
mfg Walter
AW: Geht nicht...
16.11.2009 12:12:20
JogyB
Hi.
Seltsam, bei mir läuft das. Nur rot wird zumindest mit dem Code ganz sicher nichts, ColorIndex 15 ist grau.
Der Fehler scheint mir in einem Codeteil zu hängen, der hier nicht vorhanden ist.
Gruss, Jogy
Leider immer noch nicht --))
16.11.2009 12:45:31
Walter
Hallo Jogy,
das lass ich es so. Bei mir klappt es nicht.
Wenn ich die Datumswerte reinkopiere, keine Änderung, ist nicht so
tragisch.
mfg Walter
Anzeige
AW: Leider immer noch nicht --))
16.11.2009 12:52:00
JogyB
Hi.
Sorry, hatte nen blöden Fehler drin und es immer nur mit einer Zeile probiert... mach es mal so:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim zeLLe As Range
Dim pruefRng As Range
If Target.Address = Range("rID").Address Then Me.Range("C12") = "Top"
' Die Prüfung auf Spalte 13 ist nur sinnvoll, wenn in Spalte 12 eine Formel steht
' die sich auf Spalte 13 bezieht
' UsedRange tut der Laufzeit gut, sonst macht das beim Kopieren/Löschen
' von ganzen Spalten diese bis Zeile 65536
Set pruefRng = Intersect(Target, Range("L:M"), UsedRange)
If pruefRng Is Nothing Then Exit Sub
Application.ScreenUpdating = False
' Pruefung nur in den relevanten Spalten
For Each zeLLe In pruefRng
If Cells(zeLLe.Row, 12)  "" Then
With Range(Cells(zeLLe.Row, 1), (Cells(zeLLe.Row, 10))).Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
' MsgBox "Wert drin"
' Application.Calculation = xlCalculationAutomatic
Else
End If
Next
Application.ScreenUpdating = True
End Sub

Gruss, Jogy
Anzeige
Colorindex
16.11.2009 12:52:55
Rudi
Hallo Jogy,
ColorIndex 15 ist grau

das muss nicht so sein. Die Farbpalette kann man anpassen.
Gruß
Rudi
AW: Colorindex Ja Rot ist...
16.11.2009 14:10:53
Walter
Hallo Rudi und Jogy,
ist alles RICHTIG. Ich habe die Zelle als Rot über Bedingte Formatierung,
makiert.
Grau ist die Zeile komplett wenn man in der Zelle der Spalte "L" ein Datum
eingegeben hat.
Wenn ich aber aus einer CSV Tabelle die Datumswerte einfüge, werden die Zellen
nicht ROT makiert, wenn das Datum > als das akt. Datum ist.
Wenn ich also dann in die Zelle gehe mit "F2" und drücke dann ENTER,
wird die Zelle Rot, sofern die Bedingung erfüllt wurde.
mfg Walter
Anzeige
AW: Colorindex Ja Rot ist...
16.11.2009 14:46:22
JogyB
Hi.
Entschuldige bitte, aber lies Dir mal durch, was Du bisher geschrieben hast... steht da irgendwas davon, dass Du eine bedingte Formatierung verwendest? Wi sollen wir helfen, wenn Du das Problem nicht richtig beschreibst?
Ich kann Dein Problem unter Excel 2003 nicht nachvollziehen, da wird es gleich korrekt eingefärbt.
Hast Du uns eine Beispieldatei?
Gruss, Jogy
Du hast leider RECHT ...
16.11.2009 15:45:08
Walter
Hallo Jogy,
Du hast leider RECHT, ich habe das ganze Falsch geschildert.
Ich versuche es nochmals. Bitte vergiss das andere vorher, war blöd von mir.
Ich habe mal aufgezeichnet:
Range("L8").Select
ActiveCell.FormulaR1C1 = "11/13/2009"
Range("L9").Select
also bin in die Zelle L8 gegangen, habe "F2" gedrückt u. mit Enter bestätigt.
Mehr nicht, da es vorher eine Textzahl war (aus CSV ) wird jetzt eine Zahl.
mfg Walter
Anzeige
AW: Du hast leider RECHT ...
16.11.2009 16:13:08
JogyB
Hi.
Dann scheint wohl das Problem zu sein, dass es das nicht als Datum erkennt.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim testRng As Range
Dim zeLLe As Range
Set testRng = Intersect(Target, Columns(12), UsedRange)
If testRng Is Nothing Then Exit Sub
' Bildschirmupdate aus, sonst flackert es
Application.ScreenUpdating = False
' Events aus, da jede Änderung unten das wieder
' aufrufen würde
Application.EnableEvents = False
For Each zeLLe In testRng
If IsDate(zeLLe) Then
zeLLe.Value = CDate(zeLLe.Value)
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
' Noch berechnen, das passiert aufgrund der
' ausgeschalteten Events sonst nicht
Me.Calculate
End Sub

Teste das mal.
Gruss, Jogy
Anzeige
Leider
16.11.2009 16:42:31
Walter
Hey JogyB,
habe so reingesetzt, in die Tabelle (Makro) leider keine Reaktion
auch F9 gedrückt, nichts.
Kann man sowas nicht mit einem Makro durchführen, welches im
Modul liegt, ich habe kein Problem damit, ein Commandbutton zu drücken.
Wie gesagt, wenn ich die Zelle aktiviere und dann Enter drücke, ist es so
wie ich es brauche,
mfg Walter
AW: Leider
16.11.2009 17:13:46
JogyB
Hi.
Ist jetzt alles schwer nachzuvollziehen... kannst Du mal zwei Beispieldateien hochladen, also die Zieltabelle inkl. bedingter Formatierung und eine CSV, bei der das Problem auftritt?
Gruss, Jogy
Danke für die Hilfe -)
18.11.2009 15:38:49
Walter
Hey Jogy,
danke für die Hilfe. Habe jetzt überlegt ob ich es Händig eintrage, ist zwar etwas arbeit,
na ja mach es einfach.
mfg walter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige