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

Macro -> cellen gevuld?

Status
Niet open voor verdere reacties.

Visiplan

Gebruiker
Lid geworden
7 mrt 2005
Berichten
206
Heb op basis van een bestandje dat ik hier heb gedownload een aangepaste macro gemaakt:

Functie van de macro:
Eerst vragen of de lege cellen zijn verborgen,
vervolgens controleren of cel A2 is ingevuld, zo niet, dan melding geven "cel A2 moet ingevuld worden, zo wel, dan controleren of cel F2 is ingevuld, zelfde verhaal, vervolgens cel E417, zelfde verhaal, als laatste D418, als deze ook is ingevuld, dan moet hij het opgegeven bereik gaan printen.
Nu had ik het printen voor elkaar, maar nu wil ik dus dat hij nog gaat kijken naar of de cellen wel ingevuld zijn.

Heb bijna geen verstand van macro's, dus misschien ziet het er wel heel dom uit, maar heb dit er van gemaakt:
Sub Afdrukken()
intAntwoord = MsgBox("Heeft u gedacht aan het VERBERGEN van de lege rijen?", vbYesNo, "Stoppen")
If intAntwoord = vbYes Then
Dim inhoud As String
inhoud = Range("A2").Formula
If inhoud = "" Then
inhoud = InputBox("Cel A2 moet ingevuld worden")
Range("A2").Formula = inhoud
Else
inhoud = Range("F2").Formula
If inhoud = "" Then
inhoud = InputBox("Cel F2 moet ingevuld worden")
Range("F2").Formula = inhoud
Else
inhoud = Range("E417").Formula
If inhoud = "" Then
inhoud = InputBox("Cel E417 moet ingevuld worden")
Range("E417").Formula = inhoud
Else
inhoud = Range("D418").Formula
If inhoud = "" Then
inhoud = InputBox("Cel D418 moet ingevuld worden")
Range("D418").Formula = inhoud
Else
Range("A1:U448").Select
Range("U448").Activate
Selection.PrintOut Copies:=1, Collate:=True
Range("A1").Select
End If
End Sub

Geeft hier een foutmelding, wie kan mij helpen met dit probleem?
 
Zo zou die het moeten doen;

Option Explicit

Sub Afdrukken()
Dim intantwoord
intantwoord = MsgBox("Heeft u gedacht aan het VERBERGEN van de lege rijen?", vbYesNo, "Stoppen")
If intantwoord = vbYes Then
Dim inhoud As String
inhoud = Range("A2").Formula
If inhoud = "" Then
inhoud = InputBox("Cel A2 moet ingevuld worden")
Range("A2").Formula = inhoud
End If
inhoud = Range("F2").Formula
If inhoud = "" Then
inhoud = InputBox("Cel F2 moet ingevuld worden")
Range("F2").Formula = inhoud
End If
inhoud = Range("E417").Formula
If inhoud = "" Then
inhoud = InputBox("Cel E417 moet ingevuld worden")
Range("E417").Formula = inhoud
End If
inhoud = Range("D418").Formula
If inhoud = "" Then
inhoud = InputBox("Cel D418 moet ingevuld worden")
Range("D418").Formula = inhoud
End If
Range("A1:U448").Select
Range("U448").Activate
Selection.PrintOut Copies:=1, Collate:=True
Range("A1").Select
End If
End Sub
 
Withaar, bedankt voor je reactie.

Heb nog even een aanvullend vraagje, krijg nu een inputbox, maar eigenlijk wil ik die niet hebben.
Hij moet gewoon zeggen dat die cel niet gevuld is en dat je dan alleen op "OK" kan drukken om dus de macro af te breken..
 
Niemand die mij hiermee kan helpen, dit is namelijk het laatste wat ik moet doen om mijn bestand / programma af te ronden.

Het is dus de bedoeling:
Hij vraagt eerst "Heeft u gedacht aan het VERBERGEN van de lege rijen" , hierop moet je kunnen antoorden ja of nee. bij ja, dan doorgaan met macro, bij nee, dan macro afbreken.
Ja -> dan moet hij controleren of de genoemde cellen zijn ingevuld. Als hij constateert dat een cel niet is ingevuld, dan moet hij aangeven "Cel -- moet ingevuld worden", dan is het de bedoeling dat je alleen op OK kan drukken en zodoende de macro afbreekt. Aangezien de genoemde cellen altijd ingevuld moeten worden.
 
Option Explicit

Sub Afdrukken()
Dim intantwoord
intantwoord = MsgBox("Heeft u gedacht aan het VERBERGEN van de lege rijen?", vbYesNo, "Stoppen")
If intantwoord = vbYes Then
Dim inhoud As String
inhoud = Range("A2").Formula
If inhoud = "" Then
inhoud = MsgBox("Cel A2 is niet gevuld", vbOKOnly, "Cel A2 is leeg")
End
End If
inhoud = Range("F2").Formula
If inhoud = "" Then
inhoud = MsgBox("Cel F2 is niet gevuld", vbOKOnly, "Cel F2 is leeg")
End
End If
inhoud = Range("E417").Formula
If inhoud = "" Then
inhoud = MsgBox("Cel E417 is niet gevuld", vbOKOnly, "Cel E417 is leeg")
End
End If
inhoud = Range("D418").Formula
If inhoud = "" Then
inhoud = MsgBox("Cel D418 is niet gevuld", vbOKOnly, "Cel D418 is leeg")
End
End If
Range("A1:U448").Select
Range("U448").Activate
Selection.PrintOut Copies:=1, Collate:=True
Range("A1").Select
End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan