Cellen 1 voor 1 kopiëren in een Loop

Status
Niet open voor verdere reacties.

Arnout1987

Gebruiker
Lid geworden
8 jun 2016
Berichten
6
Hallo allen,

Ik ben bezig met een kleine automatisering in een Excel Sheet. Ik krijg het nog niet helemaal voor elkaar.

Wat ik wil doen
Ik heb een rij met nummers, waarvoor ik wil dat een macro 1 voor 1 wordt uitgevoerd. De uitkomst van de Macro is "Correct" of "Verschil". Deze uitkomst moet naast het nummer komen te staan wat ik heb gevuld. De Macro wordt gedraaid op meerdere andere tabbladen. Het belangrijkste hiervoor is dat het nummer in de juiste cel op een ander tabblad wordt geplaatst.

Input nummers: Vanaf Cel B7 naar beneden, in het werkblad "Invoer".
Output per nummer: Moet altijd in cel C3 van werkblad "Importeren".

Wat ik nu heb
Code:
Private Sub Start_Click()

Dim x As Long

NumRows = Worksheets("Invoer").Range("B7", Range("B7").End(xlDown)).Rows.Count

For x = 1 To NumRows
    Range("B7").Copy Worksheets("Importeren").Range("C3")

[I]MIJN MACRO[/I]

If Formula = "=Sum(V6:V14)" = 0 Then
    Worksheets("Invoer").Range("C7").Value = "Correct"
    Else
    Worksheets("Invoer").Range("C7").Value = "Verschil"
End If

Next x

End Sub

Als ik maar 1 nummer selecteer gaat het helemaal goed (ofwel, de macro doet z'n werk. Ook het Correct en Verschil werkt goed. Momenteel ziet VBA wel dat de macro bijvoorbeeld 3x moet worden doorlopen als ik drie nummers (in cel B7, B8 en B9) zet, maar hij gebruikt dan steeds het nummer uit cel B7. Hoe kan ik er voor zorgen dat na de eerste run het nummer uit cel B8 wordt gebruikt? Ook zal de uitkomst van nummer uit cel B8, in cel C8 moeten komen te staan, waar nu nog C7 staat.
 
Ik weet niet precies wat je bedoeling is, maar er zou iets moeten gebeuren wat meer in je richting komt.
Code:
[SIZE=1]Option Explicit

Private Sub Start_Click()
    Dim x As Long
    Dim NumRows As Long
    Dim Formula As Double
    NumRows = Worksheets("Invoer").Range("B7", Range("B7").End(xlDown)).Rows.Count
    With Worksheets("Invoer")
        NumRows = .Cells(.Rows.Count, 2).End(xlUp).Row
        If NumRows >= 7 Then
            For x = 7 To NumRows
                Worksheets("Importeren").Range("C3").Value = .Cells(x, 2).Value
                'MIJN MACRO
                If Formula = "=Sum(V6:V14)" = 0 Then
                    Worksheets("Invoer").Cells(x, 3).Value = "Correct"
                Else
                    Worksheets("Invoer").Cells(x, 3).Value = "Verschil"
                End If
            Next x
        End If
    End With
End Sub
[/SIZE]
 
Hoi,

Dit lijkt inderdaad goed te helpen.
Ik heb alleen onderstaand stukje weg moeten halen. Hij herkende de formule op een of andere manier niet meer. Kun je uitleggen waarom je dat stukje er ook in had gezet?

Code:
Dim Formula As Double
 
Omdat
Code:
Formula = "=Sum(V6:V14)" = 0
niet erg logische code is (twee keer =) en ik dacht dat de uitkomst een double zou zijn.
Waarschijnlijk is het een boolean of een variant.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan