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

een cel verwijzing zonder een formule ??

Status
Niet open voor verdere reacties.

carl24

Gebruiker
Lid geworden
25 mrt 2008
Berichten
22
mijn vraag

in cel A1 =3+4

in cel H1 =A1

maar dan wil ik dat er geen A1 komt te staan maar gelijk 7

kan dat?
 
vraag is niet geheel duidelijk maar hier is wat ik ervan begreep.
 
bedankt voor je reactie

sorry was een beetje vaag,

maar dit wil ik eigenlijk

in A1 indien dubbelklikken =3+4

in H1 indien dubbelklikken staat er een 7 (dus zondere enige koppeling of formule)
 
Ik begrijp er nu nog minder van.

In A1 moet staan " =3+4 "
Hoezo, wat wil je met dit?

H1: dubbel klikken en er moet 7 staan ??

Je kunt dan toch sneller een 7 intikken??

Als je een kleine uitleg geeft van het hoe en waarom kunnen we je beter helpen.
 
Met vba is dit alleszins op te lossen zie code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("A1").Address Then
     Dim teststring, str1, str2
    teststring = Range("A1").Value
    str1 = Left(teststring, 1)
    str2 = Right(teststring, 1)
    Range("H1").Value = WorksheetFunction.Sum(str1, str2)
    End If
End Sub
De code start automatisch als A1 gewijzigd wordt.

Mvg

Rudi
 
Rudi, er is ook een Worksheet_BeforeDoubleClick event in VBA, lijkt me handiger hier (al moet ik toegeven dat ik zeer weinig van de vraag snap, maar goed).
 
Met vba is dit alleszins op te lossen zie code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("A1").Address Then
     Dim teststring, str1, str2
    teststring = Range("A1").Value
    str1 = Left(teststring, 1)
    str2 = Right(teststring, 1)
    Range("H1").Value = WorksheetFunction.Sum(str1, str2)
    End If
End Sub
De code start automatisch als A1 gewijzigd wordt.

Mvg

Rudi
Warme bakkertje, Als ik zo vrij mag zijn.... (goed bedoeld!) Een paar dingen over je codeblokje.
  • Dit Target.Address = Range("A1").Address kan je mooier schrijven als Target.Address(False, False) = "A1". Of eventueel met de Intersect functie.
  • Deze declaratie Dim teststring, str1, str2 zet alles als type Variant, terwijl je in jouw geval toch een type String wilt hebben. Maak er dan van Dim teststring as String, str1 as String, str2 as String
  • Weet je wat het resultaat van dit deel is? teststring = Range("A1").Value Via de functie Debug.Print teststring zou je zien dat je de waarde 7 al direct terug krijgt.
  • Volkomen overbodig, maar voor jouw code zou je dan dit moeten nemen: teststring = Range("A1").Formula. Dan kan je inderdaad verder gaan met het uitsplitsen in Left en Right met alle problemen vandien (want Left geeft '=' ...)
  • Waarom nog die worksheetfunction.sum gebruiken als dat al in de sheet zelf geregeld wordt?

Dus met alle aanpassingen zou je code er zo uit zien
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(False, False) = "A1" Then
           Range("H1").Value = Range("A1").value
    End If
End Sub

Ik hoop dat je me deze reactie niet kwalijk neemt, maar wilde 'm als helper toch niet laten lopen.;)

Groet, Leo
 
Laatst bewerkt:
@Ginger
Een wijze les opgepikt uit dit forum 'Al doende leert men', dus bij deze:thumb:
Echter bij het bouwen van mijn code ben ik uitgegaan van het voorbeeld van Willem in post #2.
Daar staat in A1 '3+4' en niet '=3+4'. Aangezien TS geen verwijzingen wilde op zijn werkblad moest de som gemaakt worden in de code, vandaar mijn gebruik van de WorksheetFunction. Dus op die manier is mijn code nog niet zo gek gevonden denk ik.
Heb alle mogelijkheden samengevat in bijlage.

Mvg

Rudi
 

Bijlagen

Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan