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

Makro beim anklicken ausführen

Makro beim anklicken ausführen
31.08.2020 11:12:04
Manuel
Hallo zusammen,
ich habe ein Problem. Ich weiß dieses Thema gab es so in der richtung schon öffters aberzu meinen spezifischen Problem habe ich nichts gefunden.
Und zwar möchte ich ein Abgleich zwischen zwei Zellen machen wenn in eine geklickt wurde.
Habe dazu diesen kurzen Code geschrieben:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lngR As Long
Dim lngC As Long
If Not Application.Intersect(Target, Range("C8:J32")) Is Nothing Then
lngR = ActiveCell.Row
lngC = ActiveCell.Column
If Selection.Value  Sheets("Randomplanvergleich").Cells(lngR, lngC).Value Then
Sheets("Randomplanvergleich").Cells(lngR, lngC).Interior.Color = vbRed
End If
End If
End Sub

Mein Problem ist nun aber das wenn ich das so ausführe ich einen Abgleich nicht mit der gerade veränderten Zelle mache sondern mit der, bei Enter, zb der darunterliegenden.
Hat jemand eine Idee?
Habe gerade einen Konten im Kopf.
Viele Grüße
Manuel

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

Betreff
Datum
Anwender
Anzeige
Selection.Offset(1,0) ist die Zelle darunter owT
31.08.2020 11:17:00
Matthias
AW: Selection.Offset(1,0) ist die Zelle darunter owT
31.08.2020 11:25:37
Manuel
Daran habe ich auch gedacht aber es kann ja auch sein das der Anwender nicht enter klickt sondern das Feld mit Tab oder einen klick in ein anderes Feld verlässt. Dann würde das nicht mehr Funktionieren.
das hat nichts mit Tab oder Enter zu tun
31.08.2020 11:33:15
Matthias
Dein Code lautet:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Der wird immer ausgeführt wenn eine Zelle ausgewählt wird.
Wenn Du willst das die Zelle unter Target(also der Zelle die ein Ereignis auslöst)
musst Du Target.offset(1,0)benutzen.
Aber nicht im Worksheet_SelectionChange sondern im Worksheet_Change
Gruß Matthias
Anzeige
AW: Ich versuche es nochmal zu erklären.
31.08.2020 11:53:03
Manuel
Vielen Dank schonmal für deine Mühe!
Ich habe beides schon probiert und beides liefert das gleiche Ergebnis.
Ich versuche es nochmal zu erklären:
Egal ob Worksheet_SelectionChange oder Worksheet_Change ich klicke in eine Zelle, dort wird etwas verändert und erst beim verlassen der Zelle wird das Makro ausgeführt.
Das bedeutet, so wie ich den Code geschrieben habe Funltioniert er nicht, weil ich zB. in Zelle A1 etwas ändere und zum verlassen auf C34 klicke. Jetzt läuft das Makro und vergleicht nicht A1 mit dem dazugehörigen Feld sondern C34 mit dem dazugehörigen Feld.
Deshalb kann der Ansatz mit den Offset nur bei einer Enter Eingabe zum verlassen benutzt werden.
Viele Grüße
Manuel
Anzeige
AW: Ich versuche es nochmal zu erklären.
31.08.2020 12:18:30
Matthias

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target = "Hallo, Abgleich mit " & Target.Address
Application.EnableEvents = True
End Sub
Egal wie Du die Zelle verlässt (Enter, Tab, auch Mausklick in andere Zelle) es wird Target angesprochen.
Die Zelle die Du geändert hast.
AW: Selection.Offset(1,0) ist die Zelle darunter owT
31.08.2020 12:10:57
peterk
Hallo

Option Explicit
Public LastCell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not LastCell Is Nothing Then
Debug.Print LastCell.Address
If Not Application.Intersect(LastCell, Range("C8:J32")) Is Nothing Then
With Worksheets("Randomplanvergleich")
If LastCell.Value  .Cells(LastCell.Row, LastCell.Column).Value Then
.Cells(LastCell.Row, LastCell.Column).Interior.Color = vbRed
End If
End With
End If
End If
Set LastCell = Target
End Sub

Anzeige
was schreibst Du mir das?
31.08.2020 12:14:28
Matthias
.
AW: was schreibst Du mir das?
31.08.2020 12:17:34
peterk
Hallo
Sorry, hab mich im Level geirrt
AW: Betreff und Problembeschreibung, mangelhaft
31.08.2020 11:46:33
EtoPHG
Hallo Manuel,
XL Profi + VBA gut? Geht wohl etwas an der Realität vorbei.
Warum gibt dein Betreff eine Lösung vor?
Deine Problembeschreibung:
Und zwar möchte ich ein Abgleich zwischen zwei Zellen machen wenn in eine geklickt wurde.Und zwar möchte ich ein Abgleich zwischen zwei Zellen machen wenn in eine geklickt wurde.
...und was ist mit der zu vergleichenden Zelle? Wurde die auch geklickt? Oder soll sie programmatisch ermittelt werden? Was sind die Regeln, für die Auswahl der 2 zu vergleichenden Zellen? Sind das immer Einzelzellen, oder können es auch verbundene Zellen sein?
Probleme genau zu beschreiben, geben einem oft schon Hinweise auf mögliche Lösungsansätze.
Also bitte das Ganze von Vorn.
Gruess Hansueli
Anzeige
AW: Makro beim anklicken ausführen
31.08.2020 12:18:27
peterk
Hallo Manuel

Option Explicit
Public LastCell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not LastCell Is Nothing Then
If Not Application.Intersect(LastCell, Range("C8:J32")) Is Nothing Then
With Worksheets("Randomplanvergleich")
If LastCell.Value  .Cells(LastCell.Row, LastCell.Column).Value Then
.Cells(LastCell.Row, LastCell.Column).Interior.Color = vbRed
End If
End With
End If
End If
Set LastCell = Target
End Sub

AW: Makro beim anklicken ausführen
31.08.2020 12:35:35
Manuel
Hey peterk,
vielen Dank, das hilft mir sehr!
Habe jetzt nur ein kleines Problem mit dem ersten Durchlauf. Der wird nicht übernommen aber da kann ich jetzt weiter überlegen.
Viele Grüße und einen schönen Montag
Manuel
Anzeige
AW: Makro beim anklicken ausführen
31.08.2020 12:50:18
Rudi
Hallo,
du verwendest das falsche Ereignis und falsche Objekte.!!!
ActiveCell ist nicht die geänderte Zelle.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C8:J32")) Is Nothing Then
If Target.Count = 1 Then
With Sheets("Randomplanvergleich").Range(Target.Address)
If Target.Value  .Value Then
.Interior.Color = vbRed
End If
End With
End If
End If
End Sub
Denk mal über dein Level nach.
Gruß
Rudi

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige