Calcul sur colonne d'un tableau en VBA

b0uh34 Messages postés 56 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 19 février 2009 - 27 janv. 2009 à 11:05
b0uh34 Messages postés 56 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 19 février 2009 - 27 janv. 2009 à 16:50
Bonjour tout le monde et merci d'avance pour vos contributions.
Voila le problème : Je remplis un tableau Variant à l'aide de VBA puis j'essaie de calculer des Min, Max, Median et Moyennes sur certaines colonnes. Je fais bien attention de convertir la colonne 4 en double quand je la remplis.
Pour calculer les Min, Max Median et Moyenne voici mon code :

Ws.Range("AQ" & numero_ligne).Value = Round(Application.WorksheetFunction.Min(Application.WorksheetFunction.Index(tableau_Inforce, 0, 4)), Nombre_decimal)

Ca marche généralement... Mais ça plante parfois avec l'erreur Erreur d'exécution 13, Incompatibilité de type :s
Je me demande vraiment pourquoi.
Surtout quand je fais un petit test du genre :

Dim test_1() As Double
ReDim test_1(1 To nb_lignes_inforce)
   
 For i = 1 To nb_lignes_inforce
        test_1(i) = tableau_Inforce(i, 4)
Next i
Ws.Range("E" & numero_ligne + 45).Value = Application.WorksheetFunction.Min(Application.WorksheetFunction.Index(test_1, 0))

Il n'y a aucun souci... 
Merci d'avance   

7 réponses

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
27 janv. 2009 à 11:20
Bonjour,

Pourquoi tu défini ton tableau en variant? (Curiosité)

S.L.B.
<hr />
0
b0uh34 Messages postés 56 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 19 février 2009
27 janv. 2009 à 11:22
En fait mon tableau_Inforce est constitué de String et de Double. Donc je ne crois pas avoir le choix mais je me trompe peut être...
Ce qui m'embête vraiment c'est que le code marche parfois
0
b0uh34 Messages postés 56 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 19 février 2009
27 janv. 2009 à 11:28
J'ai un souci sur Application.WorksheetFunction.Index.
En plus je ne trouve pas beaucoup de sites qui en parlent sur le net. Et s'ils en parlent ce n'est pas pour faire la même chose que moi (sélectionner une colonne).
Donc y a t-il un autre moyen de sélectionner une colonne d'un tableau que cette méthode?
Merci d'avance
0
b0uh34 Messages postés 56 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 19 février 2009
27 janv. 2009 à 11:53
Je pense que ca peut venir d'un problème de mémoire...
Mon tableau est un tableau de Variant de taille 5677 par 111. Il y a des string et des double à l'interieur. N'y a t-il pas des limites en mémoire pour la fonction Index? ou pour la taille d'un tableau?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
27 janv. 2009 à 13:42
Re,

Explique moi une chose. Tu es en vba et tu me parle de .net????
C'est quoi le rapport?
Ensuite tu peux mettre ton tableau en string et ensuite convertir en double (pourquoi double et pas integer?)
C'est peut etre personnelle mais le variant me donne des boutons.
Bon courage

S.L.B.
<hr />
0
b0uh34 Messages postés 56 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 19 février 2009
27 janv. 2009 à 16:42
En fait je t'avoue que je ne sais pas ce que c'est que .net... Je code en VBA ( le truc lié à Excel par alt+F11 )
Pour le coup des string en double je veux bien. Mais une fois que j'ai des string dans mes colonnes, je ne peux plus les convertir d'un coup en Double.Et du coup j'imagine que j'aurai du mal à utiliser :
Application.WorksheetFunction.Min(Application.WorksheetFunction.Index(tableau_Inforce, 0, 4))
sur une colonne de String.

J'ai résolu mon problème avec des On Error Goto mais ça n'est pas du tout satisfaisant en terme de temps de calcul.

Mon problème vient donc bien de Application.WorksheetFunction.Index qui marche parfois. Quelqu'un a t-il déjà utilisé cela pour selectionner une colonne d'un tableau? Y-a-t-il des restrictions?
Merci d'avance
0
b0uh34 Messages postés 56 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 19 février 2009
27 janv. 2009 à 16:50
Après consultation rapide d'Internet, je peux donc te dire que je ne développe pas du tout en VB.net mais bien en VBA.
0