Herbers Excel-Forum - das Archiv

Targetadress Zelle bestimmen


Betrifft: Targetadress Zelle bestimmen
von: Johannes

Geschrieben am: 18.09.2019 16:32:29
Hallo VBA-Kenner,
ich habe folgendes Makro

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 15 Then
Target = Date
Cancel = True
End If
If Target.Column = 16 Then
Target = Date
Cancel = True
End If
If Target.Column = 17 Then
Target = Date
Cancel = True
End If
End Sub

Nun zu meinem Anliegen: ich würde gern wenn ich Doppelklick auf eine Zelle in Spalte 16 mache ebenso den Wert in Spalte 15 auf das aktuelle Datum ändern, !wenn diese noch leer! ist. Das Gleiche eben auch für Spalte 17 mit Spalte 15&16.
Bin leider noch sehr unerfahren mit dieser Programmierung und bitte daher euch um Hilfe.
Vielen Dank
Gruß Johannes

Betrifft: AW: Targetadress Zelle bestimmen
von: 1713709.html
Geschrieben am: 18.09.2019 16:38:01
Hi
Du kannst ausgehend von Target andere Zellen mit .Offset erreichen
Target.Offset(0, -1).Value = Date
Gruß Daniel

Betrifft: für mich noch nicht ganz eindeutig ...
von: 1713718.html

Geschrieben am: 18.09.2019 17:32:52
Hallo
Nehmen wir mal an in Spalte(16) steht das Datum 17.09.2019
Spalten(15)&(17) sind leer.
Nun machst Du einen Doppelklick in Spalte(16)
Soll nun das Datum 17.09.2019 in Spalte(16) stehen bleiben
und Spalten(15)&(17) bekommen das Datum von heute,
oder soll das Datum von heute auch in Spalte(16) geschrieben werden?


Ich habs jetzt mal so umgesetzt.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Rng As Range
Select Case Target.Column
Case 15 To 17
For Each Rng In Range(Cells(Target.Row, 15), Cells(Target.Row, 17))
If Rng = "" Then Rng = Date
Next
Cancel = True
Case Else
'mach niox
End Select
End Sub

Gruß Matthias

Betrifft: AW: für mich noch nicht ganz eindeutig ...
von: 1713817.html

Geschrieben am: 19.09.2019 10:06:00
Vielen Dank Matthias für deine Mühe.
Meinte mein Makro ein wenig anders hab es so umgesetzt
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 14 Then
Target = Date
Cancel = True
End If
If Target.Column = 15 Then
Target = Date
If Target.Offset(0, -1).Value = "" Then
Target.Offset(0, -1).Value = Date
End If
Cancel = True
End If
If Target.Column = 16 Then
Target = Date
If Target.Offset(0, -1).Value = "" Then
Target.Offset(0, -1).Value = Date
End If
If Target.Offset(0, -2).Value = "" Then
Target.Offset(0, -2).Value = Date
End If
Cancel = True
End If
If Target.Column = 17 Then
Target = Date
If Target.Offset(0, -1).Value = "" Then
Target.Offset(0, -1).Value = Date
End If
If Target.Offset(0, -2).Value = "" Then
Target.Offset(0, -2).Value = Date
End If
If Target.Offset(0, -3).Value = "" Then
Target.Offset(0, -3).Value = Date
End If
Cancel = True
End If
End Sub
weiß natürlich, dass man dieses natürlich auch geschachtelter umsetzten kann.
Gruß

Betrifft: Dir ist klar? Du überschreibst immer Target .. owT
von: 1713828.html
Geschrieben am: 19.09.2019 10:43:23

Betrifft: AW: Dir ist klar? Du überschreibst immer Target .. owT
von: 1713845.html
Geschrieben am: 19.09.2019 11:38:12
Ah stimmt daran hatte ich noch nicht gedacht.. dann muss ich wohl noch ne Wenn-Function setzen. Danke

Betrifft: AW: für mich noch nicht ganz eindeutig ...
von: 1713872.html
Geschrieben am: 19.09.2019 12:48:33
Hallo,
meinst du das so?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i
Select Case Target.Column
Case 14 To 17
For i = 0 To Target.Column - 14
If Target.Offset(, -i) = "" Then
Target.Offset(, -i) = Date
End If
Next
Cancel = True
End Select
End Sub

Gruß
Rudi
Excel-Beispiele zum Thema "Targetadress Zelle bestimmen"
Spaltennamen bestimmen Über VBA Schriftgröße von Fußzeilen bestimmen
Nettoarbeitstage unter Urlaubsberücksichtigung bestimmen Position an Bandlaufwerk bestimmen
Bewerten Sie hier bitte das Excel-Portal