erreur 13, pourquoi cela ne fonctionne pas ?

Le
ats.ccs
Bonjour,

Sous excel 2002

Dans un code "emprunté" à JB, je peux afficher dans un formulaire des prix
en fonctions de quantités
Le code :
Sub calculPrix()
p = Application.Match(Val(Me.Qte), [Qte2], 1)
Me.Prix = Range("Prix2")(Me.ChoixProduit.ListIndex + 1, p)
End Sub
Mon problème :
Ce code plante si la première valeur de ma ligne (qte2) n'est pas égale à
zéro.
Mes grilles n'ayant pas de qté à zéro, dois je ajouter une colonne ou y'a
t'il une autre façon d'écrire le code ?

Merci pour votre aide
BH
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #19923641
Bonjour,

Difficile de cerner ton problème avec l'information disponible !

A ) Val(Me.Qte) : la fonction Val() n'utilise que le "point" comme
séparateur décimale. Dès que la fonction rencontre un caractère
qui n'est pas numérique, elle s'arrête la conversion.
Exemple : Val("12,5") retourne 12
Val ("dadfa") retourne 0
val ("10.63") retourne 10.63
val("12a52") retourne 12

B ) En utilisant le paramètre 1 de la fonction Match
tes données doivent être en ordre croissant.
Lorsque Application.Match(Val(Me.Qte), [Qte2], 1)
ne trouve pas ce qu'il veut dans la plage Qte2, la
variable P contient une valeur d'erreur
xlErrNA = 2042

dans la ligne suivante de ton code :
Me.Prix = Range("Prix2")(Me.ChoixProduit.ListIndex + 1, p)
si la valeur P n'est pas comprise en 1 et le nombre maximum
de colonnes de ta version d'Excel, le code se plante.

Est-ce que cela t'aide ?
ats.ccs
Le #19923841
Bonjour MichDenis,

Merci pour ces explications.

Le plus simple sera que je poste un exemple, je le ferai demain.

En attendant, je me suis inspiré, sur le site de JB, du fichier
jb-formulaire, onglet PrixQte.
Lorque qu'en cellule J1, on met une valeur différente de zéro, le formulaire
plante.
Que faut'il faire pour récupérer dans un formulaire le prix si la grille ne
commence pas à zéro ?

BH
MichDenis
Le #19924231
Si tu regardes dans l'aide d'Excel, l'explication qu'elle donne sur le paramètre 1 de la
fonction Match,

---------------------------------
Si type prend la valeur 1, la fonction MATCH recherche la plus grande valeur qui est
inférieure ou égale à valeur_cherchée. Matrice_recherche doit être placée dans l'ordre
croissant : ...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE.
----------------------------------
Si en J1, la suite de tes nombres ne débute pas par 0
et que la valeur rechercher est en deça de la valeur
saisie en J1, la fonction retournera une valeur d'erreur #Na.
Et, comme je te l'ai expliqué, P doit avoir une valeur numérique
entre 1 et le nombre total de colonnes pour ta version d'Excel.





"" de groupe de discussion :
Bonjour MichDenis,

Merci pour ces explications.

Le plus simple sera que je poste un exemple, je le ferai demain.

En attendant, je me suis inspiré, sur le site de JB, du fichier
jb-formulaire, onglet PrixQte.
Lorque qu'en cellule J1, on met une valeur différente de zéro, le formulaire
plante.
Que faut'il faire pour récupérer dans un formulaire le prix si la grille ne
commence pas à zéro ?

BH
Publicité
Poster une réponse
Anonyme