Ga naar inhoud

Aanbevolen berichten

Geplaatst:

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

  • Reacties 44
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Geplaatst:

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 :-)

Geplaatst:

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.

Geplaatst:

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.

Geplaatst:

Als ik de . voor de Range's weghaal, krijg ik deze foutmelding nimmer...

Maar dan volgende foutmelding: te weining stackruimte...

 

Nog wat proberen...

Geplaatst:

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

Geplaatst:

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 :-)

Geplaatst:
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...


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