Fonction ne donne pas le résultat esompté

Jaynino -  
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
J'ai une macro pourtant simple... Mais je fais face à un problème qui ne s'était jamais présenté à moi... Et bon sang que c'est énervant. J'en jetterais presque mon ordi par la fenêtre !!!

J'ai le code suivant (par exemple)

ActiveSheet.Cells(1, 1).Select
MsgBox (Application.WorksheetFunction.CountA(Rows(ActiveCell.Row)))

Et le countA me renvoi 0 alors que mes lignes ne sont pas vides...

Par ailleurs et je ne sais pas si c'est lié, si je ne met pas ActiveSheet avant Cells(1, 1).Select, ça bug... (erreur d'exécution '1004'...

J'en perd la boule... Help please.

Merci.
Bonne soirée.
A voir également:

1 réponse

Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Bonjour,

Et avec ce code-ci ?
ActiveSheet.Cells(1, 1).Select 
MsgBox (Application.WorksheetFunction.CountA(ActiveCell))


Et je ne rencontre pas de problème en exécutant sans le "ActiveSheet"...
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Au passage, tu gagneras énormément de temps d'exécution en préférant la forme
Cells(i,j)
,avec i et j des variables que tu incrémentes ou décrémentes, plutôt que d'utiliser des Select.

Pour illustrer :
i = 1
Do
MsgBox(Application.WorksheetFunction.CountA(Cells(i,1))
i = i+1
Loop while (condition)

et
Cells(1,1).Select
Do
MsgBox(Application.WorksheetFunction.CountA(ActiveCell))
ActiveCell.Offset(1,0).Select
Loop while (condition)

Sont deux codes faisant strictement la même chose, mais le premier est nettement plus rapide à l'exécution que le second.
0