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

Als functie in macro

Status
Niet open voor verdere reacties.

adonis87

Gebruiker
Lid geworden
11 mei 2009
Berichten
17
Ik heb in een macro een als functie nodig denk ik.
op blad 2 staat de datum
en op blad 1 staan gegevens.

Nu wil ik van blad 1 C25,E25 en G25 gekopieerd hebben naar blad 3 in kolom D
en van blad 2 waar de datum staat B22 naar blad 3 in kolom B.
Nu wil ik alleen C25,E25 en G25 gekopieerd hebben als de datum veranderd.
Dus 1x die gegevens kopieeren per datum.

vb.(goede)

15-5-2009 50% 20% 30%
20-5-2009 60% 40% 0%
21-5-2009 60% 35% 5%


en dus niet:
15-5-2009 50% 20% 30%
15-5-2009 49% 21% 30%
15-5-2009 53% 20% 27%

dit heb ik:

Sheets("Analyse").Range("C25,E25,G25").Copy
Sheets("Blad3").Range("D" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
Sheets("Invulformulier").Range("B22").Copy
Sheets("Blad3").Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
 
De waarde van een cel overhalen, doe je zo:

Code:
Sheets("Blad3").Range("D" & Rows.Count).End(xlUp).Offset(1).Value = Sheets("Analyse").Range("C25").Value

Komt daar nog een If bij, dan is het:

Code:
If Sheets("...").Range("...").Value = ... Then
     Sheets("Blad3").Range("D" & Rows.Count).End(xlUp).Offset(1).Value = Sheets("Analyse").Range("C25").Value
End If
 
dan werkt het nog niet helemaal.

Kan helaas ook niet uploaden. bestand is te groot.

Maar mijn macro is:

Option Explicit

Sub Ikbenklaar()
Application.ScreenUpdating = False
Dim n As Integer
If Range("I21") <> 18 Then
MsgBox "Uw Stemming is nog niet compleet. Doorgaan svp.", vbInformation
Exit Sub

For n = 3 To 20
Sheets("Invulformulier").Activate
If Range("I" & n) = 1 Then
Sheets("Analyse").Activate
Range("J" & n) = Range("J" & n) + 1
End If
Next n

For n = 3 To 20
Sheets("Invulformulier").Activate
If Range("I" & n) = 2 Then
Sheets("Analyse").Activate
Range("K" & n) = Range("K" & n) + 1
End If
Next n

For n = 3 To 20
Sheets("Invulformulier").Activate
If Range("I" & n) = 3 Then
Sheets("Analyse").Activate
Range("L" & n) = Range("L" & n) + 1
End If
Next n

For n = 3 To 20
Sheets("Invulformulier").Activate
If Range("I" & n) = 4 Then
Sheets("Analyse").Activate
Range("M" & n) = Range("M" & n) + 1
End If
Next n

For n = 3 To 20
Sheets("Invulformulier").Activate
If Range("I" & n) = 5 Then
Sheets("Analyse").Activate
Range("N" & n) = Range("N" & n) + 1
End If
Next n

For n = 3 To 20
Sheets("Invulformulier").Activate
If Range("I" & n) = 6 Then
Sheets("Analyse").Activate
Range("O" & n) = Range("K" & n) + 1
End If
Next n

Sheets("Invulformulier").Select
Range("I3:I20").ClearContents
Range("J3").Formula = "=IF(RC[-1]>0,""Ga door,svp."",""De volgende,svp."")"
Range("A1").Select
Application.ScreenUpdating = True
End If

Sheets("Analyse").Range("C25,E25,G25").Copy
Sheets("Blad3").Range("D" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
Sheets("Invulformulier").Range("B22").Copy
Sheets("Blad3").Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues


End Sub



Dit werkt allemaal prima.
Het rode heb ik erin gekopieerd zodat die gegevens kopieerd en plakt
Nu wil ik dus onder de zelfde knop hebben. Dat ik elke keer van datum de meest recente gegevens gekopieerd krijg naar blad 3.
Zodat ik op blad 3 een lijngrafiek heb met op elke datum een punt zodat je verloopt van kwaliteit kunt zien.
 
Nu wil ik alleen C25,E25 en G25 gekopieerd hebben als de datum veranderd.
Dus 1x die gegevens kopieeren per datum.

Ik zou het gaan zoeken met een
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If ActiveCell.Address(False, False) = "[COLOR="Red"]cel waar de datum staat[/COLOR]" Then
     StartMacro '(Vul hier je eigen macro in)
   End If
End Sub
Zelf kom ik er niet aan uit omdat mijn VBA kennis te klein is maar een hint voor de speurders hier op het forum
 
Hier voorbeeld..

en dan moet van blad 1 dus C25,E25 en G25 gekopieerd worden naar blad3 in kolom D
en van blad 2 B22 naar blad 3 in kolom B
Alleen de gegevens van C25,E25,G25 mogen gekopieerd worden wanneer de datum (blad 2 B22) gewijzigd is.
Zie voorbeeld(bijlage) nu
 

Bijlagen

Laatst bewerkt:
Wijzig de datum op blad2 en de gegevens worden automatisch gekopieërd.

Mvg

Rudi
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan