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

Met VB een waaarde in een Cel zetten

Status
Niet open voor verdere reacties.

Roboman

Gebruiker
Lid geworden
5 jun 2014
Berichten
51
Best Helpers.

Ik heb een simpel probleempje voor jullie experts hoop ik.
Graag wil ik als ik een VB scriptje run, b.v. om een emailtje te sturen, een waarde in een cel op een sheet wegschrijven. B.v om te registreren dat ik een email gestuurd heb.

Als voorbeeld:
De Sheet heeft b.v."2016", en ik stuur een emailtje door een VB script te runnen. In het script staat de code (die ik nu hoop te mogen vinden door jullie hulp) die een vaste tekst b.v. " Mail gestuurd" in Cell "A1" van sheet 2016 weg schrijft.

Heeft iemand een idee hoe dat aan te pakken is?

Met vriendelijke groet,
Roboman
 
Dit bedoel je?
Sheets("2016").Range("A1") = "Mail gestuurd"
 
Dankje Edmoor,
Dat gaan ik vannavond es inbouwen, dan laat je weten hoe dat gelukt is.

Mvg
Roboman
 
@edmoor
Dan ga je nog werk hebben, vannnavond!! :)
 
Daar ben ik ook bang voor :P
 
Met VB een waaarde in een Cel zetten (Vervolg)

Gisteravond was inderdaad even werken aan de oplossing van het puzzeltje maar na een uurtje of wat heb ik het werkend ingebouwd. Het idee van Edmoor heeft me op het juiste spoor gezet en uiteindelijk kwam ik tot de eenvoudige oplossing.

Ik wil de tekst "Voorbeeld Tekst" in het actieve sheet (B.v. 2016) in kolom BL op het regelnummer van het geselecteerde record plaatsten. Ik gebruik de excel functie "MATCH" wat een keywoord uit een cel ophaalt waarin de gebruiker een selectie gemaakt heeft en geeft het regelnummer terug. Daarna lees ik dit regelnummer in als variabele "RNum" en de constructie ("BL" & RNum ) levert dan b.v. BL33 op.

Dim RNum As String, RowNum As String
RNum = Worksheets(Year).Range("CJ5")
RowNum = ("BL" & RNum)

Dit Werkt prima.

Range("BL" & RNum).Value = ("Voorbeeld Tekst ")

Bovenstaande regeltje code staat onderin het email script, dus als dat uitgevoerd is staat er netjes "Voorbeeld Tekst" in Cel BL33 op het sheet 2016 Het werkt als een speer. Dus bedankt Edmoor! goed Idee.

Maar helemaal blij ben ik toch nog niet.

Vanuit een andere sheet (B.v. "Letter") stuur ik ook een email en die status wil ik in dezelfde cel BL33 (wat een variabele is) ook op het eerste sheet "2016" plaatsen. "2016" komt uit de variabele "Year".
Om dit op de ander sheet te krijgen doe ik dat in twee stappen.

Op het sheet "Letter" doe ik vanuit het script
1) Range("P18").Value = ("Voorbeeld Tekst")
wat de tekst in Cel P18 op het actieve sheet "Letter" zet. Nu wil ik deze waarde naar de cel BL33 kopiëren naar sheet 2016.
Ik moet dus kopiëren tussen sheets "Letter' en "2016". Ik doe het volgende in twee stappen

2) Kopieer de waarde van cel P18 naar het Sheet wat door de variabele "Year" 1026 is en cel BL22 wat de op dit moment de waarde is van variabele "RowNum"

(Declaraties van de variabelen)

Dim Year As String
Worksheets("Letter").Activate
Year = Cells(5, "M").Value

Dim Year As String
Worksheets("Letter").Activate
Year = Cells(5, "M").Value

Mijn gebruikte hardcoded syntax is, waarin dus geen variabelen gebruikt zijn;

Worksheets("2016").Range("BL22").Value = Worksheets("Letter").Range("P18").Value

Dit werkt! Maaarrrr. ….De waarde "2016" is een variabele "Year", "BL22" is een variabele "RowNum". De verwijzing cel "P18" is statisch op het sheet "Letter".

Het Probleem
Als ik de code met de variabelen gebruik krijg ik de "Run-time error 9" error houden

Worksheets("Year").Range("RowNum").Copy Worksheets("Compliance Letter").Range("P18")

Ik heb getest dat alle variabelen de juiste waarde geven d.m.v. MsgBox als debug. Maar toch houd ik die error 9, wat op een verwijzing fout duidt.

Het lijkt er dus op dat de variabelen niet juist werken in het regeltje code.

Kunnen jullie vinden wat ik fout doe?
 
Eindelijk duss... Vervolg op vorige bericht.

Na wat nadenken en testen heb ik zelf de oplossing gevonden. Uiteraard een syntax fout

Range("P18").Value = ("Bla Bla terkst") - Vul Cel P18 met de Tekst op huidige sheet.
Range("P18").Copy Worksheets(Year).Range(RowNum) - kopieer de waarde uit P18 naar sheet "Year" in Cel "RowNum"

Mijn fout was dus dat ik trouw ook de variabelen Year en RowNum tussen haakjes zette. Dat mag dus niet.

Er zal best wel een slimmere manier zijn om dit te doen maar het werkt voor mij en ik heb weer wat geleerd.
Uiteraard sta ik wel open voor slimmere oplossingen..

Heren, weer bedankt om me opweg te helpen.

Groeten
Roboman
 
Graag gedaan, ook al heb je het zelf opgelost :D
En een variabele mag nooit tussen " tekens.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan