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

Compileerfout

Status
Niet open voor verdere reacties.

wivoe

Gebruiker
Lid geworden
25 mrt 2008
Berichten
146
Goedemiddag,

In een programma gebruik ik in een aantal cellen de functie Dubbelklik. Bij het dubbelklikken
wordt een formulier geopend. Bij de eerste cel werkt het prima, maar bij de volgende cel komt de melding;
Compileerfout:
Er is een dubbelzinnige naam gevonden: Worksheet_BeforeDoubleClick

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("Expl2003")) Is Nothing Then UserForm1.Show
  End If
End Sub

Bij de tweede cel wordt de Range gewijzigd in "Expl2004" en de UserForm in Userform2.Show

Toch zijn deze 2 wijzigingen blijkbaar niet voldoende, waar ga ik de fout in?

Groeten, Wim
 
Die melding zegt dat je 2x een macro met dezelfde naam hebt en dat kan niet.
 
edmoor,

De code zit niet achter een Macro, althans niet door mij bewust gemaakt,

Gr. Wim
 
Terwijl je in #1 een macro laat zien.
De melding is duidelijk, een macro met die naam wordt meer dan 1x gebruikt.
 
edmoor,

Er zaten een paar Macro's in het programma die heb ik eruit gegooid, maar kreeg dezelfde Compileerfout.

Heb een nieuw bestand gestart, waar nog nooit een Macro in heeft gestaan en heb dezelfde code toegepast,
maar kreeg toch dezelfde foutmelding.

Gr. Wim
 
Plaats dat bestand eens hier.
 
edmoor,

Hoop dat het gelukt is, Map1.xlsx

Gr. Wim
 

Bijlagen

  • Map1.xlsx
    8,4 KB · Weergaven: 78
Dat is wel gelukt maar het is geen document waar enige code in gebuikt is.

Kijk ook eens of er toevallig een bestand met de naam Personal.xlsb aanwezig is in deze map:
C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART

Voor <username> gebruik je uiteraard je eigen Windows gebruikersnaam.
 
Laatst bewerkt:
Je hebt wel degelijk de doubleclick_event er twee keer in staan, en dat kan niet.
Dat kan je zo oplossen.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("K1:K2")) Is Nothing Then
     If Target.Address = "$K$1" Then
        UserForm1.Show
      Else
        UserForm2.Show
      End If
  End If
  Cancel = True
End Sub
 
Correct. Ik zou alleen die Cancel opdracht binnen eerste If houden:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("K1:K2")) Is Nothing Then
     If Target.Address = "$K$1" Then
        UserForm1.Show
      Else
        UserForm2.Show
      End If
      Cancel = True
    End If
End Sub
 
Laatst bewerkt:
Goed gecorrigeerd @edmoor.
Hier nog een ander.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Not Intersect(Target, Range("K1:K2")) Is Nothing Then
    UserForms.Add("Userform" & Target.Row).Show
    Cancel = True
  End If
End Sub

Of maak een multpage form
 
Laatst bewerkt:
Heren,

Ik gebruik de code van HSV, mooi compact en gemakkelijk uit te breiden.
edmoor en HSV beide hartelijk dank, ik zal hem sluiten.

Groeten, Wim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan