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

Visual Basic

Status
Niet open voor verdere reacties.
Mijn welgemeende excuses ik heb het bericht te snel gelezen waardoor ik de laatste oplossing niet zag.

Het programma is nu bijna helemaal naar wens:

laatste bijkomstigheid is dat er zodra het bestand geopend wordt gelijk wordt gezocht naar fouten. Als je deze hierna verwijderd moet het bestand opnieuw geopend worden om te kijken of alles nu naar wens is. ik heb nu een button opnieuw zoeken in excel gezet.

nu moet ik de code die ik heb geschreven in een module zetten neem ik aan?
 
Ik zet de meeste macro's in een module, alleen de eventmacro's niet.


Niels
 
dan zet je de code die de waardes controlleerd in een module tussen functions

Code:
Function fnccontrole()



End Function

en zet je in het programma zelf onder de button fnccontrole()
 
als ik =fnccontrole() onder de button plaats, staat er : verwacht regelnummer compileerfout
 
Je bent me een macro bezig niet met een functie.
dus het is een sub ipv een fuction.
De laatste code die ik je gegeven heb is een aanpassing van het laatste stukje van je complete macro

dit is je complete macro


Code:
Private Sub CommandButton1_Click()
For i = 1 To 13 'aanpassen aan je aantal voorwaarden
Set cl = Sheets("Leaflet").Range("a1:a400").Find(Choose(i, "AA01_01" ,"AA01_02", "AA01_03", "AA01_04", "AA01_05", "AA01_06", "AA01_07", "AA01_08", "AA01_09", "AB01_01", "AB01_02", "AB01_04", "AB01_06"), lookat:=xlWhole).Offset(, 1) 'aanvullen met jouw voorwaarden
If cl.Value = "" Then
cl.Interior.Color = vbRed
c01 = c01 & "," & cl.Address
End If
Next

If c01 <> "" Then
c01 = Replace(c01, "$", "")
msg = "Cel " & c01 & " is niet ingevuld."
MsgBox msg
Range("E5").Value = msg
End If
end sub

Niels
 
ja maar ik zet nu alle codes onder de command button1

maar als ik een stukje code op meerdere plekken wil gebruiken kan ik gebruik maken van een module toch,

en dan de module oproepen onder de command button1
 
eerste code staat in een module

Code:
Sub controle()
msgbox"blablabla"

end sub

Code:
Private Sub CommandButton1_Click()
call controle
end sub

maar dit gaat niet werken met variabelen als je deze niet in een module defineerd,
zet boven in je module buiten de sub om deze in meerdere macro's te kunnen gebruiken.
Code:
dim c01 as string

Niels
 
Laatst bewerkt:
werkt nog niet

Code:
Sub controle()

 'foutmeldingen van de vorige leaflet verwijderen
  Sheets("Programma").Select
 Range("E2:E3").Select
    Selection.ClearContents
    Sheets("Leaflet").Select
Sheets("Leaflet").Range("B1:B400").Interior.Pattern = xlNone
 Range("E5:E6").Select
    Selection.ClearContents
'foutmeldingen zoeken
'zet een nieuwe waarde achter set cl tussen aanhalingstekens en plaats er een komma achter
For i = 1 To 52 'aanpassen aan je aantal voorwaarden
Set cl = Sheets("Leaflet").Range("a1:a400").Find(Choose(i, "AA01_01", "AA01_02", "AA01_03", "PG04_04", "AA01_04", "AA01_05", "AA01_06", "AA01_07", "AA01_08", "AA01_09", "AB01_01", "AB01_02", "AB01_04", "AB01_06", "AB01_07", "AB04_02", "AB04_04", "AC01_02", "AC01_03", "AC03_02", "AC03_05", "AC03_06", "AC03_07", "AC03_08", "AC03_09", "AC03_10", "AC04_01", "AC04_03", "AC09_01", "AC15_03", "AH02_01", "AH02_02", "AH02_03", "AI02_01", "AI02_02", "AI02_03", "AI02_04", "DA03_01", "DB01_06", "DB01_10", "DC04_02", "DC07_02", "DG01_02", "DG05_01", "DG05_02", "DG05_03", "DI01_02", "DI01_03", "DI01_04", "DI01_05", "DM05_01", "FA04_01"), lookat:=xlWhole).Offset(, 1) 'aanvullen met jouw voorwaarden
If cl.Value = "" Then
cl.Interior.Color = vbRed
c01 = c01 & "," & cl.Address
End If
Next

If c01 <> "" Then
c01 = Replace(c01, "$", "")
msg = "Cel " & c01 & " zijn niet ingevuld."
MsgBox msg
Range("E5").Value = msg
Sheets("Programma").Select
Range("E2").Value = msg
End If
Sheets("Leaflet").Select
'Type machine moet aangeduid zijn anders staat er veelvoudig NB in het programma
For i = 1 To 2 'aanpassen aan je aantal voorwaarden
Set cl = Sheets("Leaflet").Range("a1:a400").Find(Choose(i, "AX07_01", "AX07_02"), lookat:=xlWhole).Offset(, 1) 'aanvullen met jouw voorwaarden
If cl.Value = "" Then
cl.Interior.Color = vbRed
c02 = c02 & "," & cl.Address
End If
Next

If c02 <> "" Then
c02 = Replace(c02, "$", "")
msg = "Cel " & c02 & " Machine type ontbreekt op het leaflet, zie AX07_01 en AX07_02."
MsgBox msg
Range("E6").Value = msg
 Sheets("Programma").Select
Range("E3").Value = msg
End If

End Sub


Private Sub CommandButton1_Click()
call controle
end sub
 
probleem is opgelost was een probleem buiten excel om. Zonder wijzigingen werkt het nu.

Wederom super bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan