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

Code direct laten werken laten werken (op basis van datum vandaag)

Status
Niet open voor verdere reacties.

adile

Gebruiker
Lid geworden
2 mrt 2014
Berichten
202
Goedenavond,

Ik heb een VBA code die ik gebruik voor een bestand om informatie uit een ander bestand te importeren.
Tevens veranderd deze code ook de naam van de sheet op basis van informatie in cel A3.
Nu is het ze dat deze code pas werkt wanneer er iets aangepast wordt in cel A3.
wat ik wil bereiken is dat in cel BR2 heb ik onderstaande formule staan.

Code:
=INTEGER((WEEKNUMMER(VANDAAG();13)+1+3)/4)

deze formule verandert op basis van de datum van vandaag.
Cel A3 verwijst naar deze cel met de volgende code.

Code:
="Per" & BR2

Dus de naam naam van de sheet veranderd in bv. Per3, tegelijkertijd wordt uit een ander bestand uit de sheet Per3 informatie gehaald.

Met de code die ik al heb, worden de naam en de informatie opgehaald wanneer ik daadwerkelijk cel A3 aanpas en op enter druk.
Ik wil dat onderstaande code automatisch in werking treedt wanneer cel BR2 veranderd.

De VBA code is hieronder te vinden.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$3" Then Exit Sub
  With GetObject(ThisWorkbook.Path & "\Best1.xlsm")
    Range("C6:BF102") = .Sheets(Range("A3").Value).Range("C6:BF102").Value
   .Close 0
  End With

If Target.Value = "" Then Exit Sub
    On Error GoTo Badname
    ActiveSheet.Name = Left(Target, 31)
    Exit Sub
Badname:
    MsgBox "Please revise the entry in A3." & Chr(13) _
    & "It appears to contain one or more " & Chr(13) _
    & "illegal characters." & Chr(13)
    Range("$A$3").Activate
End Sub

Ik hoop dat er iemand is die mij kan helpen.

alvast bedankt.

Adile
 
Probeer het eens met de 'Calculate' event.
 
Of zo misschien?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Select Case Target.Address
    Case Is <> "$A$3", Is <> "$BR$2": Exit Sub
  End Select
  
  With GetObject(ThisWorkbook.Path & "\Best1.xlsm")
    Range("C6:BF102") = .Sheets(Range("A3").Value).Range("C6:BF102").Value
   .Close 0
  End With

If Target.Value = "" Then Exit Sub
    On Error GoTo Badname
    ActiveSheet.Name = Left(Target, 31)
    Exit Sub
Badname:
    MsgBox "Please revise the entry in A3." & Chr(13) _
    & "It appears to contain one or more " & Chr(13) _
    & "illegal characters." & Chr(13)
    Range("$A$3").Activate
End Sub
 
Laatst bewerkt:
@HSV, heb ik eerder geprobeert, maar hij bleef constant berekenen waardoor het bestand vast liep.

@edmoor ik heb die code geprobeerd, maar die doet het helemaal niet. ook als ik handmatig in A3 de periode verander, met mijn eigen code doet hij dat wel.
Ik kan het bestand hier neit opzetten, het is te groot, er hangt nog een tweede bestand aan vast waar hij data uit haalt en er staan namen en zaken in die niet op straat mogen liggen, sorry.
 
Ok, nog eentje om te proberen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  
  If Target.Address <> "$A$3" And Target.Address <> "$BR$2" Then Exit Sub
  
  With GetObject(ThisWorkbook.Path & "\Best1.xlsm")
    Range("C6:BF102") = .Sheets(Range("A3").Value).Range("C6:BF102").Value
   .Close 0
  End With

If Target.Value = "" Then Exit Sub
    On Error GoTo Badname
    ActiveSheet.Name = Left(Target, 31)
    Exit Sub
Badname:
    MsgBox "Please revise the entry in A3." & Chr(13) _
    & "It appears to contain one or more " & Chr(13) _
    & "illegal characters." & Chr(13)
    Range("$A$3").Activate
End Sub
 
misschien opgelost

Hij lijkt te werken wanneer ik iets in cel br2 aanpas, alleen neemt de sheet de naam aan van de cel waarin iets wordt aangepast. in dit geval de naam van BR2.
dit heb ik opgelost door
Code:
"Per"&
voor de formule te plaatsen.

Ik hoop dat hij ook werkt wanneer de periode automatisch veranderd op basis van de datum vandaag, want dit gebeurt natuurlijk zonder dat ik iets in de cel aanpas. maar dat moet ik even afwachten. in ieder geval erg bedankt voor deze bijdrage.:)

gr Adile
 
Helaas edmoor ik heb hem getest door zelf een datum te veranderen, maar hij veranderd hij doet dan niets.
met jouw code is hij uitgebreid naar 2 cellen waarin je handmatig iets kan veranderen.

ik denk dat er wel iets met calculatie gedaan moet worden, alleen bij de codes die ik tot nu toe gebruikt heb blijft hij doorrekenen totdat het bestand vastloopt.

Adile
 
Zet in een verborgen cel een berekening met de datum uit BR2 en laat de code triggeren op calculate.
 
@cobbe, BR2 is al een verborgen cel. ik weet niet hoe dat triggeren op calculatie mort doen, maar dat zal ik proberen uit te zoeken? Je bedoelt neem ik aan de bestaande code maar dan calculatie gebruiken? Ik heb eerder calculatie gebruikt toen lirp hij vast maar ik ga het proberen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan