loop maken in vba code

Status
Niet open voor verdere reacties.

hans1974

Gebruiker
Lid geworden
27 sep 2012
Berichten
98
Hallo,

Kan er iemand mij op weg helpen om hier een loop van te maken?
De bedoeling is dat er in de selection sheet range ("f19:f500") iets staat (moet geen elec zijn, mag gewoon kijken of deze leeg is) dat hij dan de macro moet laten lopen voor iedere volgende cel in de kolom F.
De cellen die hij kopieert moet hij dan ook van de rij nemen van de loop.

Alvast bedankt voor de hulp!



Sub myMacro()

Dim myRange As Range
Set myRange = Worksheets("selection sheet").Range("f19:f500")

For Each cell In myRange
If Range(cell.Address).Value = "elec" Then

Cells(1, 0).Copy
range2.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

Cells(1, -2).Copy '1 zelfde rij en - 2 voor 2 kolommen terug
range3.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

Run "ophalen_kopieren_data3"
Run "dashboard_creation"

End If


End Sub
 
De juiste loop:
Code:
Sub myMacro()
    For Each cell In Worksheets("selection sheet").Range("F19:F500")
        If cell.Value = "elec" Then
            Cells(1, 0).Copy
            range2.PasteSpecial Paste:=xlPasteValues
            Application.CutCopyMode = False
            
            Cells(1, -2).Copy '1 zelfde rij en - 2 voor 2 kolommen terug
            range3.PasteSpecial Paste:=xlPasteValues
            Application.CutCopyMode = False
            
            Run "ophalen_kopieren_data3"
            Run "dashboard_creation"
        End If
   Next cell
End Sub

De werking van de rest van je code heb ik niet naar gekeken.
 
Volgens mij kopieer je steeds dezelfde cel.
 
Gebruik het autofilter. Of plaats een voorbeeldbestand of leg uit wat er moet gebeuren. Code mag tussen codetags en als je het dan toch al plaatst kan het niet veel moeite zijn om erbij te vertellen wie of wat range2 en range3 zijn. Steeds dezelfde cellen naar dezelfde range kopiëren lijkt mij niet zinvol. Dus graag wat meer info.

Nb.
Code:
Application.CutCopyMode = False
Als het al nodig is kan je net zo goed buiten de lus houden en net boven End Sub zetten
 
hallo Harry en Edmoor,

Dat klopt, het was me gelukt tot de opmerking van Harry. Ik kreeg dit werkende maar hij kopieerde steeds dezelfde cel. in de copy programmatie. Hier moet hij dus de next cell volgen.
Cells(1, 0).Copy moet dus de next cell volgen.

Bedankt voor de reactie
 
Zo dus:
Code:
Cell.Offset(1, 0).Copy
 
Code:
cell.copy

Maar wat is rang2??

Plaats eens een bestandje met wat de bedoeling is.
 
Dat hele copy en paste gebeuren kan achterwege blijven als je de vraag van Harry even beantwoord.
 
En als je een For i=0 next i loop gebruikt ipv een For each dan kun je je cell(1,i) zelf laten ophogen
 
Dat kan wel iets beter en netter uitgelegd worden.
Ik tel er zo een drietal fouten in dat stukje schrijven van je @hellboy01.
 
Och, als je dat rechts uitlijnd staat het best netjes :p
 
Ik heb een bestand toegevoegd met data dat ik heb moeten verwijderen maar het lijkt me sterk te lukken met de next i en loop. Ik ga dat er morgen eens insteken.
Andere suggesties welkom.
 

Bijlagen

  • tech.xlsm
    104,3 KB · Weergaven: 86
in dit bestand ga ik dus 3 waarden kopiëren als ik op een bepaald cel dubbelklik (onder ean), nu wil ik als ik de andere files inlaadt dat deze dus zelf ziet dat er in kolom f files staan en zo de macro opnieuw laat lopen tot een volgende cel leeg is.
de code steekt zowel in de sheet als in een module.

Range2 of range3 zijn locaties waar naar gekopieerd moet worden.
 
Laatst bewerkt:
Als je in de kolommen "E" & "F" cellen gaat samenvoegen dan zal de loop door kolom "F" niet gaan werken!
 
Op deze manier misschien
Code:
Sub myMacro()
Dim i As Integer
  With Sheets("selection sheet")
    For i = 19 To 500
      If .Cells(i, 5) = "elec" Then
         .Cells(i, 5).Copy .Range("B6")
         .Cells(i, 4).Copy .Range("B7")
      End If
    Next
 End With
End Sub
 
Deze manier werkt, heb ik reeds getest maar hij moet de waarden mee kopieren tijdens de loop voor de juiste i.
Thx voor de hulp!
 
Het lijkt mij een nutteloze exercitie of ik begrijp er niets van. Het bestand in #12 helpt ook niet veel om er iets van te begrijpen.
 
Het is inderdaad totaal onduidelijk wat er waar vandaan, op welk moment waar naar toe moet worden gekopiëerd.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan