Excel formule naar VBA

  • Onderwerp starter Onderwerp starter Rnie
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Rnie

Gebruiker
Lid geworden
19 jun 2009
Berichten
63
Goedenmiddag,

Ik heb de volgende formule in kolom A staan:
Code:
=ALS(B2>0;$A1+1;"")
Deze formule heb ik doorgetrokken in kolom A. Deze code zorgt ervoor dat er een regelnummer in kolom A wordt gezet als ik in kolom B een waarde zet. Dit werkt allemaal prima.
Maar ik wil dit eigenlijk in VBA hebben maar kom er niet echt uit. :confused:

Groeten,
Rnie
 
Code:
Sub lijnnr()
    Dim teller As Long
    teller = 1
    For Each cell In Range([b1], [b50000].End(xlUp))
        If cell.Value <> "" Then
            cell.Offset(0, -1).Value = teller
            teller = teller + 1
        End If
    Next cell
        
End Sub
 
Thanx voor reactie. Maar als ik deze code invoer gebeurd er niet wat ik wil. Eigenlijk gebeurd er nix. Heb nog wat proberen te wijzigen in regel
Code:
For Each cell In Range([b1], [b50000].End(xlUp))
maar helaas zonder resultaat.
 
Kun je dan eventueel een voorbeeld toevoegen? Ik heb dit uiteraard getest voor mijn post en het deed wat ik denk dat je bedoelde, namelijke een oplopend regelnummer toevoeger in kolom A waar een waarde is gegeven in kolom B
 
Het belangrijke woord hier is "automatisch"

Mijn sub werkt prima, maar niet automatisch :)

voeg deze macro in op blad1:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim teller As Long
If Not Intersect(Target, [b:b]) Is Nothing Then
    teller = 1
    For Each cell In Range([b1], [b50000].End(xlUp))
        If cell.Value <> "" Then
            cell.Offset(0, -1).Value = teller
            teller = teller + 1
        Else
            cell.Offset(0, -1).Value = ""
        End If
    Next cell
End If
End Sub
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [B:B]) Is Nothing Then
        Target.Offset(, -1) = IIf(Target.Offset(, -1).Address = Range("A1"), 1, WorksheetFunction.Max([A:A]) + 1)
    End If
End Sub
 
Thanx. Die laatste code doet wat ik wil. :thumb: Die eerste ook trouwens alleen werkt de laatste net iets lekkerder naar mijn zin. Alleen kan laatste code de doortelling niet ongedaan maken als je in kolom B de waarde weer weghaald maar dit is verder geen probleem voor mij.

Ik zet de vraag op opgelost.

Groet,
Rnie.
 
Dit is een heel andere vraag, en het is niet netjes om een vraag in een topic van een andere TS te zetten. Bovendien is de vraag opgelost. Maak dus een eigen vraag aan!
 
@afaf hierboven is al aangegeven waarom ik je vraag heb verwijderd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan