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

als er iets wordt ingevuld in 1 van de cellen dan een verplicht veld aanmaken

Status
Niet open voor verdere reacties.

Renatevg

Gebruiker
Lid geworden
18 feb 2011
Berichten
19
Beste lezers,

Zie onderstaande; als er in kolom c iets ingevuld wordt, is kolom e verplicht.
Echter in de onderstaande heb ik staan als k is ingevuld dat dan b een verplicht veld is.
Echter wil ik zeggen KOLOM k t/m m (dus als er een waarde is in kolom k/l/m dan moet er iets ingevuld worden in B), dit krijg ik niet voor elkaar, steeds een foutmelding,
wie kan mij hierbij helpen?

wat ik nu heb;

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("c1").Value <> "" And Range("e1") = "" _
Then Range("c1").Select

Dim i As Integer
For i = 1 To Range("A65536").End(xlUp).Row
If Cells(i, 5).Value = "" And Cells(i, 3).Value <> "" Then _
Cells(i, 5).Select
Next

If Range("k1").Value <> "" And Range("b1") = "" _
Then Range("k1").Select

For i = 1 To Range("A65536").End(xlUp).Row
If Cells(i, 2).Value = "" And Cells(i, 11).Value <> "" Then _
Cells(i, 2).Select
Next
End Sub
 
Post eens een bestandje waarin dit zich voordoet en schrijf er bij wat het moet worden.
 
ja eigenlijk is het dus een blanko bestand nog, het gaat erom dus dat ik de vba code al heb gemaakt, maar het niet voor elkaar krijg om ipv als er een waarde staat in 1 cel, dit verspreiden over meerdere cellen.
 
Renate,

zoiets? (niet getest, want geen Excel bij de hand)

Code:
If worksheetfunction.counta(Range("k1:m1")).Value <>0 And Range("b1") = "" _
Then Range("b1").Select
 
Hoi Renatevg

Weet je zeker dat je je project goed hebt uitgedacht voor je begon.
Ik wil je met alle plezier helpen maar dit is wel een erg vreemde manier van invoer controleren.

Misschien is voorwaardelijke opmaak meer iets wat kan werken in jouw geval.
(het opkleuren van cellen onder bepaalde omstandigheden)

Of een ALS() formule die een waarde van een cel laat zien als deze cel een waarde bevat.

Het lijkt me geen goed idee om dit met vba op te lossen.

Succes met je project in elk geval,
Mark.
 
Laatst bewerkt:
Hoi Mark,

Hij werkt wel dus als ik 1 cel doe, maar als ik dus wil kiezen uit meerdere cellen dan niet,
met voorwaardelijke opmaak kan je geen verplichte cel aanwijzen als iets is ingevuld.

Want wil deze hebben, maar krijg dan foutmelding

Private Sub Worksheet_SelectionChangea(ByVal Target As Range)
If Range("k1:m1").Value <> "" And Range("b1") = "" _
Then Range("k1:m1").Select

Dim i As Integer

For i = 1 To Range("A65536").End(xlUp).Row
If Cells(i, 2).Value = "" And Cells(i, (11;14).Value <> "" Then _
Cells(i, 2).Select
Next
End Sub
 
Renate,

ik kan je (onvoldoende) helpen met de VBA code.

maar je kunt de code beter tussen tags
Code:
plaatsen.

tevens dien je voor de helpers aan te geven, welke foutmelding je krijgt.

daarnaast willen we ook graag weten met welke excel versie je werkt.
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("c1").Value <> "" And Range("e1") = "" _
Then Range("c1").Select

Dim i As Integer

For i = 1 To Range("A65536").End(xlUp).Row
If Cells(i, 5).Value = "" And Cells(i, 3).Value <> "" Then _
Cells(i, 5).Select
Next

End Sub

Private Sub Worksheet_SelectionChangea(ByVal Target As Range)
If Range("k1:m1").Value <> "" And Range("b1") = "" _
Then Range("k1:m1").Select

Dim i As Integer

For i = 1 To Range("A65536").End(xlUp).Row
If Cells(i, 2).Value = "" And Cells(i, (11;14).Value <> "" Then _
Cells(i, 2).Select
Next
End Sub

Ik werk met excel 2010, de eerste code werkt wel, is op basis van 1 cel, de 2 code werkt niet, wordt rood (zie hier vet gedrukt), bedankt voor jullie hulp alvast!
 
Code:
If Cells(i, 2).Value = "" And Cells(i, (11;14).Value <> "" Then _
 Cells(i, 2).SelectNext

Wat wil je bereiken? er is nogal wat fout aan die regel

Code:
    For i = 1 To Range("A65536").End(xlUp).Row
        
        If Cells(i, 2).Value = "" And Cells(i, 11).Value <> "" Then
            
            Cells(i, 2).Select
    
        End If
    
    Next

Selecteert de cel in kolom B als kolom B of kolom K leeg is.

Maar nogmaals, ik denk niet dat je goed bezig bent.

Een lus structuur is niet uitgevonden voor dit soort dingen.
Bovendien gaat het je tegenwerken bij het groeien van je document.

Probeer bijvoorbeeld met voorwaardelijke opmaak cellen die ingevuld moeten worden met een kleur aan te duiden in plaats van de cel te selecteren waar je data verwacht. behalve dat ik denk dat het duidelijker is, is het ook voor jou en anderen makkelijker beheersbaar.
 
Laatst bewerkt:
Test deze eens of die beantwoord aan je doelstelling.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1:B1000")) Is Nothing Then
        If Target <> "" And Application.CountA(Cells(Target.Row, 11) _
                .Resize(, 3)) = 0 Then Cells(Target.Row, 11).Resize(, 3).Select
    End If
    If Not Intersect(Target, Range("K1:M1000")) Is Nothing Then
        If Target <> "" And Cells(Target.Row, 2) = "" Then Cells(Target.Row, 2).Select
    End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan