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

Copie als cel waar is

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.055
Besturingssysteem
Wndows 10
Office versie
2016
Hallo,
Probeer een macro te maken die kijk naar de waarde van de cel en als deze gelijk is dan moet er via een button gekopieerd worden naar een ander werkblad.
Code:
Private Sub CommandButton1_Click()
    Dim c As Range
 [COLOR="#FF0000"]   Dim s As Range[/COLOR]
    Dim j As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet

    ' Change worksheet designations as needed
    Set Source = ActiveWorkbook.Worksheets("Product prijzen")
    Set Target = ActiveWorkbook.Worksheets("Productie lijst")

    j = 1     ' Start copying to row 1 in target sheet
   [COLOR="#FF0000"] For Each s In Source.Range("A2:C101")[/COLOR]
    For Each c In Source.Range("A2:G101")
        If c = "Waar" Then
           Source.Rows(s.Row).Copy Target.Rows(j)
           j = j + 1
        End If
       [COLOR="#FF0000"] Next s[/COLOR]
    Next c
End Sub

Als ik de rode regels weg laat werkt het maar kopieert dan alles in plaats van kolom A, B en C
Wat heb ik verkeerd
 

Bijlagen

  • test.xlsm
    33,4 KB · Weergaven: 24
Logisch, als je een kopie maakt met 'Rows' dan kopieert het de gehele rij.
 
CHIPS

Wat dom van mij, dit was mij niet eens opgevallen :eek::eek::eek::eek:
 
Toch weer hulp nodig, ik krijg niet de range gekopieerd van een regel als van deze regel in kolom G "Waar" staat.
Hoop op een oplossing of tip van jullie.

Code:
Private Sub CommandButton1_Click()
    Dim c As Range
    Dim s As Range
    Dim j As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet

    ' Change worksheet designations as needed
    Set Source = ActiveWorkbook.Worksheets("Product prijzen")
    Set Target = ActiveWorkbook.Worksheets("Productie lijst")

    j = 1     ' Start copying to row 1 in target sheet
    For Each s In Source.Range("A2:C101") 'copie source
    For Each c In Source.Range("A2:G101") 'looking source
        If c = "Waar" Then
           Source(s).Copy Target.Rows(j) 'past destination
           j = j + 1
        End If
        Next s
    Next c
End Sub
 
Code:
Sub CopyYes()
 With Sheets("product prijzen").Cells(1).CurrentRegion.Resize(, 7)
  .AutoFilter 7, True
  .Offset(1).Resize(, 3).Copy Sheets("productie lijst").Cells(Rows.Count, 1).End(xlUp).Offset(1)
  .AutoFilter
 End With
End Sub
 
Wow

Dank je wel Harry :thumb::thumb:

Werkt super nadat ik
Code:
  .AutoFilter 7, True
Gewijzigd in
Code:
 .AutoFilter 7, "waar"
Maar dat ter info

Nogmaals mijn dank.
 
True werkt hier ook op WAAR.
 
Ik weet niet waarom, maar aan deze zijde niet.
Misschien omdat ik Excel puur Nederlands gebruik?????
 
Ik werk ook met de Nederlandse versie.

Je hebt toevallig de True niet veranderd in "True", want dat werkt natuurlijk niet.
 
Heb het net nog eens geprobeerd met True, niets met "waar" werkt het.
 
Prima, bedankt voor je reactie.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan