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 :

Caractère * ne représentant pas une chaîne quelconque


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut Caractère * ne représentant pas une chaîne quelconque
    Bonjour à tous,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("A1:T1").Select
        Selection.Replace What:="*1.000", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    J'effectue un replace de cette façon. Mon but est d'effacer la chaîne *1.000 lorsqu'elle se présente. Cependant, avec ce bout de code, on efface la chaîne 1.000 lorsqu'elle est trouvée peu importe ce qu'il peut y avoir avant (et ce qu'il y a avant est aussi effacé).

    Bref, c'est le cas classique du caractère * représentant une chaîne de caractères quelconque.

    Ma question est donc la suivante : comment écrire * pour que cela ne représente pas une chaîne de caractères quelconque mais bien le caractère * ?

    J'avais pensé à mais le résultat est le même que dans le cas précédent (d'ailleurs, je ne suis même pas sûr que 42 soit le bon code pour le caractère *).

    Terminons par un petit exemple au cas où je n'ai pas été assez clair. Pour le moment, dans une de mes cellules j'ai 71.0004 et *1000 dans un autre. Dans l'état actuel des choses, je me retrouve, après le lancement de la macro, avec 4 et une cellule vide. Je voudrais donc avoir 71.0004 (aucune modification car pas de chaîne *1.000) et une cellule vide.

    Merci d'avance
    DeaD

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    essaie de doubler le * exemple "**1.000"
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Salut cafeine,

    Je viens de tester à l'instant et cela ne change rien
    DeaD

  4. #4
    Membre émérite 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 : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Je crois tenir une alternative...dépendra de tes données effectives...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub testRemplace()
     
    Dim cel As Range, Plage As Range
     
    Set Plage = Sheets("sheet2").Range("A1:T1")
     
    Plage.Select
        For Each cel In Plage
            If Left(cel.Value, 1) = "*" Then cel.Replace What:="*1.000", Replacement:=""
        Next
    End Sub
    Sinon, j'imagine que ton "1.000" est stocké en format texte alors qu'il devrait être en nombre, ça pourrait être une autre piste.

    A+
    N'oubliez pas le si votre problème est solutionné.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    J'essayerai bien un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Range("A1:T1").Select
        For Each MaCel In Selection.Cells
            If MaCel.Value="*1.000" then
                MaCel.Value=""
            End If
        Next
    --------------
    Frédéric
    http://www.access-developpement.com
    Frédéric
    Développeur d'Applications Access

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 255
    Points : 325
    Points
    325
    Par défaut
    Bonjour,

    essaie avec cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:T1").Replace What:="~*1.000", Replacement:="", LookAt:=xlPart

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Merci à tous !

    Les solutions de Fvandermeulen et de mapeh fonctionnent bien !
    DeaD

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/12/2014, 00h02
  2. Réponses: 3
    Dernier message: 19/08/2014, 13h14
  3. Réponses: 2
    Dernier message: 13/05/2014, 09h44
  4. Exprimer une chaîne quelconque en Java
    Par zentaf dans le forum Langage
    Réponses: 1
    Dernier message: 28/04/2009, 22h26
  5. Convertir une chaîne quelconque en binaire
    Par tsing dans le forum Ruby
    Réponses: 6
    Dernier message: 30/01/2007, 09h31

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