Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel 2002] VBA If Statement werkt niet

Pagina: 1
Acties:

  • MrAngry
  • Registratie: December 2001
  • Laatst online: 08:41
Ik heb een VBA macro waarmee ik data uit verschillende sheets verzamel en onder elkaar paste zodat het in een grafiek gezet kan worden. Op de sheet waar alles naar toe gecopypaste wordt zocht ik het einde van de reeks met een simpele selection.end(xldown). Dat geeft een probleem als je reeks nog maar uit 1 waarde bestaat, want dan selecteer hij de rest van de rij (die leeg is). Dat heb ik geprobeerd op te lossen met een simpelen if statement die checked of er nog maar 1 waarde staat.
Maar die IF statement werkt niet:
code:
1
2
3
 Worksheets("Trend_control_graphs").Select
        If Application.WorksheetFunction.CountA("A:A") = 1 Then r2.Offset(1, 0).PasteSpecial Transpose:=True _
        Else r2.End(xlDown).Offset(1, 0).PasteSpecial Transpose:=True


VBA pakt altijd het stukje achter THEN, ook als CountA("A:A") niet 1 is (ik heb ter controle nog een countA in de worksheet gezet die ik monitor tijdens het runnen van de macro, die verandert wel goed mee). Heeft iemand een idee waarom dit niet werkt?

edit: Ik zie net met een watch in VBA op Application.WorksheetFunction.CountA("A:A") dat die 1 blijft als er extra data in de sheet wordt gepaste, terwijl de COUNTA in de worksheet zelf wel netjes mee update. Wie weet hoe dat komt?

[ Voor 10% gewijzigd door MrAngry op 10-09-2009 12:32 ]

Er is maar één goed systeem en dat is een geluidsysteem - Sef


Verwijderd

ik vermoed dat de oorzaak is dat countA niet weet naar welk bereik verwezen wordt, dit probleem bestaat uiteraard niet voor deze functie als het op een tabblad is ingevuld.
probeer eens met
Visual Basic:
1
If Application.WorksheetFunction.CountA(Worksheets("Trend_control_graphs").range("A:A")) = 1 Then '...
en in plaats van end(xldown) kan je ook van helemaal onderaan de rij een end(xlup).offset(1). ... doen, dat zal in het desbetreffende scenario altijd correct functioneren.

  • MrAngry
  • Registratie: December 2001
  • Laatst online: 08:41
Verwijderd schreef op donderdag 10 september 2009 @ 13:11:
ik vermoed dat de oorzaak is dat countA niet weet naar welk bereik verwezen wordt
Het lijkt erop dat dat vermoeden juist is. Hartelijk dank!

Er is maar één goed systeem en dat is een geluidsysteem - Sef