Differenz zweier markierter Zellen in einer Spalte
#1
Hallo zusammen.

wie kann ich über VBA folgendes erreichen?

Ich mache per Doppelklick auf z.B. A7 eine Kopie des Wert dieser Zelle nach B1.
Dann das gleiche mit Z.B. A15 nach B2.

Nur weiß ich nicht wie ich Excel sagen soll,
dass der erste Doppelklick nach B1 geht und der 2. Doppelklick nach B2.

Ist das überhaupt möglich die Anzahl der Doppelklicks zu zählen?

Danach muss der Zähler wieder auf Null gehen, damit es wieder von vorne beginnt.

Vielen Dank für eine VBA Idee dazu.
Antworten Top
#2
Also soll abwechselnd in B1/B2 geschrieben werden, verstehe ich das richtig? Eine simple Lösung (wenn auch nicht „sauber“) wäre eine globale Variable vom Typ Range, in der du das letzte Ziel sicherst.
Antworten Top
#3
Wie meinst du das mit "Ziel sicherst"?
Antworten Top
#4
Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, C As Boolean)
If T.Column = 1 Then
  [C1] = [C1] + 1
  If [C1] Mod 2 Then [B1] = T Else [B2] = T
  C = True
End If
End Sub

Den Betreff hast Du nicht ganz getroffen.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#5
Hallo Achim,

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Len(Range("B2")) Then
    Range("B1").Value = Target.Value
    Range("B2") = ""
  Else
    Range("B2").Value = Target.Value
  End If
  Cancel = True
End Sub

Gruß Uwe
Antworten Top
#6
(05.05.2023, 20:06)maine-coon schrieb: Wie meinst du das mit "Ziel sicherst"?
Man „sichert“ Werte programmintern, indem man sie in Variable packt. 

Pseudocode:

PHP-Code:
Public as Range

Event DoubleClick
(Target)
   If t is Nothing then 
      set T 
Range („B1“)
   ElseIf T.Address „$B$1“ then
      Set t 
Range(„B2“)
   Else
      Set t 
Range („B1“)
   End if
T.value Target.Value 
Antworten Top
#7
Vielen Dank an alle.
Es funktioniert einwandfrei.

Schönen Abend noch.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste