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 :

Modifier une valeur dès la saisie


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Par défaut Modifier une valeur dès la saisie
    Bonjour,

    Je cherche à faire en sorte que dès qu'on entre une valeur dans une certaine plage, elle soit aussitôt remplacée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="*" & +ActiveCell & "*"
    .

    Est-ce que c'est faisable ?

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    tu dois pour cela mettre le code dans l'événement Worksheet_Change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    ...
    target="*"+  target.value +"*"
    ...
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Par défaut
    Mais comment définir une plage d'action ? Je ne souhaite pas que cela fonctionne sur toute la feuille.
    Il n'y a pas de "In" apparemment, mais certainement un équivalent...

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    tu peux faire comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ISCT As Range
     
    Set ISCT = Intersect(Target, Range("A1:B2"))
     
    If Not ISCT Is Nothing Then
        target="*"+  target.value +"*"
    End If
     
    End Sub

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour
    tu peux utiliser la methode intersect

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim rg As Range
    Dim inter As Range
    Set rg = Range("D7,E12,G10,F6,F14,E17,G19,I15,J22,I26,J17,J8,H5,G3,B5,B14,C27,C22,A19,D18")
    Set inter = Intersect(Target, rg)
    If Not inter Is Nothing Then
    MsgBox "ok"
    End If
    End Sub

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Par défaut
    J'ai pris la solution de mayekeul et bizarrement j'obtiens un très grand nombre d'étoiles au lieu de seulement deux.
    D'où cela peut-il venir ?

  7. #7
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Chaque fois que tu ajoutes tes * tu relance l'évènement change.

    Essaye comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Not ISCT Is Nothing Then
        If Left(Target.Value, 1) <> "*" Then
            Target.Value = "*" & Target.Value & "*"
        End If
    End If

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/05/2006, 10h17
  2. Réponses: 5
    Dernier message: 21/04/2006, 15h49
  3. Réponses: 4
    Dernier message: 29/03/2006, 09h22
  4. modifier une valeur dans une hash
    Par chaabane dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2006, 11h59
  5. [C#] Modifier une valeur dans une DataTable
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2005, 11h45

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