Note: The other languages of the website are Google-translated. Back to English

Hoe maak je een bepaalde cel verplicht in te voeren voordat je de werkmap sluit?

Wanneer u bijvoorbeeld een werkboek deelt met andere gebruikers voor het doen van een enquête waarvoor de echte naamregistratie nodig is, moet elke gebruiker die wordt onderzocht, zijn naam invoeren in B1. Maar soms sluiten sommige gebruikers de werkmap na onderzoek zonder hun naam in te voeren. In dit artikel introduceer ik een VBA om een ​​bepaalde cel verplicht te maken voordat ik de werkmap sluit.

Maak een cel verplicht in te voeren met VBA


pijl blauw rechts bel Maak een cel verplicht in te voeren met VBA

1. Schakel de werkmap in die de verplichte cel bevat en druk op Alt + F11 sleutels om te openen Microsoft Visual Basic voor toepassingen venster.

2. In de Project dubbelklik op het paneel Dit Werkboek, en ga naar selecteren werkboek en VoorSluiten uit de rechter sectielijst en plak vervolgens onderstaande code in het script. Zie screenshot:

VBA: maak een cel verplicht

    If Cells(1, 2).Value = "" Then
        MsgBox "Cell B1 requires user input", vbInformation, "Kutools for Excel"
        Cancel = True
    End If

doc verplicht voer 1 in

3. Sla vervolgens deze code op en sluit dit pop-upvenster. Als de cel B1 nu leeg is wanneer u de werkmap sluit, verschijnt het onderstaande dialoogvenster om u eraan te herinneren iets in B1 in te voeren. Zie screenshot:
doc verplicht voer 2 in

Tip: U kunt cel B1 wijzigen in andere cellen die u wilt.


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (21)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
hoe maak ik kolom D16-D300 verplicht als kolom B16-300 waarden heeft? Ik gebruikte de onderstaande code voor rij 16 en probeerde variaties, maar het werkt niet. alle hulp wordt zeer op prijs gesteld! 'ons zaken doen als een verplicht veld - moet worden opgelost als er geen zijn en er verschijnt een venster Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Stap 1: Controleer of cel A1 leeg is If Sheets ("Sensitive Leave Tracker").Bereik ("B16").Value "" And Sheets("Sensitive Leave Tracker").Range("D16").Value = "" Dan 'Stap 2: Leeg: annuleer de Sluiten en vertel de gebruiker Annuleren = True MsgBox "Cant veld verplicht sluiten" 'Stap 3: Niet leeg; Opslaan en anders sluiten ActiveWorkbook.Close SaveChanges:=True End If End Sub
Deze opmerking is gemaakt door de moderator op de site
Hallo, sorry dat ik zo laat reageer. Hier is de macrocode die u mogelijk nodig heeft. Als het werkt, laat het me weten. Bedankt!

Als Application.WorksheetFunction.CountA(Range("B16:B300")) > 0 then

If Application.WorksheetFunction.CountA(Range("D16:D300")) <> Range("D16:D300").Count Then

MsgBox "Cell D16:D300 vereist gebruikersinvoer", vbInformation, "Kutools for Excel"

Annuleren = Waar

End If

End If
Deze opmerking is gemaakt door de moderator op de site
hoe maak ik kolom Q7-Q500 verplicht als kolom B7-B500 waarden heeft?

Ik wil flle niet opslaan voordat ik de verplichte archivering heb voltooid.

bv.
Als ik een waarde / tekst in kolom D7 tot D500 plaats, moet kolom Q7 tot Q500 verplicht zijn. (venster pop-up)
Als ik geen waarde / tekst in kolom D7 tot D500 heb geplaatst, moeten Q7 tot Q500 leeg zijn
Deze opmerking is gemaakt door de moderator op de site
Hallo, probeer bovenstaande VBA en verander de verwijzing naar je eigen behoefte.
Deze opmerking is gemaakt door de moderator op de site
Heb je hier ooit een boete voor gekregen?
Deze opmerking is gemaakt door de moderator op de site
Sorry, welke vraag bedoel je?
Deze opmerking is gemaakt door de moderator op de site
Hallo, bedankt voor deze formule, het werkt!

Nu heb ik echter een sjabloon gemaakt waarin verschillende cellen verplicht moeten worden ingevuld. Maar nadat ik de sjabloon heb gemaakt en de macro heb ingevoerd, kan ik deze niet sluiten, omdat ik de cellen moet invullen :) Ik kan dus geen sjabloon verzenden...(waar de verplichte cellen nog steeds leeg moeten zijn)


Kun je me helpen?

