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

Waarde van cell aanpassen afhankelijk van geactiveerd blad

Status
Niet open voor verdere reacties.

Masjimo

Gebruiker
Lid geworden
23 dec 2010
Berichten
165
Voor het aanpassen van de waarde van cell A1 heb ik de volgende VBA;

Code:
If Sheets("Personeel").Selection = True Then
    Range("A1").Value = Range("A1").Value - 1
    Sheets("Materieel").Range("A1").Value = Sheets("Personeel").Range("A1").Value
    If Sheets("Materieel").Selection = True Then
        Range("A1").Value = Range("A1").Value - 1
        Sheets("Personeel").Range("A1").Value = Sheets("Materieel").Range("A1").Value
        Else
        Exit Sub
        End If
End If

Oftewel ik wil de waarde in cell A1 altijd gelijk hebben aan elkaar en de geactiveerde sheet bepaald de waarde; maar iets gaat er fout.....

Wie weet de oplossing?:confused:
 
Hoi Masjimo,

Met VBA en een verwijzing naar een zeker lege cel (in dit geval K1):
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Range("K1") <> 1 Then Range("K1") = 1: k = Range("A1"): Range("A1").Formula = "=Blad1!A1": Worksheets(1).Range("A1") = k: Range("K1").ClearContents
End Sub

Groet,
Jeroen
 
In ThisWorkbook.
Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Dim x
If Sh.Name = "Personeel" Or Sh.Name = "Materieel" Then
  x = Array("Personeel", "Materieel")
    Sheets(x).FillAcrossSheets _
    Sh.Range("A1")
 End If
End Sub
 
Bedankt voor jullie meedenken, het is als volgt opgelost!

Code:
Range("A1").Value = Range("A1").Value - 1
a = Range("A1").Value

Set shts = Sheets(Array("Personeel", "Materieel"))
For Each sht In shts
    Range("A1").Value = a
Next sht

Gewoon in een module opgeslagen!

Ik sla momenteel variabelen die ik bij het opnieuw openen van een sheet op de laatst gebruikte waarde wil laten starten op in een cell(Zoals hier in A1);
Ik ga er vanuit dat VBA bij het afsluiten van een spreadsheet het geheugen wist.....Weten jullie nog betere methoden?:shocked:

OEPS,

Te vroeg gejuicht......

De waarde a wordt blijkbaar toch niet in beide sheets opgeslagen, telkens als de routine loopt..

Wat doe ik fout?
 
Laatst bewerkt:
Code:
Range("A1").Value = Range("A1").Value - 1
a = Range("A1").Value

Set shts = Sheets(Array("Personeel", "Materieel"))
For Each sht In shts
    sht.Range("A1").Value = a
Next sht
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan