Ga naar inhoud

Excel macro's


Jasper

Aanbevolen berichten

Het begrip 'tekstblokken' kent Excel niet, wel tekstvakken, maar dat is wat anders als waar jij mee bezig bent.

Wat jij nu gebruikt zijn messageboxen.

Quote

 

dan komt er en nieuw msgbox met de vraag hoeveel zijn er nodig? en dat daar dan en waarde ingevuld kan worden. Als er dan op OK geklikt wordt wordt die waarde aan Cel A1 gehangen

Daarvoor moet je geen messagebox gebruiken, maar een inputbox.

 

Quote

 

En de vraag erna bijvoorbeeld heb je hulp nodig? hier met en knop Ja en Nee. Klikt me ja wordt er en 1 in vak A2 gevuld en bij Nee en 0 in vak A2.

Dat kan weer met een messagebox met de knoppen ja en nee. Bij antwoord 'ja' laat je dan in A2 een 1 invullen en bij 'nee' een 0.

De vba-helpfile in Excel geeft goede uitleg voor het gebruik van message- en inputboxen.

 

Als er veel ineractie is met de gebruiker, zoals voor jouw vragen met meerdere keuzemogelijkheden,  dan kun je beter een formulier (userform) gebruiken. In tegenstelling met een message- en inputbox kun je die zo groot of klein maken als je zelf wil.  En je kunt er een een heleboel besturingselelementen in plaatsen, waar je opdrachten aan kunt toewijzen; kortom dat is veel flexibeler. Kijk ook hiervoor eens in de helpfile.

 

aangepast door alpha
Link naar reactie
Delen op andere sites

  • Reacties 31
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Ik ben is en beetje gaan proberen onder begeleiding van excel.

 

nou moet je om het userform op te roepen weer in this workbook de frmhome.show toevoegen. daar heb ik alleen al het eerste msgbox staan

 

Private Sub Workbook_Open()
macro1
Sheets(1).Activate
Answer = MsgBox("Vul alle benodigde project informatie in." & vbCrLf & vbCrLf & "Je kunt vervolgens doorgaan met de knop A-track info", vbOKOnly)
End Sub

 

hoe voeg ik hier aan toe dat erna frmhome.show wordt geactiveerd?

Link naar reactie
Delen op andere sites

Private Sub CommandButton1_Click()
Range("B2").Value = Text_projectnaam
Range("B3").Value = Text_projectnummer
Range("B6").Value = Text_lengte
Range("B7").Value = Text_breedte
Range("B8").Value = Text_kloswiel
Range("B9").Value = Text_hartmaat
Range("E12").Value = Text_profiel
Range("E13").Value = Text_syshoogte
Range("E14").Value = Text_tussen
End Sub

Private Sub Sluiten_Click()
Unload Me
End Sub


 dat heb ik nu.

 

als ik dan getallen invul dan krijg je en melding van is ingevoerd als tekst veranderen naar getal?

kan ik iets veranderen waardoor alle nummers automatisch als getallen worden doorgevoerd?

Link naar reactie
Delen op andere sites

Mijn vorig bericht was als antwoord bedoeld op je voorlaatse vraag.

Gebruik de namen van de textboxen die Excel er zelf aan geeft, dan heb je dat probleem niet; je moet niet alles tegelijk willen doen.

Dus: Range("B2").value = TextBox1.value , Range("B3").value = TextBox2.value , enz.

En om de userform te sluiten heb je niet een afzonderlijke knop modig, Unlod Me kun je gewoon als laatste opdracht in je eerste macro toevoegen.

 

Link naar reactie
Delen op andere sites

Nee dat gaat niet fout, want elk besturingselement hoort bij een bepaald formulier.

Maar je mag je zelf gegeven namen wel gebruiken als je dat maar goed doet. Ik vermoed dat je een fout hebt gemaakt, want als ik jouw namen gebruik dan krijg ik geen foutmelding.

Je gebruikt alleen de namen van de tekstboxen, best is om eraan toe te voegen dat je de waarde ervan wil weergeven, hoewel dat niet perse moet omdat de .value de standaardwaarde is van tekstboxen. En als er maar 1 formulier in gebruik is kan er ook geen twijfel zijn om welk formulier het gaat, maar je doet er toch verstandig aan (dat is ook veel netter) om te vermelden om welk formulier het gaat. Aldus: Range("A1").value = Userform1.Text_Projectnaam.Value . Je mag natuurlijk ook het formulier een eigen naam geven. En als je het goed wil doen, moet je ook (om geen foutmeldingrn te krijgen) op onjuiste invoer controleren en programmeren wat er dan moet gebeuren (bv: invoer van tekst als een getal wordt verwacht).  Foutafhandeling neemt vaak veel meer tijd in beslag dan programmeren van het probleem.

Link naar reactie
Delen op andere sites


×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.