• 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.

verschuiven van macros

Status
Niet open voor verdere reacties.

sjonnie1974

Gebruiker
Lid geworden
19 okt 2011
Berichten
177
Hoi,

Ik heb een tabblad vol met cellen waarin gedubbelklikt kan worden om een macro te starten. Werkt prima!

voorbeeld: cel A1, A2, A3, A4, A5 hebben allemaal een dubbelklik functie.

Wanneer ik tussen A2 en A3 een regel wil invoeren, wordt uiteraard A3 A4.... Mijn macro die gestart werd door klikken in A3 verplaatst niet mee naar A4...

Kan iemand mij vertellen hoe ik hiermee moet omgaan?

Ik snap dat ik in mijn codes A3 moet wijzigen in A4, maar is het ook mogelijk dat dit auto gaat?
 
Post uw code eens.
Je zal ipv directe verwijzingen moeten overgaan op rijnummers.
 
Code:
If Target.Count = 1 Then If Target.Address = "$F$9" Then Call cijfertool

ook met het weglaten van de $ tekens werkt het niet
 
Laatst bewerkt door een moderator:
Probeer het dan eens zo:

Code:
If target.Count = 1 Then If target.Address = "$F$" & target.Row Then Call cijfertool
 
Nee dat werkt niet, nu is de dubbelklik in heel kolom F hetzelfde. Ik heb meerdere verschillende dubbelkliks in kolom F
 
Ik heb geen glazen bol.
Ik heb u een oplossing gegeven op de vraag zoals gesteld en met de code die je postte.
 
Oke, dan heb je mijn vraag verkeerd begrepen.
Heb je dan misschien een oplossing voor mijn vraag?

Om nog duidelijker te zijn: Dit is mijn code
If Target.Count = 1 Then If Target.Address = "$A$1" Then Call cijfertool
If Target.Count = 1 Then If Target.Address = "$A$2" Then Call cijfertool1
If Target.Count = 1 Then If Target.Address = "$A$3" Then Call cijfertool2
If Target.Count = 1 Then If Target.Address = "$A$4" Then Call cijfertool3
If Target.Count = 1 Then If Target.Address = "$A$5" Then Call cijfertool4

Als ik nu een regel tussenvoeg tussen 3 en 4, dan moeten 3 en 4, 4 en 5 worden, want ik krijg een nieuwe 3....
 
geef de cel een naam (benoemd gebied) en verwijs in de code naar die naam.
 
Deze zou voldoende moeten zijn:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
 With Target
    If .Count = 1 And .Column = 6 Then
      Wat = "cijfertool" & .Row
        Run Wat
    End If
 End With
Application.EnableEvents = True
End Sub

Je moet wel de nummering van je sub's beginnen met 1 en zo verder.
 
geef de cellen een naam:


Code:
sub M_snb
  for j=1 to 5
   cells(j,1).name= "snb_" & format(j,"000")
  next
end sub

Dan wordt de gebeurteniscode bijv.:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = [snb_001].Address Then cijfertool1
   If Target.Address = [snb_002].Address Then cijfertool2
   If Target.Address = [snb_003].Address Then cijfertool3
   If Target.Address = [snb_004].Address Then cijfertool4
   If Target.Address = [snb_005].Address Then cijfertool5
End Sub

Voeg rijen toe en kijk naar het effekt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan