Variable data koppelen aan cel

Status
Niet open voor verdere reacties.

getyours

Gebruiker
Lid geworden
4 sep 2007
Berichten
78
Stel ik heb variabele data die van tijd tot tijd veranderd of elke seconde/min/uur/dag.

hoe kan ik de dat koppelen aan een cel

Voorbeeld ik heb een waterstroming die het ene moment 1 liter/seconde is en het andere moment twee liter per minuut. Deze dat wordt weggeschreven naar A1,A2,A3..........hoe kan ik deze data dan laten afspelen in cel B1 zodat deze dus continu de data uit de cellen A1,A2,A3 leest.

Ik heb dit nodig om het een en andere te verduidelijken voor een meet en regelverslag
 
Je zal denk ik toch wat duidelijker moeten zijn, ik begrijp er niet veel van.
 
Stel je hebt een proces stroom bijvoorbeeld water dat met een variabele flow van "x" kg/h naar een tank stroomt.

naar 5 sec 100 kg/h
naar 10 sec 110 kg/h
naar 15sec 105 kg/h

Deze data wordt verkregen uit een proces computer die de data continu weg schrijft naar een excel sheet. Wat ik wil is dat de data die door de proces computer wordt weggeschreven in de excel sheet dus in de cellen A1,A2,A3......kan natuurlijk elke cel zijn wordt weergeven in een andere cel. Dus de data uit A1 t/m A5000000 wordt realtime weergeven in B1 of veranderd elke seconde
 
Je zult dan een macro met een lus moeten maken die telkens de volgende cel uitleest in kolom A en de waarde plaats in B1.

Klein voorbeeldje.
Plaats in A1 t/m bijv A10 een aantal waarden en start de macro.
Code:
Sub ToonWaarden()
Range("A1").Select
While Not IsEmpty(ActiveCell.Value)
    Range("B1").Value = ActiveCell.Value
    For i = 1 To 10000000
    Next
    ActiveCell.Offset(1, 0).Select
Wend
End Sub
 
Dit is precies wat ik bedoelde.

Maar ik heb nog twee vraagjes kan mij uitleggen
wat de code precies inhoud zo kan ik er misschien zelf aan gaan sleutelen
kan ik deze macro ook met een loop
 
Code:
Sub ToonWaarden()
Herhaal:
Range("A1").Select                                'begin in A1
While Not IsEmpty(ActiveCell.Value)       'zolang de actieve cel niet leeg is
    Range("B1").Value = ActiveCell.Value 'kopieer de waarde van de actieve cel naar B1
    For i = 1 To 10000000                        'Deze lus ertussen gezet zodat je kunt zien wat er gebeurd
    Next
    ActiveCell.Offset(1, 0).Select              'selecteer de cel onder de huidige cel
Wend                                                   'begin weer met controle of cel leeg is bij While
goto Herhaal                                         'begin weer van voor af aan. 
End Sub

LET OP: DOOR STEEDS TERUG TE SPRINGEN NAAR HERHAAL STOPT DE MACRO NOOIT MEER EN KAN DEZE ALLEEN MET CTRL+BREAK AFGEBROKEN WORDEN.
 
En als je nu eens in B1 dit zet:

=ZOEKEN(9,999E+307;A:A)

Dan krijg je het laatste getal uit kolom A te zien in die cel. Geen VBA en zo nodig.

Wigi
 
Is het mogelijk om twee om meer marco's tegelijk naast elkaar te laten lopen.

De data komt nu uit hetzelfde blad als de macro's maar is het ook mogelijk de data in een ander blad te verzamelen of misschien wel vanuit een ander locatie en deze dan in te lezen.
 
Is het mogelijk om twee om meer marco's tegelijk naast elkaar te laten lopen.

Neen

De data komt nu uit hetzelfde blad als de macro's maar is het ook mogelijk de data in een ander blad te verzamelen of misschien wel vanuit een ander locatie en deze dan in te lezen.

Ja. Je moet dan beide openen en de juiste verwijzingen naar bestanden, tabbladen, bereiken, cellen, ... gebruiken.
 
Is het mogelijk om in een macro actie een bepaalde vertraging in te bouwen.

Bijvoorbeeld

wanneer A1 is 50 en B1 10 verander B1 in X seconden naar waarde in A1.
 
Ik heb het gevonden maar nu gebeurt er het tegenovergestelde van wat ik wil.

Wat ik wil is dat de input van van bv A1 hetzelfde wordt als bv A2 maar de waarde in A2
moet instappen van 1 in X seconden veranderen naar deze waarde. Dus als A1 =2 wacht X seconden en tel naar de waarde uit A1 en weergeef deze in A2.

Als dat mij is gelukt dan is stap twee

De waarde in A1 moet vergeleken worden met de waarde in A2 als het verschil X is groter of kleiner is dan 0 tel dan in X seconden terug tot dat het verschil is 0

Mij vraag is : geen kant en klare oplossing maar tips zodat ikhet uiteindelijk zelf kan
 
Oke ik denk dat het gelukt is

code is

Sub vertrag()
'
'vertraging
'

'
Range("A2").Select
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 3
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Range("H2").Value = ActiveCell.Value
Dim i As Integer
Select Case Blad1.ScrollBars(1).Value
Case 0 To 10
i = 3
Case 11 To 81
i = 4
Case 81 To 100
i = 3
End Select

Sheets(1).Range("H2").Interior.ColorIndex = i


End Sub

Deze macro simuleert een simpele regelkring waarbij de proces value in 3 seconden veranderd in de setpoint
zoals dit bij de meeste simpele regelingen gebeurd.

vb omgevings temp is 20 graden (=pv) regel dezein X seconden naar 25 graden (=sp)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan