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

Macro starten in Als formule

Status
Niet open voor verdere reacties.

ah26329

Gebruiker
Lid geworden
6 nov 2014
Berichten
8
Beste forum, ik heb een probleem met het starten van een Macro in een ALS formule.

Mijn formule is: =ALS(Blad1!B2=1;"runmacro1";"")

De macro moet 3 waarden in Blad1 copieren naar Blad2

Ik heb als voorbeeld een bijlage toegevoegd.

Met vriendelijke groet,

Antonius
 

Bijlagen

Zeer bedankt Cobbe,

Het functioneerd!

Mijn volgende vraag is, hoe gaat het verder als 1, een 2 wordt en 3 ander waarden ingevoerd worden

zie voorbeeld:
 

Bijlagen

Je kan de code vervangen door dit:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("B2")) Is Nothing Then
   Sheets("Blad1").Range(Cells(4, Target + 1), Cells(6, Target + 1)).Copy Sheets("Blad2").Cells(3, 1 + Target + 1)
 End If
End Sub
 
Laatst bewerkt:
Bedankt voor het snelle antwoord.

Eigenlijk is mijn probleem heel simpel.
Het getal 1 in cel B2 in BLAD1 is een weeknummer, is afhankelijk van een datum en kan varieren van 1 t/m 52
De getallen in cel B4, B5, B6 in BLAD1 zijn waarden die ingevoerd worden en kunnen voor ieder week anders zijn.

In BLAD2 moeten de ingevoerde waarden van in cel B4, B5, B6 in BLAD1 gekopieerd worden naar de overeenkomstige weeknummer.

Zie bijgevoegd voorbeeld.Bekijk bijlage Map1 test (3).xlsm

Mvgr

Antonius
 
Het 2de codestuk (nu nog enige) in vorige post doet dat toch.
 
Waarom zou dat niet werken, de vraag stellen is vaak veel moeilijker dan de oplossing verzinnen.
 

Bijlagen

Hallo Cobbe,

SUPER! Dit is precies wat ik bedoel.

Mijn laatste vraag. Hoe copier ik dit alles in een bestaande Excel file zodat alles nog functioneerd?

Mvrgr.

Antonius
 
Met deze uitleg moet je dit moeiteloos in je eigen bestand kunnen toepassen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 ' deze code loopt enkel als er een wijziging gebeurt in cel B2
 If Not Intersect(Target, Range("B2")) Is Nothing Then
 ' copiëer bereik B4:B6 naar Blad2 cel C kolom waarde B2 + verschuiving
 ' als week 2 in kolom B van Blad2 staat is dit 0 anders + 1, 2, 3 enz..
 ' in dit geval is dat 2 omdat week 2 in kolom D staat
   Sheets("Blad1").Range("B4:B6").Copy Sheets("Blad2").Cells(3, Target + 2)
 End If
End Sub
 
Zeer bedankt Cobbe,

HET FUNkTIONEERD!!

Nog een vraagje, de cellen die gekopieerd worden bevatten SOM formule, eigenlijk moeten alleen de waarden gekopieerd worden.

MvGr.

Antonius
 
met een aanpassing van de macro van Cobbe

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

 If Not Intersect(Target, Range("B2")) Is Nothing Then Sheets("Blad2").Cells(3, Target + 2).Value = Sheets("Blad1").Range("B4:B6").Value

End Sub

Niels
 
HalloNiels28,

Als ik de aanpassing doorvoer krijg ik de volgende foutmelding:

Fout 13 tijdens uitvoering
Typen komen niet met elkaar overeen

Mvgr

Antonius
 
Probeer hem zo maar eens:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("B2")) Is Nothing Then
 Application.ScreenUpdating = False
   Sheets("Blad1").Range("B4:B6").Copy
    Sheets("Blad2").Cells(3, 2 + Target).PasteSpecial Paste:=xlValues
 End If
End Sub
 
Allemaal hartstikke bedankt, mijn probleem is opgelost!!!!!!!

Ik wens jullie nog een prettige week.

mvGr.

Antonius
 
oke ik had iets verder moeten kijken

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

 If Not Intersect(Target, Range("B2")) Is Nothing Then Sheets("Blad2").Cells(3, Target + 2).Resize(3, 1) = Sheets("Blad1").Range("B4:B6").Value

End Sub

Niels
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan