je viens vous voir car je galère un peu...
compliqué d'expliquer mon problème mais je me lance...
J'ai une base de donnée (onglet datas) avec des valeurs qui apparaissent plusieurs fois.
Sur un autre onglet (Projets), je cherche à remettre ça en forme pour l'exploiter :
je veux en cellule C2 la valeur issu de l'onglet data correspondant a la ligne ou apparait D1 (ligne 2) et la colonne ou apparait P1 => donc la valeur C2 : 23%
j'ai tenté sans succès avec une formule du style
=recherchev(C1;'datas'!B2:G5;rechercheh(B1;'datas'!B2:G5;2);0)
Si vous avez des idées... (j'ai simplifier la base de donnée mais l'idée est là)
Bonjour et merci pour ce premier retour.
C'est quasi parfait mais ca beug sur certaines valeur dans mon cas précis.
Le nom du projet n'est pas toujours "simple" mais contiens des caractères supplémentaires dans la base de donné.
Ex : P1 dans l'onglet Projet est parfois ecris "P1dhrjrn" ou alors "oekdu P1 eud"
il me faudrait donc chercher avec le contenu P1 dans la macro
En tout cas super macro, j'ignorais que l'on pouvait créer des fonctions
Possible ?
Ce serait dommage de s'en passer, quelquefois c'est vraiment pratique surtout quand les formules commencent à faire plusieurs lignes.
Un petit tuto sur le sujet :
Pour ceux qui ne connaissent pas les fonctions personnelles et pour ceux qui appréhendent le VBA, voici un petit tuto pour montrer à quel point des fonctions personnelles peuvent être utiles et surtout à quel point c'est simple, même si on n'a...
Question bonus : ya un moyen d'actualiser les calculs automatiquement ? (quand je modifie la base, j'ai la fonction qui ne prends pas en compte le changement sauf si je rentre dans la cellule et fait "entrer")
Il suffit de rajouter Application.Volatile.
Mais là c'est fonction de l'appli car la fonction est recalculer à chaque mise à jour de feuille.
Donc avec une très grosse base, ça peut ralentir.
Si je peux (encore) abuser...
J'ai certaines valeurs divisé par zéro => houhouhou je sais pas bien
mais je ne voudrais pas quelles remontent du coup, mettre un 0 irait bien par exemple
J'ai essayé avec la fonction IF mais sans succès...
If tablo(L, C + 1) <> "#DIV/0!" Then
RecherchePourcent = tablo(L, C + 1) ' on remonte la valeur
End If
ca me renvois à #VALEUR! et pas un "" ou un zéro...
La bonne syntaxe est : If IsError(tablo(L, C + 1)) Then ...
j'ai préféré mettre vide plutôt que 0 car certaines valeurs non en erreur retournent 0.
( peut être modifié ligne 15 )