Ga naar inhoud

SNEL/LAK


Ron001

Aanbevolen berichten

Enkele dingen vergeten zie ik, daarom deze correctie:


Sub ron3()
Dim cl As Variant, myrange As Range
With ActiveSheet
Set myrange = Union(.Range("A17:A26"), .Range("A28:A35"))
.Range("AA2:AB3").ClearContents
For Each cl In myrange
Select Case UCase(cl.Value)
Case "SNEL"
.Range("AA2").Value = cl.Offset(, 1)
Case "LAK"
.Range("AA3").Value = cl.Offset(, 1)
End Select
Next cl
End With
End Sub

Link naar reactie
Delen op andere sites

  • Reacties 44
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Dit lijkt mij toch nuttig, moeten diegene die de file invullen enkel  "snel" of "lak" zetten...

 

Ik moet enkel die twee kleine ranges doorlopen ("A17:A26") en ("A28:A35")

 

Ik krijg foutmelding op 

.Range("AA2:AB3").ClearContents

Waarom staat dit er eigenlijk?

Met de rest van de code ben ik wel helemaal mee :-)

Link naar reactie
Delen op andere sites

Waarom staat dit er eigenlijk?

Als je die cellen niet wist, dan blijft er het resultaat van een vorige actie staan zolang de macro niet opnieuw is gebruikt. EN afhankelijk van de inhoud van de a-kolom kan het resultaat van een vorige uitvoering nog blijven staan zelfs na uitvoering van de macro.

AA2 en AB2 enerzijds en AA3 en AB3 anderzijds, zijn samengevoegde cellen. Daarom was  iet te gebruiken: .range("AA2:AB2"), wat eigenlijk had gemoeten. Vooral als je vba gebruikt moet je het samenvoegen van cellen zoveel mogelijk voorkomen. Bij mij verschijnt er in jouw bestand geen foutmelding als ik de macro uitvoer.

Link naar reactie
Delen op andere sites

Ik weet niet wat je allemaal met je Excelbestand hebt uitgevoerd, maar zodra ik er ook maar iets in wijzig en ik sla het bestand op, dan kan ik geen macro meer uitvoeren. Ga dus na wat je hebt ingesteld en maak dat ongedaan. Als dat je probleem niet oplost, begin dan in een nieuw bestand.

Link naar reactie
Delen op andere sites

De "With... End With" kun je wel weglaten, want de macro wordt sowieso uitgevoerd in het actieve blad.

Probeer dus dit:

Sub ron3()
Dim cl As Variant, myrange As Range
Set myrange = Union(Range("A17:A26"), Range("A28:A35"))
Range("AA2:AB3").ClearContents
For Each cl In myrange
Select Case UCase(cl.Value)
Case "SNEL"
Range("AA2").Value = cl.Offset(, 1)
Case "LAK"
Range("AA3").Value = cl.Offset(, 1)
End Select
Next cl
End Sub

Link naar reactie
Delen op andere sites

Had ik al gedaan, want code staat in onderstaande...

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Maar blijft vastlopen op:

Set myrange = Union(Range("A17:A26"), Range("A28:A35"))

Morgen nog wat testen, ben het ff beu :-)

Link naar reactie
Delen op andere sites

4 minuten geleden, Ron001 zei:

Had ik al gedaan, want code staat in onderstaande...


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Tja, als je dat nu wat eerder had gezegd...

Waarom plaats je in hemelsnaam een bestand dat er anders uitziet als hetwelk je gebruikt...

Link naar reactie
Delen op andere sites


×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.