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 :

Transformer les noms abrégés en anglais dans un classeur ouvert avec une version française en nombres


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 2 878
    Points
    2 878
    Par défaut Transformer les noms abrégés en anglais dans un classeur ouvert avec une version française en nombres
    Bonjour

    Voila une petite action que je n'arrive pas à faire en une ligne.

    J'ai dans une cellule texte le mois en anglais sur 3 caractères (Jan, Feb ou May, ...)

    Je voudrais en code pouvoir ressortir le numéro du mois.

    Pour l'instant j'y arrive en bouclant sur une liste, mais je n'arrive pas à faire l'équivalent de ce que je fais dans une formule pour un mois en français :
    =MOIS("1 " & A2 & " 2010").

    Pour l'instant j'ai réussi jusqu'à ce code. Cela marche pour "Jan", mais pas pour "Feb" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim MaDate As Byte
    MaDate = Month(Format("1 " & Range("A1") & " 2010", "dd/MM/yyyy"))
    Merci à vous.

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Si je comprends, tu as des mois abrégés en anglais dans un classeur ouvert avert une version française d'Excel.

    Tu peux faire, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim sMois As String, numMois As Integer
     
    sMois = ThisWorkbook.Worksheets(1).Range("A1").Value
     
    numMois = Switch(sMois = "Jan", 1, sMois = "Feb", 2, sMois = "May", 5)
    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 2 878
    Points
    2 878
    Par défaut
    Citation Envoyé par pgz Voir le message
    Si je comprends, tu as des mois abrégés en anglais dans un classeur ouvert avert une version française d'Excel.
    Tu comprends parfaitement bien.

    Tu peux faire, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim sMois As String, numMois As Integer
     
    sMois = ThisWorkbook.Worksheets(1).Range("A1").Value
     
    numMois = Switch(sMois = "Jan", 1, sMois = "Feb", 2, sMois = "May", 5)
    Oui, certes, mais j'ai bien entendu 12 mois, et j'aurais aimé avoir une solution sans faire une liste.

    D'où l'idée d'essayer de recomposer une date et d'en extraire le mois.

    Merci quand même

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    La solution de création de liste me parait pas mal, tu peux même créer ta liste dans excel, si la solution ne te convient pas tu peux aussi faire format cellule / Date / Paramètres régionaux = anglais et toutes tes dates seront en anglais

    Edit : je suis en train de regarder les format personalisés [$-809] et [$-40C]
    Peut être une piste

    Edit2 : Format langues personnalisés ici

  5. #5
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 2 878
    Points
    2 878
    Par défaut
    Citation Envoyé par aalex_38 Voir le message
    La solution de création de liste me parait pas mal, tu peux même créer ta liste dans excel,
    Oui, je suis d'accord, c'est pas mal comme solution. C'est aussi ce que j'ai choisi pour l'instant.
    Mais, j'aimerai trouver une solution différente (pour le plaisir). Solution que j'ai déjà utilisé, mais avec les mois en français et en toute lettres.
    Là, j'aimerai faire la même chose.

    si la solution ne te convient pas tu peux aussi faire format cellule / Date / Paramètres régionaux = anglais et toutes tes dates seront en anglais
    Là, cela ne ma va pas du tout, car le programme tourne sur des postes partout dans le monde (d'où l'utilisation de l'anglais). Je ne peux pas modifier les paramètres régionaux.

    Merci d'avoir proposé une solution

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Peut-être as-tu tes raisons d'utiliser les mois en texte, mais moi je place les dates dans les cellule que je personnalise ensuite avec "mmm aa" ou "mmm" si tu ne veux pas l'année et cela s'adapte parfaitement quelque soit l'option régionale.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 2 878
    Points
    2 878
    Par défaut
    Bonsoir et merci de ta réponse

    Tu as parfaitement raison. Mais cela fait partie des contraintes que je ne peux pas changer.
    Quand cela dépend de moi, je fais comme toi. Ainsi on n'a pas de problèmes.

    Mais si c'est impossible à trouver sans faire de liste, ce n'est pas grave.

    Bonsoir

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    En A1:A12, les mois en anglais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim i As Integer
     
    For i = 1 To 12
       With Range("B" & i)
          .Value = "1 " & Range("A" & i).Value
          .NumberFormat = "General"
          .Value = Month(.Value)
       End With
    Next i
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  9. #9
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Citation Envoyé par Pierre Dumas Voir le message

    Pour l'instant j'ai réussi jusqu'à ce code. Cela marche pour "Jan", mais pas pour "Feb" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim MaDate As Byte
    MaDate = Month(Format("1 " & Range("A1") & " 2010", "dd/MM/yyyy"))
    Pierre
    III-D. Correspondance des notations des mois en noms entiers ou abrégés en français et en US.

    C'est logique, c'est parce que sur ce mois les abréviations sont les même
    Ca marchera aussi pour Mars etc.. d'où les sources d'erreur.

    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  10. #10
    Membre émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 2 878
    Points
    2 878
    Par défaut
    Citation Envoyé par mercatog Voir le message
    En A1:A12, les mois en anglais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim i As Integer
     
    For i = 1 To 12
       With Range("B" & i)
          .Value = "1 " & Range("A" & i).Value
          .NumberFormat = "General"
          .Value = Month(.Value)
       End With
    Next i
    Bonjour

    OK, ce code fonctionne dans la feuille. Et c'est bien ce qui m'énerve .
    J'aimerai trouver l'équivalent en VBA, sans rien inscrire dans les cellules.

    Mais c'est peut-être une quête impossible.

    Ce qui n'est pas grave.

    Bonne journée

    Pierre

    Citation Envoyé par Ormonth Voir le message
    C'est logique, c'est parce que sur ce mois les abréviations sont les même
    Ca marchera aussi pour Mars etc.. d'où les sources d'erreur.
    Bonjour

    Je sais bien que c'est logique
    Mais ce n'est pas une raison pour ne pas trouver une solution

    Toutefois, comme je l'ai dit plus haut, ce n'est pas grave s'il n'y a pas de solution.

    En tout cas merci pour le lien vers ta page que je n'avais pas trouvée. Elle me sera sûrement utile un jour pour éclaircir un point ou un autre.

    Bonne journée

    Pierre
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  11. #11
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Une piste parmi d'autres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      Dim colMonths As New Collection
      Dim iMonth As Integer
      colMonths.Add 1, "Jan"
      colMonths.Add 2, "Feb"
      colMonths.Add 3, "Mar"
      colMonths.Add 4, "Apr"
      colMonths.Add 5, "May"
      colMonths.Add 6, "Jun"
      colMonths.Add 7, "Jul"
      colMonths.Add 8, "Aug"
      colMonths.Add 9, "Sep"
      colMonths.Add 10, "Oct"
      colMonths.Add 11, "Nov"
      colMonths.Add 12, "Dec"
      iMonth = colMonths(Range("A1"))
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/04/2009, 13h54
  2. [E-00] Recuperer les nom de dossier present dans un autre dossier
    Par imaril dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/10/2008, 10h11
  3. Réponses: 7
    Dernier message: 10/12/2007, 11h27
  4. Réponses: 2
    Dernier message: 06/04/2007, 11h48
  5. importer les noms de fichiers html dans une table access
    Par abane badis dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 17h25

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