Bedankt!
Deze opmerking is gemaakt door de moderator op de site
Elke update over dit?
Deze opmerking is gemaakt door de moderator op de site
Hier heb ik ook interesse in, bedankt!
Deze opmerking is gemaakt door de moderator op de site
Ik heb hetzelfde probleem. Is er een manier om een ​​cel verplicht maar leeg te maken voor een sjabloon?
Deze opmerking is gemaakt door de moderator op de site
Hallo allemaal, ik ontdekte dat de oplossing was om de macro te pauzeren in het alt+f11-scherm. Het kan dan worden opgeslagen en zal opnieuw opstarten wanneer het de volgende keer wordt geopend. Om dit te doen, drukt u op alt + f11 en vervolgens in de rij met pictogrammen boven het venster (dezelfde als waar het kleine blauwe pictogram van de bestandsschijf zich bevindt) ziet u de pictogrammen Afspelen, Pauzeren, Stoppen in groen en blauw (moet staan ​​onder Debug en Uitvoeren opties). Klik op de middelste pauzeknop en je kunt opslaan.
Deze opmerking is gemaakt door de moderator op de site
Hallo allemaal, ik ontdekte dat de oplossing was om de macro te pauzeren in het alt+f11-scherm. Het kan dan worden opgeslagen en zal opnieuw opstarten wanneer het de volgende keer wordt geopend. Om dit te doen, drukt u op alt + f11 en vervolgens in de rij met pictogrammen boven het venster (dezelfde als waar het kleine blauwe pictogram van de bestandsschijf zich bevindt) ziet u de pictogrammen Afspelen, Pauzeren, Stoppen in groen en blauw (moet staan ​​onder Debug en Uitvoeren opties). Klik op de middelste pauzeknop en je kunt opslaan.
Deze opmerking is gemaakt door de moderator op de site
Hallo, probeer onderstaande code, die andere gebruikers dwingt om een ​​waarde in het bereik A7:M7 in te voeren voordat de werkmap wordt gesloten, maar sta jezelf toe de werkmap te vullen zonder deze te vullen.
Let op: verander de zonnebloem in je eigen gebruikersnaam. Om uw gebruikersnaam te zoeken en te bewerken, klikt u op Bestand > Opties > Algemeen > Gebruikersnaam.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim rg As Range
Dim rgs As Range
Set rgs = Application.Range("A7:M7")
If Application.UserName = "sunflower" Then
Exit Sub
End If
    For Each rg In rgs
        If rg.Value = "" Then
        MsgBox "Range A7:M7 requires user input", vbInformation, "Kutools for Excel"
        Cancel = True
        Exit Sub
       End If
    Next
End Sub

Ik hoop dat deze code je kan helpen.
Deze opmerking is gemaakt door de moderator op de site
Is er een manier waarop ik Vereiste cel f4 en F5 gegevens kan hebben voordat ik ze sluit of opslaat?
Deze opmerking is gemaakt door de moderator op de site
Verander gewoon B1 in F4 en F5 in het tekstvak om gebruikers eraan te herinneren.
Deze opmerking is gemaakt door de moderator op de site
Ik wil de rijen C2 t/m C7 verplicht en C13 t/m C19 verplicht maken?

Alle hulp?

Er zijn hier 2 reeksen bereiken, maar onder dezelfde kolom.
Deze opmerking is gemaakt door de moderator op de site
ik wil de maatstreepjes verplicht maken in het blad
Deze opmerking is gemaakt door de moderator op de site
Is er een manier om het invoeren van cellen verplicht te maken voordat een Active X-opdrachtknop kan worden gebruikt? Ik heb een opdrachtknop ingesteld om een ​​formulier via e-mail in te dienen, maar ik wil bepaalde cellen verplicht maken voordat de knop de e-mail verzendt.
Deze opmerking is gemaakt door de moderator op de site
Hallo, Craig, sorry dat dit probleem hier niet kan worden opgelost, misschien kunnen anderen je helpen.
Deze opmerking is gemaakt door de moderator op de site
Vraag, de code werkte, maar hoe kan ik een bereik kiezen van A7:M7 tot de laatste rij?

en wanneer de gebruiker de werkmap opslaat of sluit, moet het verplichte veld worden ingevuld
Deze opmerking is gemaakt door de moderator op de site
Hallo, Lester, hier is een code die we hebben aangepast en die je kan helpen, verander het bereik A2:F2 naar het bereik als je nodig hebt.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'UpdatebyExtend20220916
Dim xRgCount As Integer

Dim xURg As Range

Dim xStr As String

Dim xWSh As Worksheet

Dim xRg, xRg1, xRg2, xRg3 As Range

xStr = "A2:F2"

 

Set xWSh = Application.ActiveSheet

Set xRg = xWSh.Range(xStr)

Set xURg = xWSh.UsedRange

Set xRg1 = xWSh.Cells.Item(xRg.Row + xRg.Rows.Count, 1)

Set xRg2 = xURg.Item(xURg.Count)

Set xRg3 = xWSh.Range(xRg1, xRg2)

Debug.Print xRg3.Address

If (xURg.Row + xURg.Rows.Count - 1) > (xRg.Row + xRg.Rows.Count - 1) Then

   If Application.WorksheetFunction.CountA(xRg3) <> xRg3.Count Then

    MsgBox "There are blank cells under range A2:F2", vbInformation, "Kutools for Excel"

Cancel = True

   End If

End If

End Sub


Er zijn nog geen reacties geplaatst
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0   Personages
Voorgestelde locaties