[VBA Excel] fonction counta

Résolu/Fermé
Petit Ecolier Messages postés 11 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 31 juillet 2007 - 12 juil. 2007 à 16:13
Petit Ecolier Messages postés 11 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 31 juillet 2007 - 16 juil. 2007 à 16:30
Bonjour,
Voila j'ai un petit problème sur le retour de la fonction counta. En effet celle la me renvoit la valeur "1" pour n'importe quelle plage que je définis.
Voici mon code :

Set plage_phi = Sheets("Données").Range(Cells(ligne_debut_acou, col_debut_acou), Cells(ligne_fin_acou, col_debut_acou))
Range("AI13").Select
ActiveCell.FormulaR1C1 = "=COUNTA(plage_phi)"
compt_phi = ActiveCell.Value
Set plage_lw = Sheets("Données").Range(Cells(ligne_debut_acou, col_fin_acou), Cells(ligne_fin_acou, col_fin_acou))
Range("AK13").Select
ActiveCell.FormulaR1C1 = "=COUNTA(plage_lw)"
compt_lw = ActiveCell.Value


Je pense bien que mes plages sont correctement définies car la suite de mon programme représente graphiquement ces plages et ca marche.
En fait ce que je veux faire c'est : ne pas tracer de graph (ou rajouter la série) si une des plages est vide. Donc si compt_phi ou compt_lw est égal à 0 je ne représente rien.
J'avais essayé IsEmpty mais ca ne fonctionne pas non plus.

Voici ce qu'on m'a répondu sur un autre forum.

Set plage_phi = Sheets("Données").Range(Cells(ligne_debut_acou, col_debut_acou), Cells(ligne_fin_acou, col_debut_acou))
With Range("AI13")
    .FormulaR1C1 = "=COUNTA(" & plage_phi.Address & ")"
    compt_phi = .Value
End With

Set plage_lw = Sheets("Données").Range(Cells(ligne_debut_acou, col_fin_acou), Cells(ligne_fin_acou, col_fin_acou))
With Range("AK13")
    .FormulaR1C1 = "=COUNTA(" & plage_lw.Address & ")"
    compt_lw = .Value
End With


A priori ca devrait fonctionner mais dans la fenêtre de variables locales, ces variables (compt_xx) restent désespérément nulles.
Pour info je les aies déclarées As Integer (c'est bien ce que renvoie COUNTA il me semble).

Merci beaucoup de votre future aide ;)

1 réponse

Petit Ecolier Messages postés 11 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 31 juillet 2007 1
16 juil. 2007 à 16:30
En fait il s'est avéré quand copiant le résultat sur une autre feuille de calcul, ca marchait.
J'ai donc écris ceci :
With Sheets("Tampon").Range("AI13")
...
...
End With
Idem pour "AK13" que j'ai d'ailleurs transformés respectivement en "A1" et "B1".
1