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

knop koppelen op werkblad aan formulier

Status
Niet open voor verdere reacties.

DarkEaston

Gebruiker
Lid geworden
17 nov 2011
Berichten
27
Hoi,

Ik probeer een knop toe te voegen zodat deze gekoppeld wordt aan een formulier (userform). Echter krijg ik steeds een foutmelding.

'Fout 1004 tijdens uitvoering

Methode Range van object_Worksheet is mislukt'

Wat gaat er verkeerd?
 
DarkEaston,

Zet je bestandje even hier, want dit is voor mij onduidelijk.
 
Hij is nog niet af. Ik ben hem nog aan het inrichten
 

Bijlagen

  • formulier signaleringslijst v0 test.xlsm
    32,8 KB · Weergaven: 36
Het foutje zit in dit stukje code.
Heb het even uitgeschakeld op de knop geklikt en het formulier kwam voor de dag.
Code:
For Each cPlaats In ws.Range("Plaatslijst")
  With Me.cboPlaats
    .AddItem cPlaats.Value
  End With
Next cPlaats
 
Nog even gekeken en zag dat je was vergeten om de de paatsnamen te benoemen (Plaatslijst)
De naam even aangemaakt en het werkt dan wel goed.
 
Hier het gevraagde.
 

Bijlagen

  • formulier signaleringslijst v0 test(EA).xlsm
    33,6 KB · Weergaven: 36
DarkEaston ,

Ik heb nog even gezocht voor je naar hoe vul ik een ComboBox.
Kijk hier voor de code van "snb" die schut het zo uit de mouw.

Ik heb dit in je code even toegepast en het werkt perfect, scheelt een hoop schrijfwerk.
Dit staat bij Userform Initialize
Code:
cboStraatnaam.List = Sheets("Opzoeklijsten").Columns(3).SpecialCells(2).Offset(1).SpecialCells(2).Value
Je heb dus alleen een regel nodig, onderstaande code kun je dus weg laten.
Code:
'For Each cStraatnaam In ws.Range("Straatnaamlijst") 
  'With Me.cboStraatnaam
    '.AddItem cStraatnaam.Value
  'End With
'Next cStraatnaam

Ik heb de aangepaste file erbij gedaan.
 

Bijlagen

  • formulier signaleringslijst v0 test(EA-!).xlsm
    34,8 KB · Weergaven: 31
Laatst bewerkt:
Dank u zeer.

De opzet van het formulier is gereed. Echter wil ik nog een aantal dingen beveiligen. Het valt mij op dat je de dropdown-menu kunt omzeilen door in de tekstvakken te gaan typen. Ik wil dat de gebruikers alleen uit de vervolgmenu's kunnen kiezen.

Daarnaast wil ik eigenlijk dat het formulier meteen verschijnt bij het openen van het excel-bestand.

Dit moet ik nog uitpuzzelen.
 
Om het formulier direct laten verschijnen moet je de code in ThisWorkbook plaatsen bij open.
Kijk eens bij de eigenschappen van de combobox of je het daar kunt instellen. (Niet inschrijven)

Of gebruik de zoekmachine "zoeken in dit forum" daar kun je ook veel code vinden.

Suc6

Nog even gezocht en vond dit.
Je moet dit zetten in de style propertie van de combobox.
 
Laatst bewerkt:
Welke combobox bedoel je?

Bedoel je niet 'frmPOSignalen"?

Ik kan het niet vinden.
 
Als je iedere ComboBox wil beveiligen tegen schrijven, doe dan het volgende.
Selecteer een ComboBox als je in de Editor zit en ga naar eigenschappen / Style (rechts) kies 2-FrmStyleDropdownlist.
Nu kun je niet meer schrijven in die ComboBox.

Of bedoel je wat anders?
 
Ja dat was wat ik zocht. Dank u zeer.

Daarnaast wil ik ook
- dat het formulier verschijnt als ik het excel-bestand open,
- en een afhankelijke keuzelijst erin verwerken. Dus als ik bij combobox 1 keuze a maak dat bij combobox 2 de keuzes 1, 2 en 3 overblijven. In een excel-blad weet ik wel hoe dat gaat maar dat werkt hier niet.
 
Zet dit in ThisWorkbook.
Code:
Private Sub Workbook_Open()
  frmPOSignalen.Show
End Sub
Als je file opstart komt het Formulier gelijk voor de dag.

Voor het andere moet je maar even zoeken met "Doorzoek dit Forum" dat staat rechtsboven bij de vragen.
Je zal best wel iets tegen komen met de juiste code daarvoor.

Suc6
 
Ok, ik zal het forum doorzoeken voor mijn tweede vraag.

De code voor het openen van het formulier bij het opstarten van het excel-bestand werkt niet. Hij geeft aan compilatiefout.

Edit: het werkt nu wel
 
Laatst bewerkt:
Hier bij mij werkt het wel, doe de file erbij.
 

Bijlagen

  • formulier signaleringslijst v0 test(EA-2).xlsm
    36,2 KB · Weergaven: 37
Code:
'kopieer de gegevens naar de database
With ws
  .Cells(lRow, 1).Value = Me.cboComplexnummer.Value
  .Cells(lRow, 2).Value = Me.cboStraatnaam.Value
  .Cells(lRow, 3).Value = Me.txtHuisnummerreeks.Value
  .Cells(lRow, 4).Value = Me.cboPlaats.Value
  .Cells(lRow, 5).Value = Me.cboTypeSignalering.Value
  .Cells(lRow, 6).Value = Me.cboUrgentie.Value
  .Cells(lRow, 7).Value = Me.txtOmschrijvingSignaal.Value
  .Cells(lRow, 8).Value = Me.txtOpmerkingen.Value
  .Cells(lRow, 9).Value = Me.DTPicker1.Value

End With

dit deel moet voor onderstaand deel van de code komen te staan en dan wordt de registratie maar éénmalig uitgevoerd nadat alle velden ingevuld zijn...

Code:
'verwijder de gegevens
Me.cboComplexnummer.Value = ""
Me.cboStraatnaam.Value = ""
Me.txtHuisnummerreeks.Value = ""
Me.cboPlaats.Value = ""
Me.cboTypeSignalering.Value = ""
Me.cboUrgentie.Value = ""
Me.txtOmschrijvingSignaal.Value = ""
Me.txtOpmerkingen.Value = ""
Me.cboComplexnummer.SetFocus

End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan