Loop door cellen in range

Status
Niet open voor verdere reacties.

remcop1989

Gebruiker
Lid geworden
29 mrt 2012
Berichten
492
Ik ben een beetje aan het stoeien met het volgende:

Ik heb een bestand als in de bijlagen.

Ik wil hem door de rijen A2:A999 laten lopen en controleren of de cel een "A" bevat. Als het deze waarde bevat, dan moet hij in kolom I in dezelfde rij de datum van vandaag invoegen. Indien A niet gevonden wordt, dan moet hij niets doen. Dit kan natuurlijk met een ALS-formule, maar ik wil de cel aanpasbaar houden zonder steeds iedere keer de formule opnieuw in te moeten voeren.

Ik heb het vermoeden dat dit met een For / For each loop moet, maar ik heb geen idee hoe.
Wel krijg ik het voor elkaar de range A2:A999 te selecteren. maar meer niet.

Wie kan mij ondersteunen? Google is je vriend, maar nu blijkbaar even niet.
 

Bijlagen

Hoe vaak kan die 'A' voorkomen in kolom A.
Is het alleen zoeken naar 'A' of staat er in werkelijkheid ander tekst in kolom A, en is het zoeken naar een 'A'.
 
In de tabel worden prospects weergegeven. De letters A t/m D worden gebruikt om ze te 'kwalificeren'. Zodra er dus een A bij een prospect staat, moet die direct vandaag gebeld worden (weergegeven met de datum in kolom I).
 
Ik verneem het wel.
Code:
Sub Zoek_A()
With Sheets("Kort").Columns(1).SpecialCells(2)
 Set c = .Find("A", , xlValues, xlWhole)
     firstaddress = c.Address
 If Not c Is Nothing Then
    Do
      c.Offset(, 8) = Date
      Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddress
    End If
   End With
 End Sub
 
Misschien deze.
Code:
Sub tst()

    sn = Sheets("Kort").UsedRange
        For i = 2 To UBound(sn)
            If UCase(sn(i, 1)) = "A" Then sn(i, 9) = Date
        Next
    Cells(1).Resize(UBound(sn), UBound(sn, 2)) = sn
    
End Sub
 
Usedrange blijft Usedrange ongeacht of je iets verwijderd onderaan het bereik.
Vul iets in H1 in, en je kunt gebruik maken van:
Code:
Sheets("Kort").Cells(1).CurrentRegion

Loopt de code beduidend sneller.
 
Idd. maar omdat in het voorbeeldbestand kolom H leeg is en ik niet kan voorzien wat TS daarmee van zin is (glazen bol is momenteel stuk :D) heb ik ipv mijn eerste idee (currentregion) maar UsedRange gebruikt om de code zonder problemen te laten lopen.
Je kan uiteraard ook met Rows.Count aan de slag maar met dit weer was teveel typen geen optie :d
 
Haha, mijn glazen bol is op het heden ook even stuk, iets teveel in een ander glas gekeken denk ik (visite net weg).
Welterusten Warme Bakkertje.
 
Opgelost:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

For Each i In Range("I2:I500")
For Each j In Range("J2:J500")

If i = "" Then
i.Offset(0, 1) = ""
ElseIf i <= Date Then
i.Offset(0, 1) = "Terugbellen"
End If

Next j
Next i

End Sub
 
En nu ga je voor elke wijziging die je doorvoert op je werkblad, ongeacht in welke kolom dan ook telkens 1000 dezelfde cellen controleren op hun waarde ???????
En dan ook nog met 2 loops door de cellen op je werkblad. Dit noemen ze ook wel eens ondoordacht programmeren.
Very bad idea.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan