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

Countif en countifs in vba

Status
Niet open voor verdere reacties.

mvdvlist

Gebruiker
Lid geworden
16 dec 2016
Berichten
901
Beste medeforummers,

Een korte vraag: In mijn workbook maak ik veel gebruik van formules in VBA
Bij de navolgende formules krijg ik foutmeldingen in regel 11 en regel 13 .Wat doe ik verkeerd, of zie ik over het hoofd?
Zelf denk ik dat ik iets als "formula" vergeet, maar kom er toch na veel zoeken niet helemaal uit...

Om de database lichter te maken verwijder ik na opslaan de formules.. Dat werkt prima, maar niet als bovengenoemde fouten optreden,
want dan worden bij de nieuwe gegevens uiteraard die twee formules niet meegenomen..

Code:
TextBox3.Value = "=[@Datum]"
TextBox11.Value = Val(TextBox9.Value) - Val(TextBox10.Value)
Blad9.[AAA1] = LAATSTELABEL.Caption
TextBox15.Value = "=SUBTOTAL(9,K:K)& "" KG"""
TextBox16.Text = ComboBox3.Text
TextBox23.Value = "=TEXT([@Datum2],""dd-mmmm-jjjj"")"
TextBox24.Value = "=WEEKNUM([@Datum2])"
TextBox25.Value = "=DATE([@M3],[@Afvalstroomnummer],[@Kolom1])"
TextBox26.Value = "=IF([@[IN of UIT]]=""UIT"",[@Netto],""0"")"
TextBox27.Value = "=SUM(C[-1])"
TextBox29.Value = "=COUNTIF(ProjectAantalAls,[@HulpkolomProject])"
TextBox30.Value = "=[@Project]"
TextBox31.Value = "=COUNTIFS(C[-15],[@Project],C[-28],[@Datum2])"

Code:
Blad2.[Contactentabel[[ID]:[AantallenAls]]].Copy
Blad2.[Contactentabel[[ID]:[AantallenAls]]].PasteSpecial Paste:=xlPasteValues
 
Beste Excel Amateur,

dit advies heb ik opgevolgd. Hier komen geen fouten uit tot nu toe, maar hij doorzoekt niet het hele project. Op een geven moment stopt de zoekfunctie, maar dan ben ik nog niet in de code van de commandbutton geweest. Hoe kan ik er voor zorgen dat ALLEEN DIE code wordt doorzocht? Als ik namelijk in de code van de CB begin, start de zoekfunctie toch automatisch in de Userform_Initialize.

Bedankt alvast voor je hulp...
 
Ik denk dat als je geholpen wil worden, de helpers het opptijs stellen als je ook een voorbeeld plaatst.
Natuurlijk met fictivegegevens.
 
Laatst bewerkt:
Misschien beter ja. Ik moet het dan wel eerst even "uitkleden"maar dat is geen probleem. Het is wel een behoorlijk groot bestand, maar ik ga er nu aan werken.
Neem me niet kwalijk als de code nog niet "netjes"is, maar dat komt in de afrondingsfase...Bedankt vast.
 
Hierbij het kale bestand. De formules die fout gaan, vind je onder de CB OK en Opslaan in het Wegen formulier. ( ALGEMEEN)
Die fouten heb ik even veranderd in opmerkingen, anders begin je gelijk al met een fout en zoek je lang voor niets.
Ik hoop dat dit helpt. Programma werkt overigens voortreffelijk, al meer dan 1000 wegingen mee gedaan. Mede dank zij jullie geweldige hulp.

Overigens staan er nog gegevens en tabbladen in het bestand, die niet meer nodig zijn, maar dat ga ik nog uitzoeken.
 

Bijlagen

Misschien een beetje laat (want nu veel werk) maar ik zou adviseren: Geef de controls op je formulieren zinnige namen zodat je als je de code leest ziet welke control het is. Ook is de tabvolgorde van het hoofdformulier niet ingesteld (druk maar eens op de tab toets om naar een "volgend" vakje te gaan, dat gaat niet in de volgorde die ik zou verwachten. Dat maakt invullen veel sneller als dat goed staat ingesteld. Tip: Control+klik één voor één de controls in de gewenste volgorde en vul dan bij eigenschappen bij de TabIndex 0 in.
 
Laatst bewerkt:
Jkpieterse, bedankt voor je bericht. Het formulier maakt gebruik van de module Algemeenmodule. Deze module verwacht identieke controle namen. Als een kenteken en of project wordt aangeklikt worden de meeste controles al ingevuld, dus de tabvolgorde is niet echt relevant.
 
Je snapt niet wat ik bedoel met tab volgorde denk ik. Open je formulier. Klik op het eerste vakje dat moet worden ingevuld. Druk nu op de TAB toets. Wordt nu het eerstvolgende vakje dat moet worden ingevuld actief? Zo niet, dan is de tab volgorde niet goed. Ik merkte meteen dat er fouten in de tabvolgorde zijn want ik ben gewend de TAB toets te gebruiken bij invullen van formulieren.
 
Dat begreep ik heel goed, maar in dit geval als ik een nieuw record aanmaak, kies ik eerst een project en daarna een kenteken. Dan zijn de meeste textboxen al ingevuld. De datum en tijd gaan middels een knop. Vandaar. Het probleem voor mij zijn puur de twee countif('s) formules
 
Ik vermoed dat het wel werkt als je de formule in A1 modus zet:

Code:
"=COUNTIFS(P:P,[@Project],C:C,[@Datum2]):
 
Ik ga dit zeker proberen, maar dat wordt wel morgen. Hartelijk dank alvast.
 
Een voorbeeldbestand maak je om het probleem te illustreren. Een compleet project plaatsen is dus geen voorbeeld.

Het voordeel van een voorbeeldbestand:
  • mogelijk begrijp je zelf waar het fout gaat;
  • de helpers hoeven jouw hele breiwerk aan formulieren en verborgen bladen niet te doorgronden;
  • en nog veel meer


Alles wat werkt en geen relevantie heeft tot de vraag kan je dus beter weglaten.

Op dit soort onzin zit niemand te wachten. Wie van de helpers zal een map "C:\Users\Weegbrug\Desktop\Overzichten\Weegbrug" hebben?
Code:
Private Sub Afsluiten_Click()
On Error Resume Next
ThisWorkbook.RefreshAll
ThisWorkbook.Save
  ThisWorkbook.SaveAs "C:\Users\Weegbrug\Desktop\Overzichten\Weegbrug" & " " & Format(Now, "dd mmm-yyyy") & ".xlsm"
  ThisWorkbook.SaveAs "C:\Users\Weegbrug\Desktop\Overzichten\Weegbrug.xlsm"
  ThisWorkbook.SaveAs "C:\Users\Weegbrug\Desktop\Weegbrug.xlsm"
End Sub
 
JKPieterse,
ik heb e.e.a opgelost met =subtotaal...

Die formule wordt wel geaccepteerd in VBA.
Hartelijk dank voor jullie adviezen. Alleen begrijp ik nog niet waarom countif(s) niet werkt op bovengenoemde manier, maar daar ga ik nog wel over brainstormen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan