Fonction Rank ignorer cellule vide et passer à la suivante [Excel VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 22-10-2014 à 10:24:05
Bonjour, bonjour !
Conformément aux règles du forum, merci d'éditer le message et de baliser le code grâce à l'icône dédiée !
Sinon pour Excel une cellule vide vaut zéro trompant ainsi la fonction IsNumeric (à la condition de tester une cellule !).
Il suffit juste de tester si la cellule n'est pas vide …
Marsh Posté le 22-10-2014 à 12:17:27
Marc L a écrit : |
Merci pour ton retour Mark,
La fonction Isnumeric dans mon cas teste bien une seule cellule. Si par exemple la Cellule A2 est vide, ou n'est pas un chiffre alors l'ignorer du ranking ...
Malheureusement j'ai l'impression qu'il y a un soucis dans la Macro...
Marsh Posté le 22-10-2014 à 14:31:37
Oui effectivement il y a bien un souci dans le code car, comme je l'ai indiqué, faut-il encore tester une cellule !
Marsh Posté le 22-10-2014 à 15:06:38
en fait le soucis vient des guillemets car avec : IsNumeric(" & col & i & " )
c'est la chaine de caractères " & col & i & " qui est testée et non pas la cellule a laquelle les variables col et i font référence
il faut écrire sans les guillemets comme pour Range(rk & i) : IsNumeric(col & i)
Marsh Posté le 22-10-2014 à 16:21:45
Non plus car ce n'est toujours pas une cellule ‼ Voir donc l'aide VBA de cette fonction …
Pour tester une cellule, il faut au moins la préciser dans le code d'une manière ou d'une autre (au moins sept !) …
Marsh Posté le 27-10-2014 à 21:11:49
Bonsoir les amis,
Voici le nouveau code que j'ai tenté et c'est presque fonctionnel:
Code :
|
En effet, la macro fonctionne dans le sens où si une case est vide, elle ira vérifier la prochaine case. Le soucis intervient quand deux cases vides se suivent ... La macro va passer la première case essaiera de donner un rang à la seconde mais ne pourra pas car elle est vide. Résultat, sur excel, j'aurai #Value dans la case.
Quelqu'un aurait-il un moyen de rectifier la macro afin qu'elle passe à la prochaine case à chaque fois que la cellule est vide?
Milles mercis
Edit: problème réglé j'ai modifié la macro en conséquent
Marsh Posté le 27-10-2014 à 22:36:42
Bonsoir,
Je n'ai lu qu'en travers, ton problème devrait se résoudre si on lieu de vouloir attribuer ton rank à la case qui suit tu le gardes en mémoire dans une variable. Puis c'est simplement une fois que tu as une case non vide que tu vas attribuer le rank stocké dans ta variable.
Marsh Posté le 28-10-2014 à 19:24:31
MaybeEijOrNot a écrit : Bonsoir, |
Salut Eij ... Or maybe not,
Problème résolu voici la macro:
Code :
|
Marsh Posté le 21-10-2014 à 18:42:51
Salut les Amis,
Voila j'ai un fichier où j'essaie de classer des donner un rang aux nombres dans une colonne. Le problème est le suivant:
A1= 1
A2= 2
A3= 9
A4= ""
A5= 16
Voici la macro que j'éxecute:
Je voudrai que la macro saute la plage vide à savoir A4 et passe à la cellule suivante malheureusement la macro ne fonctionne pas. Il semblerait que le Test ISNumeric() soit toujours faux même si la cellule comprend des chiffres. Pouvez-vous s'il vous plait m'aider à rectifier la macro?
Merci
Message édité par Overdos3 le 22-10-2014 à 12:46:01