Macro bij dubbelklikken cel

  • Onderwerp starter Onderwerp starter ESF
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ESF

Gebruiker
Lid geworden
5 okt 2007
Berichten
7
Hallo,

In mijn Excel rekenblad wil ik automatisch formules plaatsen als aan een paar voorwaarden wordt voldaan.
De formule moet niet in kolom H geplaatst worden als op dezelfde rij kolom A leeg is, en enkel als kolom C en G waarden bevatten.

Ik heb nu...
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim LValue As Boolean

    If LValue = IsNull(ActiveCell.Offset(0, -7)) = True Then
'        MsgBox ("U staat in kolom H en kolom A is leeg.")
        ElseIf LValue = IsnotNull(ActiveCell.Offset(0, -5)) = True And LValue = IsnotNull(ActiveCell.Offset(0, -1)) = True Then
'        MsgBox ("U staat in kolom H en kolom C en G zijn niet leeg.")
'   code om formule te plaatsen
    End If

End Sub

... maar dit werkt niet. Weet iemand wat ik fout doe?

Alvast bedankt voor de hulp,
Erik
 
Bedankt Wim,

Dit is ook de code die ik gebruikt heb (Worksheet_BeforeDoubleClick). Waar het volgens mij fout gaat is de controle welke leeg (IsNull) en welke cellen waarden moeten bevatten (IsnotNull).

Misschien nog een suggestie?

Erik
 
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  With target
    if .column=8 then
       if .offset(,-7)="" or (.offset(,-5)<>"" and .offset(,-1)<>"" ) then msgbox "kolom " & iif(.offset(,-7)="", "A is","G en C zijn niet") & " leeg"
    end if
  end with
End Sub
 
Laatst bewerkt:
Wederom bedankt voor de snelle reactie.
Bij deze code...
Code:
With target
    if .column=8 then
       if .offset(,-7)="" or (.offset(,-5)<>"" and .offset(,-1)<>"" ) then msgbox "kolom " & iif(.offset.-7)="", "A is","G en C zijn niet") & " leeg"
    end if
  end with

...krijg ik de foutmelding "Compileerfout: Syntaxfout" en vervolgens wordt de 2e regel met if rood. Als beginner op VBA gebied weet ik niet wat dit is. Het lijkt alsof het If commando niet herkend wordt omdat het ook kleine letters blijven?
 
ESF,

Probeer het zo eens, er zat een klein fouje in er stond een punt inplaats van een komma.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  With Target
    If .Column = 8 Then
       If .Offset(, -7) = "" Or (.Offset(, -5) <> "" And .Offset(, -1) <> "") _
       Then MsgBox "kolom " & IIf(.Offset, -7) = "", "A is", "G en C zijn niet" & " leeg"
    End If
  End With
End Sub
 
ESF,

Ik heb het zelf geprobeerd en mijn vorige sugestie gaf ook een fout.
De onderstaande code heb ik van de vorige gemaakt, nu is mijn vraag of dit de bedoeling is.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  With Target
    If .Column = 8 Then
       If .Offset(, -7) = "" Or (.Offset(, -5) <> "" And .Offset(, -1) <> "") _
       Then MsgBox "kolom A, " & "G en C zijn niet" & " leeg"
    End If
  End With
End Sub
 
ESF,

Je eigen code die nu wel werkt, ik denk zoals je bedoeling is.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim LValue As Boolean
    If ActiveCell.Offset(0, -7) = "" Then
        MsgBox ("U staat in kolom H en kolom A is leeg.")
    If ActiveCell.Offset(0, -5) > 0 = True And ActiveCell.Offset(0, -1) > 0 = True Then
        MsgBox ("U staat in kolom H en kolom C en G zijn niet leeg.")
'   code om formule te plaatsen
    End If
    End If
End Sub
 
Laatst bewerkt:
Super!

Bedankt voor jullie hulp! Het werkt precies zoals ik bedoeld had.
Ik vind de code met .Offset het fraaist. Met een kleine aanpassing door aan alle 3 de voorwaarden te voldoen werkt het. Ik heb Or vervangen door And.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  With Target
    If .Column = 8 Then
       If .Offset(, -7) = "" And (.Offset(, -5) <> "" And .Offset(, -1) <> "") _
       Then MsgBox "kolom A, " & "G en C zijn niet" & " leeg"
    End If
  End With
End Sub
Nogmaals bedankt voor de hulp!

Erik
 
ESF,

Ik ben maar een amateur en moet dus echt puzzelen maar het is me met jouw code gelukt.
De code van snb daar heb ik wat meer moeite mee.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan