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

Invoer gegevens en dan op OK drukken om door te gaan met de macro

Status
Niet open voor verdere reacties.

robatxperia

Gebruiker
Lid geworden
1 okt 2015
Berichten
11
In een macro wil ik gegevens laten invoeren in een aantal cellen, bijvoorbeeld: naam, adresgegevens, telefoonnummer.

Vervolgens wil ik dat er op OK geklikt wordt voordat de macro verder gaat. Hier bij nog de volgende voorwaarde: sommige cellen moeten ingevuld zijn om door te mogen gaan; sommige cellen mogen leeg gelaten worden.

Nu kan ik overal vinden hoe ik een macro aan een knop moet toewijzen (knop maken en macro aan knop toewijzen is het probleem niet); helaas is het mij niet gelukt om te vinden hoe ik in een macro op een knop kan laten klikken voordat de macro verder gaat. Uiteraard wil ik ook een foutmelding als verplichte cellen niet ingevuld zijn.

Iemand een idee?

(of verwijzing naar plek waar mijn vraag al beantwoord is; ik kan me eigenlijk niet voorstellen dat ik de 1e ben met deze vraag...)
 
Het is ook niet de macro die op die OK knop moet drukken, maar de gebruiker, toch?
Kijk eens naar een Userform in vba. Is wel tamelijk wat werk om in te stellen.
 
Doe de controle in een macro die je aan een OK knop toewijst onder je invoergegevens. Klopt er iets niet, dan geef je een bericht en stopt de macro. Klopt alles, dan voert de macro de rest uit. Dat kan ook.
 
Is niet zoveel werk om in te stellen.

De groene vakjes zijn verplicht. Verder gebeurt er niets omdat het onbekend is wat er moet gebeuren.
 

Bijlagen

  • ControleFrm.xlsb
    20,2 KB · Weergaven: 116
Is niet zoveel werk om in te stellen.
De groene vakjes zijn verplicht. Verder gebeurt er niets omdat het onbekend is wat er moet gebeuren.

Super. Al vast bedankt voor het meedenken. Via Private Sub ThisWorkbook_open() is het me inmiddels gelukt om het formulier direct bij het openen van het excel-bestand te laten komen.

Ik heb nog wel een paar vragen (en nog geen tijd gehad om daar zelf verder naar te zoeken. Vanavond ga ik er ieder geval mee aan de slag):
- Ik zou eigenlijk willen dat het formulier alleen bij de 1e keer openen van het bestand om de gegevens vraagt, en de volgende keer de eerder ingevulde gegevens laat zien.
- Hoe kun je voorkomen dat het userform afgesloten wordt met het kruisje zonder dat er gegevens volledig zijn ingevoerd? Dus alleen afsluiten met de commandbutton.
- Hoe kan ik een cel-bereik met mogelijke keuzes koppelen aan een droplist op het userform?

Groet, Rob
 
Als je even jouw bestandje plaatst dan praat dat wat makkelijker.

-Wat bedoel je met de eerder ingevoerde gegevens? Zijn dit de laatst ingevoerde gegevens? En waar staan deze?
-Kan je uitzetten dmv QueryClose event;
-Combox1.list = Range("A1:A10").value. (meerdere varianten mogelijk)
 
Ik ben al weer een stuk verder met dank aan jullie input.

Wat ik uiteindelijk wil is:
1. Bij 1e opstart het userform opstarten. (is me gelukt)
2. Voorkomen dat het form gesloten wordt voordat alle verplichte gegevens ingevoerd zijn. (QueryClose is ook gelukt)
3. Gegevens uit een range kunnen kiezen in een droplist. (Range selecteren is me nog niet gelukt)
4. Daarna de in het formulier ingevoerde gegevens in bepaalde cellen plaatsen. (nog niet gedaan, maar lijkt mij niet het grootste probleem)
(Het komt dus neer op de 1e keer gegevens als Naam en locatie vragen; deze vervolgens in een cel bepaalde cel de gegevens neerzetten. Bij openen van hetzelfde bestand controleren of die cellen gevuld zijn.
5. Controleren of Naam en locatie in de cellen uit punt 4. al gevuld zijn en zo ja deze al eerder ingevoerde gegevens gebruiken: "Welkom: Rob".

Bijgevoegd bestandje heb ik zo simpel mogelijk proberen te houden. (Het gaat mij om de mogelijkheden; verdere invulling etc. komt later wel; bovendien past simpel wel bij mij...)

WW? joepie
 

Bijlagen

  • Test userform opstart excel.xlsm
    31 KB · Weergaven: 71
Mogelijkheid om je combobox te laden is in de Initialize() gebeurtenis
Code:
Private Sub UserForm_Initialize()
  With Blad2
    ComboBox1.List = .Columns(1).SpecialCells(2).Value
  End With
0f combobox laden zonder kolomhoofden
Code:
Private Sub UserForm_Initialize()
  With Blad2
    ComboBox1.List = .Columns(1).SpecialCells(2).Offset(1).SpecialCells(2).Value
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan