Cel in Excel aanklikbaar maken om formulier te openen?

Status
Niet open voor verdere reacties.

Hans

Gebruiker
Lid geworden
19 dec 2016
Berichten
98
Hallo gewaardeerde forummers :thumb:

Is het mogelijk om in Excel te zorgen dat het aanklikken van een cel (of eigenlijk een hele kolom) een UserForm opent?

Ik heb gezocht, geloof me. Maar kon het antwoord niet vinden.

Vast bedankt maar weer, wat moet ik zonder jullie!? :d
 
Dit achter het betreffende werkblad:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 Then
        Userform1.Show
        Cancel = True
    End If
End Sub

Met een dubbelklik op de kolom dus.
Een enkele klik kan ook maar ik denk niet dat je dat handig gaat vinden.
 
Laatst bewerkt:
Dit achter het betreffende werkblad:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 Then
        Userform1.Show
        Cancel = True
    End If
End Sub

Met een dubbelklik op de kolom dus.
Een enkele klik kan ook maar ik denk niet dat je dat handig gaat vinden.

Zou ik nog een poging mogen wagen verder te verfijnen? Als ik dubbelklik op de kolom komt het formulier, top! Is het dan ook nog mogelijk om de inhoud van de cel (en de rij) die je dubbelklikt in het formulier te laden?
 
Laatst bewerkt:
Tuurlijk.
In de Userform_Activate:
Textbox1.Text = Activecell.Value
 
Tuurlijk.
In de Userform_Activate:
Textbox1.Text = Activecell.Value

Waar vind ik dat gedeelte: Userform_Activate

Ik zoek op het werkblad en op het formulier maar kom het nergens tegen. Je eerste stukje code heb ik bovenaan het werkblad toegevoegd, dat ziet er nu zo uit:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 Then
        Toevoegen.Show
        Cancel = True
    End If
    
End Sub

Moet ik daarin verder, of elders?
 
Userform_Activate is een Userform event en dat gebruik je uiteraard in het userform zelf.

Toevoegen.PNG
 
Top! Het was (voor een VBA-dummie) even puzzelen en vergelijken, maar het werkt.

Nu dient zich een ander probleempje aan. Na dubbelklikken in een cel in kolom 1 verschijnt het formulier mét de inhoud van de cel, dat werkt dankzij Edmoor!
Helaas worden de andere text- en comboboxen niet gevuld. Ook niet als ik met de combobox een selectie maak. Ligt ongetwijfeld ergens anders (mij :p) aan, maar ik zie het helaas niet. In de bijlage de laatste versie, wie weet ziet iemand het probleem.

Bekijk bijlage Bellijst.xlsm
 
De comboboxen zijn gevuld; de textboxen worden gevuld als je iets selecteert in de listbox.
 
De comboboxen zijn gevuld; de textboxen worden gevuld als je iets selecteert in de listbox.

Als je op het labeltje klikt en via een pop-up het debiteurennummer handmatig invoert wordt alles gevuld, dat klopt. Maar als je dubbelklikt op een cel in kolom 1 verschijnt wel het formulier (super!) maar wordt niets gevuld.
 
Dan heb je niet goed gelezen wat ik schreef.
Dubbelklik in kolom A van tabblad 'Bellijst'; Userform opent; de comboboxen zijn gevuld, de textboxen worden gevuld als je.......
 
Mocht je nog steeds twijfelen nodig ik je van harte uit het bestand in #8 te openen en het te testen. Dubbelklikken op een cel in kolom 1 levert alleen vulling van de ComboBox6_debiteurnummer.

Is er iemand die mij kan en wil helpen? Dubbelklikken in een cel in kolom 1 vult dus alleen de hierboven genoemde combobox, de andere text- en comboboxen worden niet gevuld. Ook wordt de geklikte regel niet in de listbox gemarkeerd/getoond, deze moet dan alsnog handmatig in de lijst gezocht worden.

Wat ik graag zou willen;
Het formulier opent na dubbelklikken op een cel in kolom 1 (dit gaat nu goed)
Alle textboxen en comboboxen worden gevuld met de data van die de bewuste rij
In de listbox is de rij zichtbaar
Alle textboxen en comboboxen worden gevuld na selectie mbv ComboBox6_debiteurnummer

Volgens mij toch gangbare opties?
 
Opzetje dat je zelf wel af kan maken. Wijzig de Userform_Activate in dit:
Code:
Private Sub UserForm_Activate()
    Dim r As Long
    
    r = ActiveCell.Row
    ComboBox6_debiteurnummer = Cells(r, 1)
    textbox_rayon = Cells(r, 2)
    textbox_debiteurnaam = Cells(r, 3)
    textbox_monteurs = Cells(r, 4)
    [COLOR="#008000"]'textbox_datum = Column(6)[/COLOR]
    textbox_postcode = Cells(r, 8)
    ComboBox5_woonplaats = Cells(r, 9)
    [COLOR="#008000"]'ComboBox1_waarom_nieuwe_klant = .Column(14)
    'ComboBox2_hoe_ons_gevonden = .Column(15)
    'ComboBox3_weeknummer = .Column(17)
    'ComboBox4_wat_toevoegen = .Column(18)[/COLOR]
End Sub
 
@Edmoor Heel erg bedankt, de code die je hebt gesuggereerd heb ik inderdaad af kunnen maken en het werkt.
Ik ga even verder met testen want ik kom nog wat kleine dingetjes tegen, dat moet ik even gaan beschrijven. Maar nu eerst maar weer aan het werk.

Binnenkort in dit theater!!!
 

Bijlagen

  • Bellijst.xlsm
    110,8 KB · Weergaven: 88
Ik heb het over het bestand van #8.
Het probleem is dat jij het verschil niet weet in een combobox die leeg (of niet gevuld) is of dat het Listindex - 1 heeft.
 
Laatst bewerkt:
@Edmoor, zou je mij nog een keer willen helpen?

Jouw code werkt hoor, bij dubbelklikken in een cel in kolom 1 opent het formulier mét de gegevens van die betreffende rij.

Ik heb verder gewerkt aan het formulier en uitbreidingen gedaan. Blijkbaar heb ik iets in de code vernaggelt waardoor dubbelklikken niet altijd het gewenste resultaat levert. Zou jij nog een keer willen kijken alsjeblieft?

Vast bedankt, alweer ;-)

Bekijk bijlage Bellijst.xlsm
 
Met "niet altijd het gewenste resultaat" kan ik niks.
Je zal preciezer moeten aangeven hoe, wat, waar, wanneer.

Aan die dubbeklik routine zelf is niks veranderd, dus daar kan het 'm niet in zitten.
 
Hieronder zet ik neer welke info wordt getoond als je dubbelklikt op:

Rij 4 toont rij 8
Rij 5 toont rij 10
Rij 6 toont rij 11
Rij 7 toont rij 13
.....dit gaat een poosje door zo.
Vanaf rij 17 lijkt het wel goed te gaan.
 
Code:
Private Sub UserForm_Initialize()
With LB1
  .List = Sheets("bellijst").ListObjects(1).DataBodyRange.Value
  .ListIndex = ActiveCell.Row - 4
    ComboBox6_debiteurnummer = .Column(0)
    textbox_rayon = .Column(1)
    textbox_debiteurnaam = .Column(2)
    textbox_monteurs = .Column(3)
    textbox_datum = .Column(6)
    textbox_postcode = .Column(7)
    ComboBox5_woonplaats = .Column(8)
    ComboBox1_waarom_nieuwe_klant = .Column(14)
    ComboBox2_hoe_ons_gevonden = .Column(15)
    ComboBox3_weeknummer = .Column(17)
    ComboBox4_wat_toevoegen = .Column(18)
 End With
End Sub
 
Beste Harry, Edmoor

In bericht #16 heb ik het bestand toegevoegd zoals die gemaakt is met alle aanwijzingen en hulp. De code die Harry in het bericht hierboven suggereert geeft foutmeldingen als ik die in het bestand van bericht #16 plaats.

Ik ben er dus nog niet uit, sorry maar hebben jullie nog tijd en zin om er naar te kijken? Is het een idee om jullie ideeën en/of suggesties direct in de code te plaatsen en als het werkt dan het bestand terug te zetten in je reactie?

Vast bedankt...alwéér :thumb:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan