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?