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

VBA van UserForm1 naar UserForm2 kopieren

  • Onderwerp starter Onderwerp starter gbvdh
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

gbvdh

Gebruiker
Lid geworden
14 feb 2007
Berichten
111
Goedendag,

Op internet vond ik deze code om de waarde van een TextBox in UserForm1 naar een TextBox in UserForm2 te kopieren.
Code:
UserForm1.TextBox1= UserForm2.Textbox1
Lukt allemaal prima, ik heb alleen in form1 geen textbox waar de waarde in staat maar de waarden worden daar berekend als c, d, e, etc. is er een manier waarop ik waarde c van form1 kan kopieren naar textbox1 van form2.
Ik dacht dat zal dan wel gewoon zo gaan
Code:
UserForm1.a= UserForm2.Textbox1
maar dat werkt dus niet, ook met .value als toeving niet.
Weet iemand misschien of en zo ja hoe dit wel kan?
 
Volgens mij staat je voorbeeld anders dan dat je in je vraag stelt?

Hoe wordt deze waarde weergegeven in textbox1? gewoon als c?
 
Als je een variabele a (of b of c of wat jij wil) hebt met daarin een bepaalde waarde en je wil deze waarde van het ene form naar de andere zien te krijgen, dan zal je hem moeten declareren als een public variabele.
Als je in de VBA editor zit, dan zie je allerlei secties, 1 sectie per sub routine.
Helemaal bovenin kun je publieke variabelen declareren.
Type dus helemaal bovenin:
Dim a As String (of Integer of wat je nodig hebt)
Je kan nu de variabele a overal gebruiken en de waarde van a zal altijd meegenomen worden.
Declareer je a niet dan zal de waarde van a na het verlaten van de sub routine geleegd worden.

Je regel wordt nu:
Userform2.textbox1.Text = a


groet,
Dave.
 
Laatst bewerkt:
Volgens mij staat je voorbeeld anders dan dat je in je vraag stelt?

Hoe wordt deze waarde weergegeven in textbox1? gewoon als c?

Het is inderdaad andersom als in het voorbeeld, voor de duidelijkheid ik wil dus hebben
Code:
UserForm2.TextBox1 = UserForm1.c

Als ik deze code gebuik wordt er niks weergegeven in textbox1 want ik krijg een foutmelding:
"compileerfout:
kan de methode of het gegevenslid niet vinden"
 
Heb je al Clit 13 zijn antwoord bekeken?
Als dit niet werk is het beste om je file eens te uploaden? wel zonder prive gegevens natuurlijk. ;)
 
Als je een variabele a (of b of c of wat jij wil) hebt met daarin een bepaalde waarde en je wil deze waarde van het ene form naar de andere zien te krijgen, dan zal je hem moeten declareren als een public variabele.
Als je in de VBA editor zit, dan zie je allerlei secties, 1 sectie per sub routine.
Helemaal bovenin kun je publieke variabelen declareren.
Type dus helemaal bovenin:
Dim a As String (of Integer of wat je nodig hebt)
Je kan nu de variabele a overal gebruiken en de waarde van a zal altijd meegenomen worden.
Declareer je a niet dan zal de waarde van a na het verlaten van de sub routine geleegd worden.

Je regel wordt nu:
Userform2.textbox1.Text = a


groet,
Dave.

Als ik in userfield1 c declareer als Dim c As Integer, blijft m'n textbox bij Userform2.textbox1.Value = c nog steeds leeg, als ik in c in userform2 ook als int declareer komt er "0" in de textbox te staan. Met andere woorden, deze methode werkt helaas ook niet.
 
Mijn fout!

Probeer eens:
Public a As String

Hier zou je meer resultaat in moeten behalen.
Op deze manier is de variabele a in heel je Excelsheet (xls bestand) beschikbaar.

Wel dus helemaal bovenin je VBA Editor plaatsen!

groet,
Dave.
 
Helaas ook dat werkt niet, of ik krijg het niet werkend misschien moet ik het zo zeggen.
Ik heb het bestandje even wat ingekort en bijgevoegd zoals Ferenc vroeg
 

Bijlagen

hmmmm, werkt inderdaad niet zoals ik gedacht had.
Wat ik wel merk is dat je c niet publiek declareerd en d wel.
Omdat je d wel publiek declareerd zie je hem terug in je Userform2 (als Userform2.d)

Declareer alle variabelen die je in beide nodig hebt publiek!
Want de waarde in d wordt wel meegenomen.


groet,
Dave.
 
Omdat je d wel publiek declareerd zie je hem terug in je Userform2 (als Userform2.d)

Klopt het als ik hieruit op maak dat bij jou in userform2 d wel daadwerkelijk wordt weergegeven? Bij mij is dit namelijk niet het geval.
 
gbvdh,
Zet onderstaande code onder UserForm2 :
Code:
 Private Sub CommandButton1_Click()
UserForm2.TextBox1 = UserForm1.TextBox3
UserForm2.TextBox2.Value = UserForm1.TextBox7
UserForm2.TextBox3.Value = UserForm1.TextBox8
End Sub
 
alberto10 ,

In het voorbeeld wat ik heb bijgevoegd werkt dit inderdaad, ik heb hierin c en d echter met enig optimisme in de TextBoxen gezet, hiermee namelijk kunnen controleren of de waarden voor c en d die ik in userform2 in zou lezen de juiste zijn. In het orginele program heb ik de waarde van c en d niet in een textbox staan, maar deze worden alleen in de code berekend als c en d. Ik vrees dus dat deze optie niet helemaal het gewenste resultaat heeft
 
gbvdh,
Dit is een antwoord op de door U gestelde vraag. Als gij niet de correcte vraag stelt kunnen de forumleden ook niet het juiste antwoord geven.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan