Writing a range of data to the registry, contained within 1 registrey entry

StormFusion
StormFusion used Ask the Experts™
on
Hi,

I have tried several methods but failed...

I need help to write a range, say A1:D20 to the registry using a key defined by the date for example DC2016.09.18 {data}

Therefore everyday the same range is stored to a new key, and I will also need to recover this information.

Thanx
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
You cannot write a range to one registry key.
Perhaps if you elaborate on what you're trying to accomplish we can better assist you.

Author

Commented:
I have a grid of data values, 10 rows by 10 cols, I would like to store this in the registry as comma deliminated to a data key, so later on I can retrieve the sequence for a particular date, therefore my users only need to load a central sheet and the data is fed from there local registry.
JohnBusiness Consultant (Owner)
Most Valuable Expert 2012
Expert of the Year 2018
Commented:
The registry is not a user tool, it is secured, and not meant to be file storage.

Why use the registry? That is, what did I not consider?
Why not use a file?
Starting with Angular 5

Learn the essential features and functions of the popular JavaScript framework for building mobile, desktop and web applications.

Author

Commented:
You that may work, I prefer registry because its there!.

How would I write a range to a file and retrieve it?

Thx
JohnBusiness Consultant (Owner)
Most Valuable Expert 2012
Expert of the Year 2018
Commented:
The registry is there but not for you to use it.

You would have to unsecure the registry to do this. Why?

Leave it alone and use the correct tools.
Here is one way (there are others).
Use DumpRange to dump the range to a csv file and GrabFile to read that csv file.

Sub DumpRange()
    Dim rng As Range
    Dim strFile As String
    rng = Range("A1:J10")                           ' set range to export
    strFile = ActiveWorkbook.Path & "\Demo.csv"     ' set file path for exported file
    Call DumpRangeToTextFile(rng, strFile)
End Sub

Sub GrabFile()
    Dim strFile As String
    Dim iFile As Integer
    Dim strData As String
    strFile = ActiveWorkbook.Path & "\Demo.csv"     ' set file path for exported file
    iFile = FreeFile
    Open strFile For Input As #iFile
    strData = Input$(LOF(iFile), iFile)             ' now the strData variable contains the data
    Close #iFile
End Sub

Function DumpRangeToTextFile(rngSource As Range, strFile As String)
    Dim iFile As Integer
    Dim rng As Range, cell As Range
    iFile = FreeFile
    Open strFile For Output As #iFile
    For Each rng In rngSource.Rows
        For Each cell In rng.Cells
            Print #iFile, cell.Value;
        Next cell
        Write #iFile,
    Next rng
    Close #iFile
End Function

Open in new window

Author

Commented:
Ok, thankyou for that, after I set set rng manged to get it to work, it writes the data to a file as if its printed which is ok, but when I recover the data and place into a cell I get an copy of such, problem with that is I need it to mirror whats been taken,

So if I save range A10:G50 for example this is comma deliminated to a file, when I import the data goes back into A10:G50.

Thank you
JohnBusiness Consultant (Owner)
Most Valuable Expert 2012
Expert of the Year 2018
Commented:
The registry format is not related to any Excel format so you would have to import the data.
@StormFusion
I'm not sure I understood you. can you please elaborate (perhaps with examples)?
NorieAnalyst Assistant

Commented:
Do you want to store actual range objects?

If you do then I don't think it's going to be possible unless you actually copied/stored them in another worksheet.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial