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

cel overslaan aan de hand van invoer van een andere cel

Status
Niet open voor verdere reacties.

dabber09

Gebruiker
Lid geworden
2 nov 2011
Berichten
22
als ik in cel A2 een getal plaats > dan 10 dan moet hij cel B2 overslaan of blokkeren is deze <dan 10 dan moet ik iets invullen.
hoe kan ik dit oplossen
 
Gegevensvalidatie in B2:
Geheel getal:
Gelijk aan:
Getal: =A2<10
 
Hallo HSV
Heb deze geprobeerd maar in beide gevallen kan ik cel b2 niks invullen en krijg de melding "de waarde die u hebt ingevoerd is ongeldig "
Verder zou ik graag dat hij die cel b2 overspringt en naar de volgende cel c2 gaat
 
Hallo dabber09,

Test het eens.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then
 Me.Unprotect
  Cells.Locked = False
 With Range("B2")
  .Locked = IIf(Range("A2") < 10, 0, 1)
 Application.Goto IIf(.Locked, Range("C2"), Range("B2"))
   End With
  Me.Protect
 End If
End Sub
 
hallo Harry
Heb dit geprobeerd maar werkt niet
Als ik in cel B2 sta en wil naar A2 springt hij elke keer naar B2 dus ik kan niks invullen in A2
ik kan dus niet in cel A2 beginnen met een waarde in te geven
kun je me mss nog eens helpen
gr Henk
 
Vreemd; Bij mij niet Henk.
 

Bijlagen

  • dabber09.xlsm
    14,7 KB · Weergaven: 45
Hallo Harry
De file die je gestuurd hebt werkt wel en ik had blad niet beveiligd mss dat het daar aan lag.
Als ik nu in cel A5 hetzelfde wil is het gewoon copieren toch ?
Voor de rest harstikke bedankt nu kan ik verder met mijn Formulier

gr Henk
 
Met een aanpassing op de macro van HSV

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2,A5")) Is Nothing Then
 Me.Unprotect
 With Target.Offset(, 1)
  .Locked = IIf(Target < 10, 0, 1)
 Application.Goto IIf(.Locked, Target.Offset(, 2), Target.Offset(, 1))
   End With
  Me.Protect
 End If
End Sub


Niels
 
Hallo Harry
Een vraagje hierop nog.
Stel dat ik door ingave in A2 meerdere cellen wil blokkeren kan ik dan with range ("B2:b5") ingeven ?
 
Sorry maar mijn naam is geen Harry.

en nee dat doe je als volgt.

Code:
With Target.Offset(, 1).resize(4)

De rest van de code blijft hetzelfde


Niels
 
Laatst bewerkt:
Sorry Niels dat die ook voor Harry bedoelt maar iedere tip is welkom
Houdt dat in dat ik met resize het aantal cellen in kolom B kan aangeven ?
En als ik dan A3 t/m A5 eveneens wil blokkeren?
Ik denk als ik die twee vragen nog beantwoord heb dat ik een leuk formulier kan maken
gr Henk
 
Ik dacht dat je op mijn code reageerde omdat je dat er meteen onder deed.

Ik begrijp niet helemaal waarom je A5 ook wilt blokkeren terwijl je eerder vroeg om de macro ook op a5 te laten werken.

Met resize kun je het aantal cellen uitbreiden, het eerste cijfer is voor het aantal rijen, het tweede voor het aantal kolommen.

Code:
With Target.resize(4,2)

Niels
 
Hallo Niels
Klopt wel maar wil een paar dingen weten zodat ik zelf aan de slag kan en weet nu hoe ik het kan uitbreiden
met resize (4,2) wil heten dat je 4 rijen blokkeerd en 2 kolommen als ik het nu goed begrijp . 4 rijen dus in kolom B en in kolom C
 
Klopt gedeeltelijk, het zijn À en B , daar vroeg je om.
Als je de offset (,1) voor de resize laat staan zijn het B en C

Niels
 
oke maar nu heb je me nieuwsgierig gemaakt en wil ik nog een ding weten en dan ga ik aan de slag.
We zijn ervan uit gegaan dat ik in cel A2 iets invul , maar de mensen op de werkvloer moeten een code scannen en daar gebruik ik een deel van dmv de functie Deel. het resultaat staat dus in cel A2 , dus in die cel staat een formule. Nu werkt het hele verhaal van boven niet meer.
Ik wil het formulier zo maken dat ze alleen maar hoeven te scannen en de waarde dan automatisch in cel A2 komt en dan de open celllen allleen maar kunnen inullen. Graag nog een tip
gr Henk
ps het artikelnummer wat wordt gescand bestaat uit cijfers en letters
 
Waar wordt de info van de scanner geplaatst? Kun je de macro dan niet op die wijziging laten werken?

Niels
 
de info van de scanner wordt ook in het formulier geplaatst. aan de hand van de code die ik krijg via deel moeten de cellen worden geblokkeerd voor invullen. een code bv is 271x06003120c299 het type ketel wat daarbij hoort is 3120 en dat heb ik alleen nodig , dus een deel van het nummer en aan de hand daarvan moet ik gegevens binnen halen maar ook blokkeren voor ingave
 
Het gaat er om waardoor moet de macro geactiveerd worden?
Oftewel wat verandert er waardoor je de macro kun laten werken?
Is de cel of formule eerst leeg en heeft ie dan een waarde, of verander je van tabblad.

Niels
 
de code scan ik bv in cel h1 , daarna moet hij automatisch het deel zetten in A2 , dus in A2 staat de formule = deel( ). de uitkomst in A2 gebruik ik dan voor de rest van het formulier . Bij elke nieuwe ingave in H1 zal ook de rest veranderen , die ik wel vantevoren doe opslaan.

gr Henk
 
Ik weet niet hoe een scanner icm excel werkt maar kun het in de macro van de scanner zetten?
Je kunt proberen om vanuit de cel h1 de macro te laten werken, of een knop waarin de macro staat dan wordt het aangepast door hier op te drukken. Of evt. een dubbelklik event.


Niels
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan