Pb de mini-maxi/#N/A

Pb de mini-maxi/#N/A - VB/VBA/VBS - Programmation

Marsh Posté le 02-06-2006 à 13:10:07    

Bonjour,
 
Je suis débutant en VBA et j'ai un petit souci de macro excel...
Voila le topo: j'ai une colonne avec des nombres et des retours de non affectation #N/A. Je souhaiterai rechercher le mini et le maxi de cette colonne, et bien entendu, sans prendre en compte les #N/A.
Question: peut-on le faire avec des fonctions excel et si non comment dois-je m'y prendre en vba?
(j'ai essayé de convertir le #N/A en number, les fonctions de recherche etc mais je n'y arrive pas... :( )
 
Merci d'avance pour votre aide précieuse

Reply

Marsh Posté le 02-06-2006 à 13:10:07   

Reply

Marsh Posté le 02-06-2006 à 14:38:19    

Essaye de trouver une macro qui cherche dans ta colone tout les #N/A  et les remplace par -1  ( met ca te posera ptetre un probleme pour la suite avec la recherche des minimum  et si j'ai mis -1 et pas 0 c'est pour que tu recherche des entiers positif ;)

Reply

Marsh Posté le 02-06-2006 à 14:54:43    

Merci, en fait je l'ai déjà fait, mais le script me pose problème. Je vais essayer de m'y mettre encore un peu....  
Merci qd meme

Reply

Marsh Posté le 02-06-2006 à 15:17:13    

Ouais je crois que ca va le faire avec un truc du style
[A6] = [Large(A1:A5,2)]
C'est pas super propre mais tant pis
A bientot

Reply

Marsh Posté le 02-06-2006 à 16:53:51    

Code :
  1. A adapter
  2. Sub MiniMaxi()
  3. Dim r As Long, i As Long
  4. Dim mMini As Long, mMaxi As Long
  5.     mMini = 2147483647
  6.     mMaxi = -2147483648#
  7.     r = Range("A65536" ).End(xlUp).Row
  8.     For i = 1 To r
  9.         If IsNumeric(Cells(i, 1)) Then
  10.             Select Case CLng(Cells(i, 1))
  11.                 Case Is < mMini
  12.                     mMini = CLng(Cells(i, 1))
  13.                 Case Is > mMaxi
  14.                     mMaxi = CLng(Cells(i, 1))
  15.             End Select
  16.         End If
  17.     Next
  18.     Cells(1, 2) = mMini
  19.     Cells(1, 3) = mMaxi
  20. End Sub


Message édité par kiki29 le 03-06-2006 à 21:47:01
Reply

Marsh Posté le 02-06-2006 à 17:34:25    

ces #N/A sont le résultat d'un calcul ? Genre un RECHERCHEV(....) qui ne rapporte rien ?
 
Dans ce cas conditionne le calcul avec un ESTNA ex :
 
=SI(ESTNA(RECHERCHEV(...))=VRAI ; "" ; RECHERCHEV(...))
 
Dans ce cas tu n'auras plus de #N/A mais des vide a la place.
 
Et =MIN(taplage) et =MAX(taplage) te donneras les mini et maxi.
 
ça sert a rien de faire du vb quand c'est pas utile.


Message édité par fifiz le 02-06-2006 à 17:43:26
Reply

Marsh Posté le 02-06-2006 à 17:40:03    

Merci, en fait j'ai fait la même chose mais avec "" au lieu de "0". Ca marche impeccablement (effectivement, pb de RECHERCHEV).

Reply

Marsh Posté le 02-06-2006 à 17:44:36    

=)
 
j'ai corrigé pendant que tu répondais, je vouslais faire l'essais des MIN et MAX sur une cellule alimentée avec =""
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed