Ga naar inhoud

Aanbevolen berichten

Geplaatst:

Beste Excel kenners,

 

Ik heb een probleem!
Graag wil ik ervoor zorgen dat wanneer 1 van de onderste velden(zie bijlage) niet is ingevuld met ja of nee, maar de bovenste velden wél allemaal op ja staan, er voor het opslaan een melding komt dat niet alle velden zijn ingevuld.

Wanneer ik nu één van de velden waar 'ja' staat leeg laat, krijg ik al een melding dat er een veld is vergeten, dit is goed, dit moet zo blijven. Echter in fase 2 wil ik dat er wanneer deel 1 is ingevuld, maar deel 2 niet volledig, er ook een melding komt.

 

Dit zal vast mogelijk zijn, maar ik kom er niet helemaal uit.

 

Ik hoor het graag!

 

Groet

Knipsel.PNG

Geplaatst:

@Hilhorst,

plaats hier een (voorbeeld)bestandje waaruit blijkt in welke rijen en kolommen je gegevens staan en welke macro je voor de eerste melding gebruikt. Dan zul je voor je vraag snel een oplossing hebben.

Geplaatst:

Wanneer ik op dit moment 1 van de velden onder 'beoordeling aanvraag' niet ingevuld heb, krijg ik bij afsluiten een melding 'niet alle velden beoordeling aanvraag ingevuld'.

Dit doe ik in workbook met:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim i As Byte
    Dim Vereisten As String
    Dim Onvolledig As Boolean
    For i = 1 To 12
        Vereisten = Choose(i, "E9", "E10", "E11", "E12", "E13", "E14", "J9", "J10", "J11", "J12", "J13", "J14")
        If Range(Vereisten).Value = "" Then
                    Onvolledig = True
                                Range(Vereisten).Interior.ColorIndex = 0
        End If
    Next i
    If Onvolledig = True Then
        If MsgBox("Niet alle velden van de beoordeling aanvraag zijn ingevuld" + _
           Chr(10) + "Wilt u toch afsluiten?", vbExclamation + _
           vbYesNo, "Afsluiten") = vbNo Then
            Cancel = True
        End If
    End If

End Sub

 

Nu zou ik graag een melding willen krijgen wanneer alle velden bij de beoordeling aanvraag zijn ingevuld(E9 tm J14), maar er een veld bij 'Ontwerp & calculatie' leeg is(J20 tm J35).

zelf zat ik te denken in deze richting:

 

If Onvolledig = False Then
If Range(J20, J21 etc).Value = "" Then

 If MsgBox("Niet alle velden ontwerp & calculatie zijn ingevuld" + _
           Chr(10) + "Wilt u toch afsluiten?", vbExclamation + _
           vbYesNo, "Afsluiten") = vbNo Then
            Cancel = True
        End If
    End If

End Sub

 

Maar hoe ik dit in zn totaliteit moet neerzetten kom ik niet uit...

 

excel 1.PNG

Geplaatst:

1. Wil je 1 of 2 meldingen, want dat is niet duidelijk? Als toch alle omrande cellen moeten worden ingevuld, kun je best voor 1 melding kiezen.

2. In je afbeelding lopen de omrande cellen t/m rij 33, maar in je tekst heb je het over 35, welke rij is  het?

3. Wat is de naam van het blad waarin bovenstaande gegevens staan.

4. Als alle gewenste cellen zijn ingevuld, moet dan bij afsluiten het bestand niet worden opgeslagen? Als het antwoord ja is, moet bekend zijn:

- de naam van het bestand;

- de exacte lokatie waar je het bestand wil opslaan (bv: C:\Documents and Settings\Gebruikersnaam\Bureaublad).

Opm: Als je geen afbeelding maar een bestand had geplaatst, zouden vraag 2 en 3 niet nodig zijn geweest. Bovendien zouden dan vragenbeantwoorders je blad niet hebben moeten nabouwen. Houd daar voortaan rekening mee!

Geplaatst:

Ah zo bedoel je!

 

1. ik wil graag twee(verschillende) meldingen. Dit omdat de lijst door twee verschillende afdelingen wordt ingevuld.

 

2. in mijn screenshot kon je inderdaad maar tot 33 zien, in werkelijkheid loopt het tot 35.

 

3. bestand toegevoegd

 

4. op het moment geeft hij een melding wanneer je het bestand uit klikt, dat niet alle velden van de aanvraag zijn ingevuld.
nu wil ik een tweede melding wanneer deze velden WEL zijn ingevuld maar de velden J20-J35 nog niet...

 

Ik moet nog even wennen aan de juiste manier van vragen stellen, maar we komen er wel ;)

PROBE (Peeke) - tussenversie.xlsm

Geplaatst:

Jouw Excelbestand geeft op mijn computer voortdurend dll-foutmeldingen. De oorzaken zijn de userforms. Die zijn niet in gebruik, maar ze laten zich bij mij niet verwijderen. Dat zou aan het verschil in Excelversie kunnen liggen. Daarom hieronder geen bestand, maar alleen de code behorend bij ThisWorkbook.

In de cellen waarin alleen ja of nee mag komen, kun je best die keuze via validatie laten bepalen, dan kan er bij de invoer geen fout worden gemaakt, zoals bv. het per ongeluk typen van een spatie.


Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim mystr As String, myrange1 As Range, myrange2 As Range
Dim a1 As Integer, a2 As Integer, answ
With Sheets("Checklist")
Set myrange2 = .Range("j20:j35")
Set myrange1 = Application.Union(.Range("e9:e14"), .Range("j9:j14"))
mystr = "": a1 = 0: a2 = 0
a1 = WorksheetFunction.CountA(myrange1)
a2 = WorksheetFunction.CountA(myrange2)
If a1 < 12 Then
mystr = "Beoordeling aanvraag"
Else
mystr = "Ontwerp en calulatie"
End If
End With
If WorksheetFunction.Or(a1 < 12, a2 < 16) Then
answ = MsgBox("Bij " & """" & mystr & """" & " zijn niet alle cellen ingevuld." & _
Chr(10) & "Wil u toch afsluiten?", vbYesNo)
End If
If answ = vbNo Then Cancel = True
End Sub

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • 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.