IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Créer une fonction convertir en code [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Par défaut Créer une fonction convertir en code
    Bonjour,

    Voici, j'ai une liste de ville auquel il faut attribué un code de trois lettres d'appellation que l'on a déjà établi d'avance.

    J'aimerais me servir d'une fonction puisque l'on a souvent à convertir le nom des ville en code par rapport à des listes d'horaire et avoir le choix de mettre la fonction un peu partout dans mon tableur. C'est pour cette raison qu'un fonction est plus approprié plutôt que de travaillé avec offset.

    J'avais pensé de travailler avec CASE ... SELECT mais je ne vois pas trop comment m'y prendre pour remplacer ces noms de ville en code. J'ai 18 villes spécifique mais il arrive que je fais des changements.

    Montréal > MTL
    Paris > PRS
    Dublin > DUB
    etc...

    Merci

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    une fonction non évolutive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function CodeVille(ByVal vil As String) As String
    Dim TabVil, TabCod
    Dim i As Integer
    TabVil = Array("Montréal", "Paris", "Dublin")
    TabCod = Array("MTL", "PRS", "DUB")
    For i = LBound(TabVil) To UBound(TabVil)
        If UCase(vil) = UCase(TabVil(i)) Then
            CodeVille = TabCod(i)
            Exit For
        End If
    Next i
    End Function
    Edit: Ou si on désire faire évoluer les choses
    ajouter une feuille (ci dessous feuil4 pour l'exemple qu'on peut éventuellement cacher), en colonne A les villes et en colonne B la codification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function CodeVille(ByVal vil As String) As String
    Dim c As Range
    Application.Volatile
    Set c = Sheets("Feuil4").Range("A:A").Find(vil, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then CodeVille = c.Offset(0, 1).Value
    End Function

  3. #3
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Par défaut
    C'est génial et merci encore je ne savais pas dutout comment m'y prendre.

    Merci infiniment.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une fonction
    Par Jeffboj dans le forum Access
    Réponses: 7
    Dernier message: 15/04/2006, 20h49
  2. Créer une Fonction recherche sur Access
    Par remwideco dans le forum Access
    Réponses: 4
    Dernier message: 30/01/2006, 10h36
  3. créer une fonction avec parametre optionnel
    Par maximenet dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2006, 20h51
  4. Réponses: 6
    Dernier message: 10/08/2005, 11h36
  5. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo