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

"For i =" automatisch bepalen

Status
Niet open voor verdere reacties.

roycke

Gebruiker
Lid geworden
23 sep 2010
Berichten
99
Beste,
op mn werk hebben we in een Excel sheet onderstaande VBA code staan.
Deze bewerking neemt toch wel bepaalde tijd in beslag aangezien hier 500 regels nalopen worden, en dit 3x.
Is er een mogelijkheid dat i automatisch wordt bepaald? Dus dat hij zelf "telt" hoeveel regels gevuld zijn in de "documentenlijst" en dit aantal dan als i wordt "gepakt"?

Code:
For i = 10 To 510
                    
                Sheets("Documentenlijst").Select
                ActiveSheet.Unprotect
                Range("J" & i).Select
                Selection.ClearContents
                            
                Sheets("Monitoren opmerkingen").Visible = True
                Sheets("Monitoren opmerkingen").Select
                            
                Range("S" & i).Select
                        
                If Selection = "x" Then
                    Sheets("Documentenlijst").Select
                    Range("j" & i).Value = "opmerking(en)"
                End If
                    
                Range("t" & i).Select
                        
                If Selection = "x" Then
                    Sheets("Documentenlijst").Select
                    Range("j" & i).Value = "gezien"
                End If

                Range("u" & i).Select
                        
                If Selection = "x" Then
                    Sheets("Documentenlijst").Select
                    Range("j" & i).Value = "niet van toepassing"
                End If
                    
                Next i
 
Laatst bewerkt door een moderator:
Ja, dat kan.
Maar plaats een voorbeeld van je document, want ook het gebruik van .Select zal de boel behoorlijk vertragen.
 
het is wel een beetje een rommelige macro. Al die selects moet je eruit slopen, die Unprotect buiten de loop en dan met een select case ben je er in enkele regels van af
Op het eerste zicht zou het zo kunnen, maar met een formule zou het ook moeten werken
Code:
Sub xxxxx()
     Dim shM, shD

     Set shD = Sheets("Documentenlijst")
     Set shM = Sheets("Monitoren opmerkingen")
     With shM
          .Visible = True
          .Unprotect
          For i = 10 To 510
               shD.Range("J" & i).Value = ""
               If .Range("S" & i).Value = "x" Then shD.Range("j" & i).Value = "opmerking(en)"
               If .Range("t" & i).Value = "x" Then shD.Range("j" & i).Value = "gezien"
               If .Range("U" & i).Value = "x" Then shD.Range("j" & i).Value = "niet van toepassing"
          Next i
     End With
End Sub
 
Laatst bewerkt:
Bedankt voor de snelle reactie :)

De code van cow18 did do the job.
Gaat nu een stuk sneller. Thankx
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan