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

Focus van form naar sheet VBA

Status
Niet open voor verdere reacties.

Floor E

Gebruiker
Lid geworden
22 dec 2007
Berichten
362
Ik heb een formulier gemaakt die automatisch diverse waarde invult op een excelsheet. Werkt geweldig er handig. I
Echter na het invullen wil ik de focus verleggen van het formulier naar het werkblad, zodat ik meteen in de sheet kan gaan typen. Nu moet ik eerst met de muisknop in de sheet klikken.

Is dit mogelijk? Ik heb op het forum gezocht maar ik kon geen oplossing vinden.
Alvast bedankt voor je aandacht.
 
Gebruik de code :

Unload Me

als laatste regel bij het wegschrijven.
Anders moest je maar eens een vb posten.

Cobbe
 
Wanneer wil je juist in de sheet zijn?

Welke actie gaat daaraan vooraf?
 
Dit is de code achter cmdInvoegen
De bedoeling is dat het form geopend blijft en boven de sheet blijft zweven zoals nu het geval is. Dat werk lekker snel.

Code:
Dim doel As String
Dim btwBedr As Double
Dim exBtw As Double

myrow = ActiveCell.Row      'Huidige rij
mycol = ActiveCell.Column   'Huidge Kolom
btwBedr = CDbl(TxtBTWNormBer)
exBtw = CDbl(TxtBTWNormNetto)

'check of we met onvangst of uitgave te maken hebbben.
'Dit wordt gedaan door de check of huidige kolom < 68 (Ontvangst) OF > 68 is (Uitgave)

Select Case mycol
    Case Is < 8, 67, 68, 69
        MsgBox "Ongeldige cel", vbCritical, "BTW berekenaar"
        
    Case Is > 69 'Uitgave
        Cells(myrow, mycol).Value = exBtw
        Cells(myrow, 69).Value = btwBedr
        ActiveCell.Offset(1, -mycol + 4).Select  'Terug naar kolom D, 1 regel lager
     Case Is < 67 'Inkomsten
        Cells(myrow, 7).Value = btwBedr
        Cells(myrow, mycol).Value = exBtw
        ActiveCell.Offset(1, -mycol + 4).Select  'Terug naar kolom D, 1 regel lager
        
End Select
 
De bedoeling is dat het form geopend blijft en boven de sheet blijft zweven zoals nu het geval is. Dat werk lekker snel.
In dat geval moet je bij de eigenschappen van de userform de ShowModal op False zetten.

Met vriendelijke groet,


Roncancio
 
Als je het userform bij de eigenschappen op False zet voor de eigenschap ShowModal, dan kan je zelf klikken in het blad en terug op de userform.

Is dat wat je zoekt?

Wigi
 
oei jullie gaan net te snel. Ik had deze inderdaad al op false gezet.
Wat de bedoeling is na het klikken op invoegen is dat de cursor is geplaatst in kolom D van myRow (dit werkt al) en dat ik meteen in de excel cel van Kolom D in myRow kan gaan typen.
Nu moet ik eerst nog even de cel aantikken met de muis en die overbodige stap wil ik eruit halen. Bedankt voor de reacties :thumb:
 
En wat moet er ondertussen met de userform gebeuren?
 
Het formulier dient zichtbaar boven de sheet te blijven hangen (zoals nu ook het geval is), zodat er na het invoeren van de tekst in de cel van Excel snel weer in het formulier gewerkt kan worden.

Ter verduidelijking:
Het formulier is een soort rekenmachine waar snel bedragen mee kunnen worden uitgerekend en/of uitelkaar getrokken kunnen worden. De handeling verschilt iedere keer dus de gebruiker kan dmv diverse knoppen op het formulier de goede combinatie kiezen.De uitgerekende bedragen worden in diverse cellen weggeschreven, waaronder de actieve cel (de gebruiker moet eerst even de cel opzoeken waar de kosten bijhoren).
Op deze manier kunnen kosten heel snel op de goede plaats neergezet worden. Werkt erg handig en zeer snel. Ik probeer alleen die overbodige klik in het excelsheet na het gebruik van cmdInvoegen eruit te krijgen.

Na de code regel
Code:
ActiveCell.Offset(1, -mycol + 4).Select  'Terug naar kolom D, 1 regel lager
wil ik dus meteen in de excelsheet kunnen typen zonder de muis erbij te moeten halen.
 
Je zou

Me.Hide

kunnen gebruiken, maar dan heb je weer een klik nodig om het weer te unhiden...
 
Omdat Floor de status van de vraag nog niet naar "Opgelost" heeft gezet, neem ik aan dat Wigi's laatste oplossing Floor ook niet heeft geholpen.
Helaas zit ik met hetzelfde probleem en daarmee dezelfde frustratie als Floor : hoe zorg ik dat ik nou net die éne klik niet in het excel-sheet hoef te geven. Ik heb al ook al geprobeerd om iets met "setfocus" op het sheet te prutsen, maar krijg daar keiharde foutmeldingen op. Ook als ik na een regel met Frm[naam] vbModeless nog een regel opneem om een bepaalde cel in het sheet te activeren/selecteren, blijft de focus nog steeds op het form hangen.
Dat laatste zetje is blijkbaar echt net niet te geven?
 
Omdat Floor de status van de vraag nog niet naar "Opgelost" heeft gezet, neem ik aan dat Wigi's laatste oplossing Floor ook niet heeft geholpen.
Helaas zit ik met hetzelfde probleem en daarmee dezelfde frustratie als Floor : hoe zorg ik dat ik nou net die éne klik niet in het excel-sheet hoef te geven. Ik heb al ook al geprobeerd om iets met "setfocus" op het sheet te prutsen, maar krijg daar keiharde foutmeldingen op. Ook als ik na een regel met Frm[naam] vbModeless nog een regel opneem om een bepaalde cel in het sheet te activeren/selecteren, blijft de focus nog steeds op het form hangen.
Dat laatste zetje is blijkbaar echt net niet te geven?

Ai :shocked:. Ik dacht dat die vraag al was opgelost.
Hoe dan ook.

In bijgevoegd bestand zit een menu dat verschijnt bij het openen.
Het tekstveld op het menu heeft verder geen betekenis maar als je wat invult in dat tekstveld en je klikt vervolgens op de knop eronder dat gaat kan je direct (dus zonder klik) gegevens invullen in het Excelwerkblad.

De gebruikte code is:
Code:
AppActivate ("Microsoft Excel")


Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
YES!!! Hoe simpel kan 't zijn hè?! Maar je moet 't maar net weten. Geweldig bedankt Roncancio!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan