Microsoft Excel

Herbers Excel/VBA-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

Beiträge aus dem Excel-Forum zum Thema "Targetadress Zelle bestimmen"