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 :

Sélectionner seulement une partie d'une valeur d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Sélectionner seulement une partie d'une valeur d'une cellule
    Bonjour,

    J'aimerais pouvoir sélectionner une valeur au milieu d'un texte dans une cellule...

    Ex. Si une cellule a pour valeur "Il fait 17°" sélectionner le 17, poour pouvoir l'utiliser dans un champ température...

    2ème cas : Dans une cellule "Il fait 17° et il y a 46% d'humidité", pouvoir repérer chaque valeur une à une (pouvoir par ex. avoir un champ température et un autre humidité, et que les 2 s'actualisent...)

    J'espère avoir été clair...

    Meci d'avance de vos réponses

    ArthurO0O

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour


    Tu peux tester et adapter cet exemple


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub extraireValeursNumeriques_DansChaine()
        Dim x As Integer, Nb As Integer
        Dim Cible As String, Resultat As String
        Dim Nombre As Single
     
        Cible = "12,3azerty23,5 67"
        'il faut remplacer les virgules par des points
        'Pour que fonction Val puisse reconnaitre les décimales.
        Cible = Replace(Cible, ",", ".")
        'Remplacement des espaces par un caractère Alphabétique, pour
        'gérer deux nombres qui se suivent.
        Cible = Replace(Cible, " ", "$")
     
        'Boucle sur tous les caractères de la chaîne cible.
        '(La fonction Len renvoie le nombre de caractères contenu dans la variable "Cible").
        For x = 1 To Len(Cible)
            'Si le caractère est de type numérique
            If IsNumeric(Mid(Cible, x, 1)) Then
                'Extrait la donnée numérique de la chaîne
                Nombre = Val(Mid(Cible, x, Len(Cible) - x + 1))
                Nb = Nb + 1
                'Enregistre la valeur dans la variable de résultat
                Resultat = Resultat & Nombre & vbLf
     
                '--- Force l'incémentation de la variable compteur (x) du nombre de caractères
                'que contient la donnée numérique extraite:
                x = x + Len(Str(Nombre)) - 1
                ' ---
            End If
        Next
     
        MsgBox "Il y a " & Nb & " valeurs numériques dans la chaîne:" & vbLf & Resultat
    End Sub


    michel

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Merci cela fonctionne à merveille... Cependant, le problème est qu'il me renvoie une MsgBox, m'indiquant le nombre de valeurs numériques, et les quelles elles sont...
    ("Il y a 2 valeur numérique dans la chaînes : /17 /46") (les / représentent les retours de ligne. )

    Cependant, il fat que j'entre manuellement les valeurs pour les exploiter à nouveau... Comment faire pour que les valeurs deviennent sélectionnées (ex. qu'en faisant Selection.Paste ensuite, l puisse les copier dans une autre cellule? )

    De plus, dans la MsgBox de fin, est-il possible de séparer les valeurs les unes des autres? (ex. La il affiche "Il y a 2 valeur numérique dans la chaînes : /17 /46" (les / représentent les retours de ligne. ) et il faudrait afficher "Tempérture extraite des données : 17 /Humidité extraite des données : 46"...

    Serait-ce possible?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    rebonsoir

    Je ne comprend pas le sens de ton message ...

    il suffit de récupérer les valeurs prises par la variable "Nombre", dans cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Extrait la donnée numérique de la chaîne
    Nombre = Val(Mid(Cible, x, Len(Cible) - x + 1))


    michel

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Oui, merci, je n'avais pas réfléchi, je m'en suis rendu compte entre temps...

    Cependant, j'ai un autre problème Je suis désolé...

    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cible = Replace(Cible, ".", ",")
    et l'autre ligne avec la fonction Replace ne fonctionnent pas...
    Comme j'utilise un Excel en anglais, ca ne me gêne pas, mais j'aimerais envoyer cela à des utilisateurs d'un Excel français, et la problème... Lorsque j'éxécute la macro, il ne me donne pas d'erreur, mais ne remplace pas les points...

    Je ne comprends pas comment faire... J'ai cru que peut-être c'était car la nouvelle valeur de la cellule n'est pas enregistrée dans la variable de résultat, mais je ne sais pas comment résoudre ce problème... J'ai essayé de m'inspirer de l'autre partie ou la valeur était elle enregistrée dans la var. de rés., mais je ne suis arrivé à rien...

    Merci d'avance
    ArthurO0O

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Au lieu de remplacer les points pas des virgules, essaie de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cible = Replace(Cible, ",", ",")
    L'Excel français place des virgules à la place des points mais si tu saisis un point, il l'assimile à une virgule...
    C'est ainsi que je me l'explique mais j'ai déjà eu ce pb et en outre j'ai vu passer une discussion ou ce simple remplacement réglait le pb.
    A tout hasard.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Merci, ca marche en effet!

    Je mets Résolu de suite!

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

Discussions similaires

  1. Validation d'une partie d'un XML sur une partie d'un XSD
    Par EJO64 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/02/2015, 09h05
  2. [Toutes versions] Contient en fonction d'une partie de la valeur d'une cellule
    Par esstin dans le forum Excel
    Réponses: 2
    Dernier message: 26/04/2009, 20h26
  3. Réponses: 2
    Dernier message: 24/10/2008, 08h04
  4. sélectionner une partie de la valeur d'une cellule
    Par Yoooo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/10/2008, 16h18
  5. calcul d'une partie de la valeur d'une cellule
    Par magictom42 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 23/10/2006, 11h16

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