Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Pagina 1 van 2 1 2 LaatsteLaatste
Weergeven resultaten 1 tot 20 van 23

Onderwerp: Inputbox voorzien van vaste tekst

  1. #1
    Vraag is opgelost

    Inputbox voorzien van vaste tekst

    Beste Forumleden,

    Ik ben bezig om een inputbox te programmeren waar een deel van het antwoord al vooringevuld is.

    Code:
    If Range("b142") = "" Then
       Range("b142") = InputBox("Je bent je naam vergeten deze kun je hier alsnog vermelden!")
    End If
    In cel A1 staat de vaste tekst: "Mijn naam is: ".

    Nu is mijn vraag of voornoemde al in het antwoord kan worden opgenomen zodat de gebruiker, na de dubbele punt, alleen zijn of haar naam hoeft in te vullen en dat dan op positie B142 uiteindelijk het volgende komt te staan: "Mijn naam is: Jan Jansen"

    Alvast hartelijk dank.
    Groet, Robert

  2. #2
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    9 september 2000
    Locatie
    Zuid-Holland
    Zo:
    Code:
    If Range("b142") = "" Then
       Range("b142") = Range("A1") & " " & InputBox("Je bent je naam vergeten deze kun je hier alsnog vermelden!")
    End If
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  3. #3
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    Ben je bekend met:

    Application.Username
    Environ("Username")

    Waarom een gebruiker laten invullen wat al bekend is (of zou moeten zijn) ?
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  4. #4
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Probeer dit eens:
    Code:
    Sub GetUserFullName()
    Dim MyObj As Object, objItem As Object
        
        If Range("b142") = "" Then
            On Error Resume Next
            Set MyObj = GetObject("WinMgmts:").instancesOf("Win32_NetworkLoginProfile")
            If Err.Number <> 0 Then
              MsgBox "WMI has not been installed, code will be terminated...", vbExclamation, "Windows Management Instrumentation"
              Range("b142") = "Geen gebruiker gevonden"
              Exit Sub
            End If
            For Each objItem In MyObj
                MyMsg = MyMsg & "User Full Name: " & vbCrLf & vbCrLf & objItem.FullName
            Next
            MsgBox MyMsg, vbInformation, "User Full Name ....   (Haluk ®)"
            Range("b142") = ""Mijn naam is: " & InputBox("Je bent je naam vergeten deze kun je hier alsnog vermelden!", "Gebruikersnaam:", MyMsg)
        End If
    End Sub
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  5. #5
    Allen bedankt.

    Ik begrijp jullie reactie dat er andere, zelfs eenvoudiger, mogelijkheden zijn. Deze techniek wil ik vervolgens ook gebruiken dat de gebruiker een standaard tekst, vanuit een bepaalde situatie snel kan wijzigen zonder dat deze op zoek moet gaan waar deze tekst staat.

    Het is verder niet de bedoeling om een Username te gebruiken (ik ben hier trouwens van op de hoogte). Wat ik in feite bedoel, is dat in het invulgedeelte standaard de tekst: "Mijn naam is: " komt te staan (oftewel wat er in A1 staat). Het is niet de bedoeling dat dit boven het invulscherm wordt vermeld. Degene die zijn/haar naam vult, schrijft dit achter voornoemde. Vervolgens staat op positie B142 bijv. "Mijn naam is: Jan Jansen"

  6. #6
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    9 september 2000
    Locatie
    Zuid-Holland
    Dat kan niet in een Inputbox, wel in een Textbox in een userform.
    Je zou dat dus zelf kunnen maken.
    Positioneer de cursor dan met:
    Code:
    TextBox1,Text = "Mijn naam is: "
    TextBox1.SelStart = 14
    Laatst aangepast door edmoor : 11 mei 2021 om 17:43
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  7. #7
    Bedankt voor jouw antwoord, het is al een tijd geleden dat ik mij daarmee bezig heb gehouden en ik ga kijken of het mij lukt.

    Allen, nogmaals heel erg bedankt.

  8. #8
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    9 september 2000
    Locatie
    Zuid-Holland
    Je zou nog de Default waarde van de InputBox kunnen gebruiken, maar dat vind ik niet handig omdat die tekst dan ook meteen geselecteerd is en dus bij een toets aanraking verdwijnt.
    Code:
    Application.InputBox("", "De titel", "Mijn naam is: ")
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  9. #9
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Ik vind het een zeer onhandige werkwijze, want zelfs áls je er in slaagt om de cursor vast áchter de tekst "Mijn naam is: " te zetten: wie houdt de gebruiker tegen om die tekst zelf te verwijderen, en alleen de naam in te vullen? Als het je bedoeling is om deze vaste tekst altijd in de cel te krijgen, hou die tekst dan weg uit de inputbox en voeg hem middels code toe. Zoals in mijn voorbeeld (wat je overigens totaal schijnt te negeren, maar ach, dat ben ik wel gewend )
    Code:
    Range("B142") = "Mijn naam is: " & InputBox("Vul hier je naam in!", "Gebruikersnaam:", "Typ je naam")
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  10. #10
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Als je doelt op de code in #4, dan zou ik die ook negeren. (wat een breiwerk) Zal wel handig werken in Jouw forum?
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  11. #11
    Allen nogmaals heel hartelijk dank. Het antwoord bij #8 (Edmoor) heeft mij, in deze casus, enorm geholpen en doet precies wat voor mij de bedoeling was. Dat neemt niet weg dat de andere oplossingen ook zeer welkom zijn geweest en ik deze in andere situaties zeker goed kan gebruiken.

  12. #12
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Quote Origineel gepost door VenA Bekijk Bericht
    Als je doelt op de code in #4, dan zou ik die ook negeren. (wat een breiwerk)
    Met ‘vrienden’ zoals jij heb ik geen vijanden meer nodig. Deze code werkt toevallig wél, ook al heb ik ‘m niet zelf bedacht. Ik zou zeggen: doe het dan vooral beter. Langs de kant staan roepen doen er al genoeg…
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  13. #13
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Over onnodig quoten gesproken.....
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  14. #14
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    Octa@

    Ik heb je code in 34 getest en bij mij komen er 4 regels tevoorschijn met 'User Fullname is:'
    Helaas komt er 4 keer geen waarde voor 'fullname' tevoorschijn.

    Heb jij een verklaring ? (zowel voor het aantal als voor het ontbreken van de fullname.)
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  15. #15
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    9 september 2000
    Locatie
    Zuid-Holland
    Die code zal alleen in een domain (Active Directory) omgeving werken, dus als er een echt netwerk profiel is.
    Het aantal keren komt door de For loop.
    Deze is nodig om alleen het tweede item uit MyObj te gebruiken, de eerste is Null.

    Dat kan dan makkelijker op deze manier:
    Code:
    Sub a()
        Range("B142") = Application.InputBox("", "De titel", "Mijn naam is: " & GetUserFullName)
    End Sub
    
    Function GetUserFullName() As String
        Dim WSHnet, UserName, UserDomain, objUser
    
        Set WSHnet = CreateObject("WScript.Network")
        UserName = WSHnet.UserName
        UserDomain = WSHnet.UserDomain
        Set objUser = GetObject("WinNT://" & UserDomain & "/" & UserName & ",user")
        GetUserFullName = objUser.FullName
    End Function
    Overigens ook alleen in een Domein omgeving.
    Laatst aangepast door edmoor : 11 mei 2021 om 22:34
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  16. #16
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Quote Origineel gepost door VenA Bekijk Bericht
    Over onnodig quoten gesproken.....
    Voor jou maak ik graag een uitzondering.
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  17. #17
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Quote Origineel gepost door snb Bekijk Bericht
    Heb jij een verklaring ? (zowel voor het aantal als voor het ontbreken van de fullname.)
    Nee, helaas. Ik heb de code ook maar gevonden op een site en getest, en bij mij deed-ie het prima. Hij loopt wel een paar keer, dus dan kan hij inderdaad wel vaker gevuld worden natuurlijk. Al verwacht ik maar één username voor een gebruiker.
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  18. #18
    Senior Member NoellaG's avatar
    Geregistreerd
    10 april 2019
    Locatie
    Melsele
    Alhoewel het niet de vraag van de gebruiker is. Als je de Windows user wil opvragen is hier een code die altijd zou moeten werken:
    De declare prtsafe is alleen nodig bij 64 bit systemen

    Code:
    Option Explicit
        Dim lngerror As Long
    'function declarations
    Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    
    Public Function getOSUserName() As String
    On Error GoTo Err_getOSUserName
    ' Geeft de login naam van Windows
        Dim lngLen As Long, lngX As Long
        Dim strUserName As String
        
        strUserName = String$(254, 0)
        lngLen = 255
        lngX = apiGetUserName(strUserName, lngLen)
        If (lngX > 0) Then
            getOSUserName = Left$(strUserName, lngLen - 1)
        Else
            getOSUserName = vbNullString
        End If
        
    Exit_Err_getOSUserName:
        lngerror = 0
        Exit Function
    
    Err_getOSUserName:
        lngerror = 2
        MsgBox Err.Number & ": " & Err.Description()
       
        Resume Exit_Err_getOSUserName
        
    End Function

  19. #19
    Giga Honourable Senior Member
    Verenigingslid
    snb's avatar
    Geregistreerd
    12 juni 2008
    @Noella

    Wat brengt jouw code anders dan:

    Code:
    Sub M_snb()
       MsgBox Environ("username")
    End Sub
    of
    Code:
    Sub M_snb()
       MsgBox Environ(30)   ' getal afhankelijk van Windowsversie 
    End Sub
    of
    Code:
    Sub M_snb()
       MsgBox CreateObject("wscript.network").UserName
    End Sub
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  20. #20
    Senior Member NoellaG's avatar
    Geregistreerd
    10 april 2019
    Locatie
    Melsele
    Het zou minder gevoelig zijn voor hacks als beschreven in http://etutorials.org/Microsoft+Prod...ent+Variables/ of als je environ wat simpeltjes vindt en graag wat meer wil programmeren zoals in #4 ;-)

  21. Dit topic is automatisch gesloten omdat er sinds vier maanden niet meer op gereageerd is.

    Indien gewenst kan de topicstarter een verzoek tot heropening indienen.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren