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

Excel waarden nakijken

Status
Niet open voor verdere reacties.

nielsbl11

Gebruiker
Lid geworden
26 sep 2012
Berichten
98
Pas geleden heb ik een vraag op dit forum gezet over het controleren van bepaalde cellen.
Toen moest hij in 1 kolom gaan zoeken naar een benaming in de cel erachter of deze niet leeg was. Maar na een aantal testen blijkt hier toch een foutmelding bij voor te komen als een van de waarden die vergeleken wordt ontbreekt.

Dit is op 2 manieren aan te passen;
- of de bestaande code
- of een voorwaarde met if en else

hoe zet je zoiets neer van if AF06_01, AA01_09 of CA10_12 ontbreken then msgbox "waarden ontbreken"
else :
Code:
 Sheets("Leaflet").Select
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 & " rode cellen bevatten geen waarde, zie AX07_01 en AX07_02."
MsgBox msg
Range("E6").Value = msg
 Sheets("Programma").Select
Range("E3").Value = msg
End If
 
Vermijd het gebruik van 'Select' en 'Activate' in VBA.
Gegevens op 3 plaatsen wegzetten lijkt me ook wat veel van het goede.

Code:
Sub M_snb()
    For j = 1 To 2
      x = Application.Match(Choose(j, "AX07_01", "AX07_02"), Sheets("Leaflet").Range("A1:A400"), 0)
      If Not IsError(x) Then
            If Cells(x, 2) = "" Then
                Cells(x, 2).Interior.ColorIndex = 5
                c01 = c01 & "&" & Cells(x, 2).Address
            End If
        End If
    Next
    
    If Not IsEmpty(c01) Then MsgBox "lege cellen: " & c01
    Sheets("Leaflet").Range("E6") = c01
    Sheets("Programma").Range("E3") = c01
End Sub
 
Dan heb ik mezelf dat verkeerd aangeleerd want dit komt vaker voor in mijn code. Hoe kan ik dit omschrijven zonder select?

Code:
  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
 
Code:
Sheets("Programma").Range("E2:E3").ClearContents
with Sheets("Leaflet")
   .Range("B1:B400").Interior.Pattern = xlNone
   .Range("E5:E6").ClearContents
end with

Doe eens ruig: koop eens een basisboek VBA en neem dat van voor naar achter door.....
 
Mijn code werkte voor AX07_01 en AX07_02 maar nu ben ik deze aan het uitbereiden en nu worden alle waarden blauw in plaats van de lege cellen:

Code:
    For i = 1 To 52 'aanpassen aan je aantal voorwaarden
      y = Application.Match(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"), Sheets("Leaflet").Range("A1:A250"), 0) 'aanvullen met jouw voorwaarden
      If Not IsError(y) Then
            If Cells(y, 52) = "" Then
                Cells(y, 2).Interior.ColorIndex = 5
                c02 = c02 & "&" & Cells(y, 52).Address
            End If
        End If
    Next
    
    If Not IsEmpty(c02) Then MsgBox "lege cellen: " & c02
    Sheets("Leaflet").Range("E5") = c02
    Sheets("Programma").Range("E2") = c02
    Columns(5).Replace "$", ""
    Columns(5).Replace "&", ","
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan