Rechercher une valeur ds intervals de valeur
Résolu
Martin
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voici mon probleme :
J'ai des "codes" et des "types de codes"
les types de codes sont identifiés par des plages (un code se trouve forcément dans une plage et a donc forcément un type de code):
Codes de 600000 à 799999
Types de codes :
Type de code1
de à
600000 619999
700000 749999
760000 789999
Type de code2
de à
620000 649999
750000 759999
Type de code3
de à
650000 699999
790000 799999
La j'ai simplifié parce que en réalité chaque type de code correspond à environ 10 plages différentes.
Je cherche une facon d'obtenir, en tapant le code dans une cellule, le type de code auquel il correspond (dans une autre cellule)
Quelque chose du genre :
si je met en 3 colonnes : "de" ; "à" ; "type de code"
-> "dans les colonnes de, à, type de code,
si code>de et code<à
alors ma cellule = type de code
Remarques :
il n'est pas possible d'utiliser des "si(...)" imbriqués car il y en aurait trop
je ne peux pas faire une liste exhaustive de tous les codes les uns en dessous des autres, il y en aurait trop (200 000)
Merci beaucoup d'avance pour votre aide!
Martin
martindh@hotmail.com si nécessaire
Voici mon probleme :
J'ai des "codes" et des "types de codes"
les types de codes sont identifiés par des plages (un code se trouve forcément dans une plage et a donc forcément un type de code):
Codes de 600000 à 799999
Types de codes :
Type de code1
de à
600000 619999
700000 749999
760000 789999
Type de code2
de à
620000 649999
750000 759999
Type de code3
de à
650000 699999
790000 799999
La j'ai simplifié parce que en réalité chaque type de code correspond à environ 10 plages différentes.
Je cherche une facon d'obtenir, en tapant le code dans une cellule, le type de code auquel il correspond (dans une autre cellule)
Quelque chose du genre :
si je met en 3 colonnes : "de" ; "à" ; "type de code"
-> "dans les colonnes de, à, type de code,
si code>de et code<à
alors ma cellule = type de code
Remarques :
il n'est pas possible d'utiliser des "si(...)" imbriqués car il y en aurait trop
je ne peux pas faire une liste exhaustive de tous les codes les uns en dessous des autres, il y en aurait trop (200 000)
Merci beaucoup d'avance pour votre aide!
Martin
martindh@hotmail.com si nécessaire
A voir également:
- Rechercher une valeur ds intervals de valeur
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur relative et absolue - Forum Programmation
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Rechercher ou saisir une url - Guide
- Excel ne pas afficher #valeur ✓ - Forum Excel
10 réponses
heuuu oui, c'est que j'ai oublié de joindre le fichier :-)
merci, je corrige
http://www.cijoint.fr/cij19034132428847.xls
Pour la version formule il faut recopier les cellules F13 à I13 vers le bas pour corriger le calcul....
eric
merci, je corrige
http://www.cijoint.fr/cij19034132428847.xls
Pour la version formule il faut recopier les cellules F13 à I13 vers le bas pour corriger le calcul....
eric
Je suppose que c'est dans excel. Voir si l'écriture d'une macro qui se lancerait à l'open du fichier ne pourrait pas résoudre le pb.
oui j'ai oublié de préciser c'est bien dans Excel...
Pour la macro...elle ferait comment?
Je n'ai pas de préférence macro ou formule, tant que j'arrive à trouver mon résultat
sachant qu'une formule serait mieux car je voudrais dans un fichier contenant plein de code dans une colonne, mettre le type de code dans la cellule d'à coté...
Merci d'avance!
Pour la macro...elle ferait comment?
Je n'ai pas de préférence macro ou formule, tant que j'arrive à trouver mon résultat
sachant qu'une formule serait mieux car je voudrais dans un fichier contenant plein de code dans une colonne, mettre le type de code dans la cellule d'à coté...
Merci d'avance!
outils macro
puis on écrit en VB
exemple pour donner une valeur à une cellule
range("A3").value = quelquechose qui peut être le résultat d'un calcul ou de plein de chose;
Pour boucler on peut faire un truc du genre :
for i = 1 to 100
range("A"+Cstr(i)).value )= i
next i
quand on est dans outils macro, il y a une aide en ligne pour Visual basic
puis on écrit en VB
exemple pour donner une valeur à une cellule
range("A3").value = quelquechose qui peut être le résultat d'un calcul ou de plein de chose;
Pour boucler on peut faire un truc du genre :
for i = 1 to 100
range("A"+Cstr(i)).value )= i
next i
quand on est dans outils macro, il y a une aide en ligne pour Visual basic
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci Giheller
en revanche je ne suis pas un pro des macros, que pensais tu obtenir avec ce genre d'itération?
J'ai un peu de mal à comprendre ou tu veux en venir...?
Pour préciser ma demande :
https://www.cjoint.com/?kqqkMt7ON2
Comment obtenir les résultats de la colonne F ?
Une formule à recopier serait idéale...
en revanche je ne suis pas un pro des macros, que pensais tu obtenir avec ce genre d'itération?
J'ai un peu de mal à comprendre ou tu veux en venir...?
Pour préciser ma demande :
https://www.cjoint.com/?kqqkMt7ON2
Comment obtenir les résultats de la colonne F ?
Une formule à recopier serait idéale...
Bonjour,
Ci joint une solution par formule sans vba
http://www.cijoint.fr/cij58617924028818.xls
J'ai modifié ta présentation de ta liste de code, triée par 'DE' et espaces supprimés.
Je t'ai décomposé la formule en 4 formules que tu puisses suivre le raisonnement et ne pas avoir un truc illisible
Teste et dis si ça te convient sinon on pourra faire une fonction personnalisée qui te ramera directement la valeur
eric
Ci joint une solution par formule sans vba
http://www.cijoint.fr/cij58617924028818.xls
J'ai modifié ta présentation de ta liste de code, triée par 'DE' et espaces supprimés.
Je t'ai décomposé la formule en 4 formules que tu puisses suivre le raisonnement et ne pas avoir un truc illisible
Teste et dis si ça te convient sinon on pourra faire une fonction personnalisée qui te ramera directement la valeur
eric
La solution d'Eric esr sans doute plus simple que la mienne, surtout si tu ne connais pas la façon de coder et de faire des macros. Désolé c'était une idée complexe.
Jean-Luc
Jean-Luc
Re,
Nouvelle feuille avec la variante fonction personnalisée.
Utilisation :
tu sélectionnes ta cellule de destination
menu "insertion / fonction..." rubrique 'personnalisées'
tu choisis TypeCode ou Martin.xls!TypeCode si tu es dans un autre classeur.
Tu cliques sur la cellule contenant la reference à contrôler, et tu as ta réponse
Si tu travaille dans un autre classeur il faudra ouvrir celui-ci pour disposer de la fonction. A la limite une fois saisie ta liste tu peux le mettre en masqué pour ne pas gener, la fonction ser accessible.
eric
Nouvelle feuille avec la variante fonction personnalisée.
Utilisation :
tu sélectionnes ta cellule de destination
menu "insertion / fonction..." rubrique 'personnalisées'
tu choisis TypeCode ou Martin.xls!TypeCode si tu es dans un autre classeur.
Tu cliques sur la cellule contenant la reference à contrôler, et tu as ta réponse
Si tu travaille dans un autre classeur il faudra ouvrir celui-ci pour disposer de la fonction. A la limite une fois saisie ta liste tu peux le mettre en masqué pour ne pas gener, la fonction ser accessible.
eric
Bonjour,
Alors vraiment un grand merci à tous.
Je pensais pas avoir une aussi grande réactivité.
Ca répond exactement à ce que je cherchais.
Eric ta solution est parfaite, d'autant que je ne connaissais pas la fonction personnalisée.
Juste une petite question : comment définir une fonction personnalisée?
Merci
Martin
Alors vraiment un grand merci à tous.
Je pensais pas avoir une aussi grande réactivité.
Ca répond exactement à ce que je cherchais.
Eric ta solution est parfaite, d'autant que je ne connaissais pas la fonction personnalisée.
Juste une petite question : comment définir une fonction personnalisée?
Merci
Martin
Bonjour,
une fonction personnalisée n'est rien d'autre qu'un programme en vba déclaré en tant que fonction... Bien sûr il faut connaitre un peu vba.
Fait un clic droit sur l'onglet de ta feuille et choisi 'visualiser le code', tu double-cliques sur le module 1 et tu peux lire la déclaration de la fonction :
Mainenant tu peux essayer d'en créer des simples pour découvrir, ensuite tu pourras souvent te simplifier tes pb. N'hésites pas à utiliser l'aide d'excel qui est très bien faite.
Si ça te parait complet n'oublie pas de mettre en résolu ici (en passant par 'voir mes interventions')
eric
une fonction personnalisée n'est rien d'autre qu'un programme en vba déclaré en tant que fonction... Bien sûr il faut connaitre un peu vba.
Fait un clic droit sur l'onglet de ta feuille et choisi 'visualiser le code', tu double-cliques sur le module 1 et tu peux lire la déclaration de la fonction :
Function TypeCode(Ref As Range) As String
Dim c As Range, rep As String
For Each c In Range("TypesCodes")
If c.Offset(0, 1).Value <= Ref.Value And c.Offset(0, 2).Value >= Ref.Value Then
rep = c.Value
Exit For
Else
rep = "inconnu"
End If
Next c
TypeCode = rep
End Function
Mainenant tu peux essayer d'en créer des simples pour découvrir, ensuite tu pourras souvent te simplifier tes pb. N'hésites pas à utiliser l'aide d'excel qui est très bien faite.
Si ça te parait complet n'oublie pas de mettre en résolu ici (en passant par 'voir mes interventions')
eric
Merci infiniment, c'est maintenant tout clair et très instructif.
Bonne fin de soirée.