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

Userform werkt niet

Status
Niet open voor verdere reacties.

Trylogicazdl

Gebruiker
Lid geworden
12 jun 2012
Berichten
22
Hallo Beste Forumgenoten.

Om mijn naslagwerken makkelijk te ordenen heb ik een database gemaakt met een userform. De opdrachtknop op het sheet heeft de juiste vba-code, en de vba-code van het userform zou ook moeten kloppen. Nou loop ik echter iedere keer tegen het feit aan dat als ik het userform wil openen de error (80004005) krijg waardoor het userform niet wil openen. Bij de fout opsporing wordt aangegeven dat de fout zit in de commandobutton op het sheet. Ik heb alles doorzocht, maar kan de fout niet vinden. Ik werk niet op een netwerk.

Zouden jullie mij aub kunnen helpen?
 

Bijlagen

In de code van je userform wordt het volgende gebruikt:
Private Sub UserForm_Initialize()

Dit moet zijn:
Private Sub UserForm1_Initialize()

In de knop voor het leegmaken van het formulier wordt ook Userform_Initialize aangeroepen en moet dit Userform1_Initialize zijn.

Tip:
Geef objecten altijd een eigen naam en niet de door VBA toegekende naam.
 
Ik denk trouwens dat Excel in de war is met je worksheet omdat hij blijft denken dat het Userform de naam Userform heeft en niet communiceerd met de nieuwe naam van het formulier, welke naam je hem ook geeft.
Dat lijkt te komen doordat je het formulier in eerste instantie Userform hebt genoemd, of hoe dat dan ook gebeurd is.
Excel kan er dus kennelijk niet mee omgaan als je een object van het type Userform ook de naam Userform geeft.
Of ik moet het helemaal verkeerd zien maar dan is er vast wel iemand hier de me daarop wil wijzen.
 
Zoals edmoor al opmerkt raakt Excel inderdaad in de war.
Het gaat naar de code van Private Sub UserForm_Initialize() (wat niet zou moeten)
en loopt vervolgens vast bij de combobox, die eigenlijk Userform1.BrancheComboBox is,
maar aangeroepen wordt als Userform.BrancheComboBox.

Wanneer, voordat de routine is aangeroepen, de naam naar Private Sub UserForm1_Initialize() veranderd wordt, werkt e.e.a. wel.

Haal ook de de call Userform_Initialize weg bij Private Sub LeegmakenButton_Click().
want dat veroorzaakt een onvoorspelbare lus.
Zet liever de code in een aparte macro en roep deze vanuit de event Intialize aan, evenals vanuit de button.

De extensie .xlsx.xlsm is ook niet duidelijk, dat moet gewoon .xlsm zijn

Mvg Leo
 
Laatst bewerkt:
@edmoor,
je mag een userform gerust de naam userform geven. Maar best verander je dan ook de Excelnaam van het formulier van "Userform1" in "Userform", want anders kan de verwarring nogal groot worden.
Over het bestand van de vragensteller kan ik niets zeggen omdat ik met Excel 2000 dat ik op dit moment voor me heb, zijn userform niet kan bekijken.
 
Laatst bewerkt:
@Zapatr,
Zelf werk ik met Excel 2007 en daar gaat het voorbeeldformulier van TS er helemaal mis op.
Je kunt het formulier iedere gewenste naam geven maar zodra je een event toe laat voegen voor het formulier maakt Excel er Userform_eventnaam van.
Dat het niet goed zou gaan met objecttype als objectnaam was een veronderstelling van mij.
Ik heb het dat probleem niet eerder gezien en hoe dat in Excel 2000 gaat weet ik niet.
In ieder geval is het nooit handig om gereserveerde woorden als variabele- en/of objectnaam te gebruiken en ik kan me voorstellen dat Userform zo'n gereserveerd woord is, al heb ik dat niet opgezocht.
 
Laatst bewerkt:
userform werlt weer, maar comboboxen geven geen data

Hallo mede forumgenoten.

Dank voor de tips. Het renamen van de comboboxen en het userform door een nummer toe te voegen werkt! Het probleem waar ik vervolgens tegen aan loop is dat de gegevens die in de comboboxen staan niet getoond worden, ook al heb ik dat in de rowsource bij eigenschappen wel aangegeven. Die gegevens staan op de sheet "Data". Volgens de VBA uit het door mij gebruikte voorbeeldbestand, wat ik heb bij deze reactie heb bijgevoegd:Bekijk bijlage Kopie van dinner-planner-userform.xls , zou dat wel moeten. Sterker nog: als ik dat voorbeeld bestand uitvoer, verschijnt alle info gewoon in de comboboxen. Ergens zit in mijn vba dus een fout, al weet ik niet welke. Ik hoop dat jullie me kunnen helpen om dit probleem op te lossen
 
Laatst bewerkt:
Post eens een voorbeeld van jouw huidig bestand met hernoemde userform en comboboxen.
 
Je moet wel aangeven op welk werkblad het bereik staat, dus
Code:
[COLOR="#FF0000"]Data![/COLOR]A2:A4
Dit moet je herhalen voor elke CB
 
Hoi Rudi en de anderen,

Dat was inderdaad niet zo handig om "Data" te vergeten toe te voegen. Dat is ook weer opgelost. Echter wil het formulier nu weer niet leegmaken en krijg ik de foutmelding dat er een fout zit in onderstaand gedeelte van de userform1_initialize:

'Empty BrancheCombox1
BrancheComboBox1.Clear

Deze fout zal waarschijnlijk ook bij de andere comboboxen gaan optreden, maar ik weet niet waarom. Het tot zover bijgewerkte bestand heb ik wederom bijgevoegd:

Bekijk bijlage Oefendatabase.xlsx.xlsm

@ Martijjn: Die pagina heb ik inderdaad veel aan gehad, maar heeft mij niet geholpen bij het oplossen van deze problemen. Maar toch bedankt voor de tip
 
@Trylogicazdl,
waarom heb je de aanwijzingen van leofact niet opgevolgd?
Voer alles uit wat die heeft geschreven, dan kan er hier verder worden gepraat.
 
@Zapatr,

De wijzigingen zoals door Leo voorgesteld heb ik uitgevoerd tot de 2e alinea:

Haal ook de de call Userform_Initialize weg bij Private Sub LeegmakenButton_Click().
want dat veroorzaakt een onvoorspelbare lus.
Zet liever de code in een aparte macro en roep deze vanuit de event Intialize aan, evenals vanuit de button.


Wat hij daarmee bedoelt is mij onduidelijk. Ik weet namelijk niet hoe ik een macro zou kunnen maken op het userform die vanuit een event wordt aangeroepen, of vanuit de button. Ik heb wel een beetje verstand van excel, maar dat gaat mijn beperkte kennis te boven.
 
Plaats je document nog eens zoals deze nu is, dan wil ik nog wel een keer kijken.
Wat je in het rood hebt geschreven is geen enkel probleem en misschien dat dat inderdaad het probleem verhelpt.
 
Laatst bewerkt:
Ik zal straks thuis dat document eens bekijken.
 
Ik heb een paar objecten opnieuw aangemaakt en eentje werd er vanuit de code onjuist aangesproken.
De Userform_initialize mag gewoon vanuit een knop worden aangesproken, dat geeft dus geen probleem.

Bijgevoegd formulier werkt bij mij goed.
Tevens heb ik de naam gewijzigd van Oefendatabase.xlsx.xlsm naar Oefendatabase.xlsm

Bekijk bijlage Oefendatabase.xlsm


Het boek waar je naar verwijst ken ik niet maar lijkt me prima.
Neem voor Excel zelf ook hier eens een kijkje:
http://gratiscursus.be/Excel_2010/index.html

Een tip voor naamgeving van objecten:
Je hebt nu bijvoorbeeld BrancheCombobox2 en JaartalCombobox3.
Dat gaat op een gegeven moment erg verwarrend werken en ga je fouten maken.
Noem ze bijvoorbeeld cbxBranche en cbxJaartal.
cbx staat dan voor Combox.

Hetzelfde kun je doen voor andere objecten. Geef dus eerst een afkorting van 3 letters om het object type aan te geven en dan de naam.

Tekstboxen noem je dan txtNaam.
Knoppen: btnNaam
Formulieren: frmNaam
Label: lblNaam

En ga zo maar door.
In dat geval heb je geen omkijken naar nummering en heeft het object een duidelijke naam waarin tevens het object type herkenbaar is.
 
Laatst bewerkt:
Haal ook de de call Userform_Initialize weg bij Private Sub LeegmakenButton_Click().
Zet liever de code in een aparte macro en roep deze vanuit de event Intialize aan, evenals vanuit de button.

Wat hij daarmee bedoelt is mij onduidelijk.
@Trylogicazdl
Wat kan daar anders mee worden bedoeld dan dat je de opdracht "call Userform_Initialize" moet VERWIJDEREN?
(is ook in het bestand van edmoor niet gebeurd !)
Ook deze aanwijzing van leaofact: "De extensie .xlsx.xlsm is ook niet duidelijk, dat moet gewoon .xlsm zijn" heb je NIET opgevolgd.
En verder: in "Private Sub UserForm1_Initialize()" wis je zaken en voeg je er weer toe, terwijl je bij de eigenschappen van de besturingselementen al hebt ingesteld hoe ze er uit moeten zien. Dat is zo tegenstrijdig als maar zijn kan. Bijgaand een bestand om je een stukje verder te helpen.
is er een goed toegankelijk boek dat jullie me kunnen aanraden?
Naar mening is er voor zulk soort elementaire zaken geen betere handleiding dan de HELPFILE van Excel, daarin wordt het allemaal goed uitgelegd, met de nodige voorbeelden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan