• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

zelfde tekst als linker cel met dubbelklik met vba

Status
Niet open voor verdere reacties.

alfa911

Gebruiker
Lid geworden
11 apr 2013
Berichten
134
Goedendag, is het mogelijk om in vba met dubbelklik dezelfde tekst in te vullen als de cel links er naast? Dit mag alleen gelden in een bepaalde range.
Zie voorbeeld in range H2 t/m N30 en range Q3 t/m S30

Voorbeeld in H3 met dubbelklik dezelfde tekst (piet) overnemen als in G3

alvast bedankt.

Bekijk bijlage check.xlsx
 
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("H2:N30,Q2:S30")) Is Nothing Then Exit Sub
  Target = Target.Offset(, -1)
  Cancel = -1
End Sub
 
Nog een vraagje, als ik de code uit wil breiden om het zelfde te doen maar dan twee cellen terugkijken, hoe pas ik dit dan aan? voorbeeld in cel c2 de gegevens overnemen van cel a1 in een kolom van c2 t/m c30

Alvast bedankt
 
Bedankt, alleen heb ik het niet goed geformuleerd. c2 hoeft alleen a2 over te nemen, dat geldt voor elke cel in range c2 t/m c30, dus c8 moet a8 overnemen.

het is tevens uitbreiding op de code van vena

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("H2:N30,Q2:S30")) Is Nothing Then Exit Sub
Target = Target.Offset(, -1)
Cancel = -1
End Sub

Alvast weer bedankt
 
Plaats code svp tussen codetags en ga eens opzoek naar wat Offset doet. Is hetzelfde als de werkbladfunctie OFFSET() / VERSCHUIVING().

Code:
Target = Target.Offset(, -2)
Om op dezelfde rij van kolom C (3) naar kolom A (1) te gaan.
 
Klopt, dit heb ik zelf ook getest. Alleen hoe breid ik de code uit voor deze range c2 t/m c30
 
Als ik de code uitbreid werkt hij niet, wat doe ik fout?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("H2:N30,Q2:S30")) Is Nothing Then Exit Sub
Target = Target.Offset(, -1)
Cancel = -1

If Intersect(Target, Range("c2:c30")) Is Nothing Then Exit Sub
Target = Target.Offset(, -2)
Cancel = -1
End Sub
 
Wat zal er gebeuren in onderstaand stukje als je niets in c2:c30 doet?
Code:
[COLOR=#333333]If Intersect(Target, Range("H2:N30,Q2:S30")) Is Nothing [/COLOR][COLOR=#ff0000]Then Exit Sub[/COLOR][COLOR=#333333][/COLOR]
 
Ik snap wat jullie bedoelen, maar hoe kan je aangeven dat als je in rang (H2 t/m N30 of Q3 t/m S30) staat gegevens over moet nemen van 1 cel naar links en als je in range (C2 t/m C30) dubbelklik je de gegevens over moet nemen van twee cellen naar links?
 
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("H2:N30,Q2:S30,c2:c30")) Is Nothing Then Exit Sub
  Target = Target.Offset(, -1+(target.column=3))
  Cancel = -1
End Sub
 
Dank je wel, alleen begrijp ik niet waar in de code staat dat in colom C twee cellen naar links gekeken moet worden.
 
Code:
target.column=3
zal als waarde -1 opleveren. -1-1 is?
 
Code:
Target = Target.Offset(, -1+(target.column=3))
target = target.offset(,-1+false of true)
true = -1
false = 0

offset(,-1+-1 = -2)
 
Is voor mij moeilijk te doorgronden, als je dan bv drie cellen naar links wil kijken, hoe kom je dan aan -1+-2 ?
 
Helaas nog geen reactie,

Wat doet de onderste regel?

Cancel = -1
 
-3 kan natuurlijk niet vanaf kolom C.
Wel vanaf D.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("H2:N30,Q2:S30,d2:d30")) Is Nothing Then Exit Sub
  Target = Target.Offset(, -1 + (Target.Column = 4) * 2)
  Cancel = -1
End Sub

cancel = true betekent dat je cursor niet in de cel optreedt net als buiten het bereik gebeurt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan