Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2 kleine Makro fragen.

2 kleine Makro fragen.
26.07.2005 14:45:24
Ben
Hi,
folgendes Makro ist der Ausgangspunkt:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Interior.ColorIndex
Case 15
Target.Interior.ColorIndex = 4
Target.Value = "J"
Cells(1, 1).Select
Case 4
Target.Interior.ColorIndex = 6
Target.Value = "K"
Cells(1, 1).Select
Case 6
Target.Interior.ColorIndex = 3
Target.Value = "L"
Cells(1, 1).Select
Case Else
Target.Interior.ColorIndex = 15
Target.Value = ""
Cells(1, 1).Select
End Select
End Sub

Funktioniert so weit einwandfrei nur würd ich gern wissen:
1. gibts ne Möglichkeit einfach deselect zu sagen anstatt select A1?
Hintergrund ist das er ne Eingabe erwartet nach nem Doppelclick.
2. Wie bring ich es hin das es nur auf eine bestimmte Spalte ab einer
gewissen Zeile funktioniert? HAbs mit 2 if Abfragen auf Target getestet
aber nicht hinbekommen.
Danke
Ben

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 kleine Makro fragen.
26.07.2005 14:57:56
Peter
Servus,
zu 1)Am Ende des Code must du cancel=true einsetzten.
zu 2)Am Anfang des Codes sowas wie If Target.column 1 then exit sub 'Spalte A
MfG Peter
Danke für die Lösung zu 1.) (o.t.)
26.07.2005 15:15:04
Ben
.
AW: 2 kleine Makro fragen.
26.07.2005 15:01:53
Heinz
Hallo Ben,
zu 2:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B1:C17")) Is Nothing Then
Select Case Target.Interior.ColorIndex
Case 15
Target.Interior.ColorIndex = 4
Target.Value = "J"
Cells(1, 1).Select
Case 4
Target.Interior.ColorIndex = 6
Target.Value = "K"
Cells(1, 1).Select
Case 6
Target.Interior.ColorIndex = 3
Target.Value = "L"
Cells(1, 1).Select
Case Else
Target.Interior.ColorIndex = 15
Target.Value = ""
Cells(1, 1).Select
End Select
End If
End Sub

zu 1:
entweder:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B1:C17")) Is Nothing Then
Select Case Target.Interior.ColorIndex
Case 15
Target.Interior.ColorIndex = 4
Target.Value = "J"
Application.SendKeys "{Esc}"
Case 4
Target.Interior.ColorIndex = 6
Target.Value = "K"
Application.SendKeys "{Esc}"
Case 6
Target.Interior.ColorIndex = 3
Target.Value = "L"
Application.SendKeys "{Esc}"
Case Else
Target.Interior.ColorIndex = 15
Target.Value = ""
Application.SendKeys "{Esc}"
End Select
End If
End Sub

oder einfach unter Extras-Optionen-Berechnen die direkte Zellbearbeitung deaktivieren.
Gruß
Heinz
Anzeige
Danke für die Lösung zu 2.) (o.t.)
26.07.2005 15:16:14
Ben
.
AW: 2 kleine Makro fragen.
26.07.2005 15:02:14
Andi
Hi,
zu 1:
im aktiven Blatt muss immer eine Zelle selektiert sein, Dein Code funktioniert ja auch, wenn der Doppelklick nicht grad in Zelle A1 ausgeführt wird.
Wenn Du das auch noch umgehen willst, dann zB so:
ActiveCell.Offset(0, 1).Select
Dann wird immer die Zelle rechts neben der doppel-geklickten selektiert; eine Eingabe wird nicht mehr erwartet.
zu 2:
zB so:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
if target.column <> 5 then exit sub
if target.row < 10 then exit sub
End Sub

dann geht's nur in Spalte E ab Zeile 10
Schönen Gruß,
Andi
Anzeige
AW: 2 kleine Makro fragen.
26.07.2005 15:04:51
Peter
Hallo Ben,
Nur Spalte C und Zeilen 12 bis 25 würde so gehen


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Column <> 3 Or _
      Target.Row < 12 Or _
      Target.Row > 25 Then Exit Sub
   Select Case Target.Interior.ColorIndex
      Case 15
         Target.Interior.ColorIndex = 4
         Target.Value = "J"
      Case 4
         Target.Interior.ColorIndex = 6
         Target.Value = "K"
      Case 6
         Target.Interior.ColorIndex = 3
         Target.Value = "L"
      Case Else
         Target.Interior.ColorIndex = 15
         Target.Value = ""
   End Select
   
   Cancel = True
End Sub


Viele Grüße Peter
Das Forum lebt auch von den Rückmeldungen.
Anzeige
Sieht jetzt wie folgt aus:
26.07.2005 15:19:18
Ben

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("H6:H35")) Is Nothing Then
Select Case Target.Interior.ColorIndex
Case 15
Target.Interior.ColorIndex = 4
Target.Value = "J"
Case 4
Target.Interior.ColorIndex = 6
Target.Value = "K"
Case 6
Target.Interior.ColorIndex = 3
Target.Value = "L"
Case Else
Target.Interior.ColorIndex = 15
Target.Value = ""
End Select
Cancel = True
End If
End Sub

Thx an alle, Funktioniert 1A!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige