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

aantal gebruikt cellen in een rij.

Status
Niet open voor verdere reacties.

longron

Gebruiker
Lid geworden
2 apr 2007
Berichten
361
Beste alle,

ik wil het aantal cellen wat gevuld is in een rij tellen middels vba.

E_Dag = aantal.als(ActiveCell.Offset(0, 0).Range("A1:AG1").Select) (zo iets.)


Wat doe ik verkeerd?

thanks,

Ronald
 
VBA is in het Engels.

Application.counta zal je moeten gebruiken of application.countif

offset(0,0) doet niets.

Code:
Sub VenA()
  x = Application.CountA(Cells(ActiveCell.Row, 1).Resize(, 33))
End Sub
 
Laatst bewerkt:
Of de hele regel gebruiken:
Code:
E_Dag = Application.CountA(Rows(ActiveCell.Row))
 
Beste beide ,

ik denk dat ik me niet goed heb uitgedrukt.
Volgens mij telt jullie formule het aantal cellen en ik wel alleen weten hoeveell cellen zijn gevuld met iets.

Thanks,

Ronald
 
Dus je hebt beide al getest en gekeken wat Application.CountA doet?
 
CountA telt het aantal argumenten, dus ik denk dat je het niet hebt getest.
 
Hai,

das raar,
wel getest maar misschien dan een ander fout.
in mijn routine moet hij lezen hoeveel dag de maand heeft.
want hij moet alle dagen aflopen naar de juiste dag.
echter geeft hij steeds 31 op als bereik.
ik kijk er nog beter na.
Thanks

Ronald

dit is trouwens de routine waarbij in rij 84 de maanddagen staat.
Sheets("Januari").Select
For x = 1 To 12
Range("C84").Select
E_Dag = Application.CountA(Cells(ActiveCell.Row, 1).Resize(, 31))
MsgBox E_Dag

For Z = 1 To E_Dag
weekdag$ = ActiveCell.value ': MsgBox weekdag$
weekdag$ = Format(weekdag$, "short date")
If weekdag$ = PrintD Then GoTo J_Dag
ActiveCell.Offset(0, 1).Range("A1").Select
'MsgBox Z
Next Z
MsgBox ActiveSheet.name
Sheets(ActiveSheet.Index + 1).Select
Next x
MsgBox ("Deze datum ligt niet in dit jaar "): End
End

J_Dag:
MsgBox ("dag gevonden")
 
Het is veel handiger om een voorbeeld document te plaatsen.
En zet code die je hier plaatst in code tags.
 
Je hebt gelijk.

hier een klein aftreksel van het geheel.

hoop dat dit wat duidelijkheid geeft.

Ben overigens erg blij met de adviezen.

Thanks,

Ronald
 

Bijlagen

  • Test Vinddag.xlsm
    17,9 KB · Weergaven: 39
In regel 2 en 3 zijn alle cellen gevuld dus ik begrijp niet wat je er mee wilt bereiken.
Daarnaast is het gebruik van Goto uit den boze en de $ tekens nergens voor nodig.
Het niet gebruiken van inspringpunten doet de leesbaarheid teniet.
 
Laatst bewerkt:
Hai Edmoor,

dank voor je opmerkingen.

Ik zal ze ter harte nemen en uit mijn routines proberen te verwijderen.
de Goto wil je dan veranderen naar if... than..else?


Iedere maand heeft een aantal dagen en om het makelijk te maken hebben we ook nog een schikkeljaar.

Onder dit kleine script staat nog veel meer.
Ik kies een datum via een kalender en dan moet ik daarmee verder.
om zo kort mogelijk te zoeken gebruik ik de for 1 to E_Dag

Hoop dat het je zo duidelijk is.

thanks,
Ronald
 
Dan wil je dus niet het aantal gevulde cellen op een regel weten maar de laatst gevulde cel.
 
Om de datum te vinden in een willekeurig blad.

Code:
Sub VenA()
printd = "2-2-2020"
  For Each sh In Sheets
    x = Application.Match(CDbl(CDate(printd)), sh.Rows(3), 0)
    If IsNumeric(x) Then
      MsgBox "De datum staat in: " & sh.Name & " in cel " & Cells(3, x).Address
      b = True
      Exit For
    End If
  Next sh
  If Not b Then MsgBox "niet gevonden"
End Sub
 
dat Is een andere benadering. Dat zou ook kunnen. Ik ga ernaar kijken.

Als ik de datum heb gevonden mag ik verder zoeken in de zelfde kolom.

Thanks. Ik ga kijken of ik verder kom.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan