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 :

Concaténation avec 0 [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Par défaut Concaténation avec 0
    Bonjour le forum,

    J'ai un morceau de code qui me permet de concaténer un nombre qui se trouve dans une case (Y2) de ma feuille 1 avec un 0.
    Je veut pouvoir mettre ce 0 en première position.
    Cela commencerais par 30168 et aprés l'opération 030168
    Voila le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Len(Range("Y2").Value) = 5 Then
       resultat = "0" & Range("Y2").Value
    end if
    Il n'y à aucun message d'erreur, mais on obtien toujours 30168 ...
    Y aurait-il quelque chose à faire pour forcer l'apparition du 0 ?

    Cordialement

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Essaies en mettant un format personnalisé sur ta cellule Y2 de type
    A+

    Edit: En fait tu peux le mettre dans le code, donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Len(Range("Y2").Value) = 5 Then
       Range("Y2").NumberFormat = "0####0"
    End If
    ReEdit: Adaptation du code la ligne resultat... était inutile en l'état, voir solution de Mercatog

  3. #3
    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
    Ou ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim resultat as String
    If Len(Range("Y2").Value) = 5 Then
       resultat = "'0" & Range("Y2").Value
    end if
    le résultat est donc un string

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Par défaut
    Merci pour vos réponses, la première solution fonctionne, mais pas la deuxième, l'apostrophe avant le 0 veut dire quoi exactement ?

  5. #5
    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
    essaie dans une feuille excel d'écrire cela: 019714 et '019714
    le deuxième sera "un nombre" sous forme texte

    pour la première méthode de Fvandermeulen, tu récupère un nombre mis en forme!

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Si je peux me permettre,
    Je crois que tu pense que la solution de Mercatog ne fonctionne pas car en fait tu ne fais rien de la variable "resultat" (à par lui donner une valeur).
    Si tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Len(Range("Y2").Value) = 5 Then
       Range("Y2") = "'0" & Range("Y2").Value
    end if
    tu verras la différence entre les deux solutions.

    A+

  7. #7
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Par défaut
    Mais il me reste un souci quand même par la suite, le fait de concaténer avec le 0, me permet d'avoir le nom d'un dossier que j'utilise pour l'ouverture de ce même dossier dans un chemin voici le code pour une meilleur comprehension :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ChDrive "C:"
    ChDir "C:\Raval\Result\" & Range("Y2").Value & "\Good"
    Même si un peu plus haut la technique pour remettre le 0 fonctionne, quand je debug, il ne s'y trouve plus alors que dans la cellule Y2 il s'y trouve ... je ne m'y retrouve plus ... et il me le faut pour pouvoir valider mon chemin windows

    Cordialement

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

Discussions similaires

  1. concaténation avec SQL dans une BD access
    Par jouidos dans le forum Accès aux données
    Réponses: 2
    Dernier message: 28/02/2007, 19h18
  2. concaténation avec le nom du jour?
    Par rimas125 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 03/09/2006, 13h54
  3. Problème concaténation avec le "+"
    Par TronsoT dans le forum Général Java
    Réponses: 5
    Dernier message: 03/05/2006, 22h29
  4. Opérateur de concaténation avec GROUP BY
    Par kamaxime dans le forum Access
    Réponses: 2
    Dernier message: 26/04/2006, 15h14
  5. Concaténation avec Group by
    Par Biglo dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 21/02/2006, 00h07

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