je manipule souvent dans mes programmes des tableaux (matrices), donc de type "Variant".
De temps en temps alors, j'ai besoin d'effacer certaines lignes du tableau.
Code:
myArray = HideZero(myArray)
(1)
Ainsi, mon tableau peut passer de n lignes à p lignes (p <= n)
Mais, cas rare mais possible, toutes les lignes du tableau peuvent devoir être enlevés, aussi je me retrouve avec un tableau vide (ou Empty), cas que je pourrais éventuellement traiter ainsi :
Code:
If IsEmpty(myArray) Then
'...
Else
'...
End If
(2)
(encore que ce code je ne l'ai pas encore testé)
Le problème est que l'exécution de ce code plante à (1) avec l'erreur suivante :
"Erreur d'exécution '13':
Incompatibilité de type"
Comment régler ce problème ?
Comment puis je quand même manipuler des tableaux vides ?
En fait, le tableau que je manipule ne correspond pas à un tableau dans une feuille Excel, c'est un tableau ad-hoc.
En fait, j'aimerais éviter d'avoir à faire ça :
Code:
If Application.CountA(HideZero(myArray)) = 0 Then
'code si le tableau est vide
Else
myArray = HideZero(myArray)
'code si le tableau n'est pas vide
End If
Pourquoi ? Tou simplement parceque je passe alors DEUX fois dans la méthode "HideZero()", alors que je ne devrais y passer qu'une seule fois !
Bonsoir à tous,
effectivement à lire vos messages ce n'est pas claire ...
Je m'en suis sorti autrement en "catchant" l'erreur ("On Error ...") : S'il y a une erreur, c'est que le calcul n'a pas etre fait, alors je mets 0.
Le Tableau "myArray" est un tableau contenant différentes colonnes (disons par exemple une colonne pour le code, une pour le libelle, et une autre pour la position).
Si la position était vide (=0), je devais effacer la ligne de mon tableau, d'où la méthode "HideZero" qui me renvoie un nouveau tableau "expurgé" des lignes à positions nulles.
Sauf que, cas rare, le tableau retourné par la dite méthode est ... vide (Empty), et dans ce cas, et bien la ligne de commande
Code:
myArray = HideZero(myArray)
me renvoie l'erreur indiquée ci-dessus.
Or je voudrais pouvoir traiter le cas où, justement, le tableau retourné est vide, sans qu'une erreur me soit renvoyée en pleine tête !