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 :

Insertion automatique dans des cellules [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Points : 12
    Points
    12
    Par défaut Insertion automatique dans des cellules
    Salut tout le monde,

    j'aurais besoin d'un code VBA afin de réaliser le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si(ou(B4="XT",B4="YT",A4="ZT"),B4,"")
    c.àd. que si la valeur de B4 est XT, YT ou ZT, il m'insère automatiquement la valeur de B4 dans les Céllules C4 et D4. Si j'éfface le contenu (XT,YT..) de B4, il les éfface aussi des Céllules C4 et D4.

    Je doit avoir la possibilité d'entrer d'autres données dans les céllules B4,C4 et D4 sans que la macro intervienne!

    Et tout celà est valable de B4 jusq'à B34

    merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut samawati et le forum
    Pour me répéter encore et encore : on n'est pas dans ta tête, pas devant ton écran, ni magicien et on ne connaît du problème que ce que tu nous dis !!!
    Tout élément évident ne l'est que pour toi !
    Ce que je crois comprendre :
    un changement dans les cellules A4 à A34 entraîne des modifications :
    si A est différent de "XT", "YT" ou "ZT" les cellules B, C et D doivent être vides. Sinon, on peut entrer une valeur quelconque dans ces cellules.

    Si ce n'est pas ça, relis ton sujet et corriges-le !
    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Points : 12
    Points
    12
    Par défaut
    Salut Gorfael,

    Merci premièrement pour la réponse rapide

    Sorry j'ai fait une faute, il n'y a pas de A4!!

    un changement dans les cellules B4 à B34 entraîne des modifications :
    - si la valeur de B est égale à "XT", "YT" ou "ZT" les cellules C et D doivent prendre la même valeur que B.

    - si B est différent de "XT", "YT" ou "ZT" les cellules C et D doivent être vides. Et on peut entrer une valeur quelconque dans ces cellules (C et D).

    *********************
    Et que ca doit fonctionner pour tout le classeur qui comporte 13 feuilles.
    *********************

    Voilà je pense que c'est plus claire maintenant

    Merci encore une fois.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut samawati et le forum
    Sous VBEditor, tu vas dans le module ThisWorkBook et tu colles la macro suivante
    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
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Cel As Range
    If Intersect(Target, Range([B4], [B34])) Is Nothing Then Exit Sub
    'si ça ne concerne pas B4:B34, on sort
    For Each Cel In Intersect(Target, Range([B4], [B34]))
    'pour chaque cellule modifié de B4:B34
        If Cel = "XT" Or Cel = "YT" Or Cel = "ZT" Then
            Cel.Offset(0, 1) = Cel  'B+1=>C
            Cel.Offset(0, 2) = Cel  'B+2=>D
        Else
            Cel.Offset(0, 1) = ""   'B+1=>C
            Cel.Offset(0, 2) = ""   'B+2=>D
        End If
    Next Cel
    'cellule suivante
    End Sub
    Attention : la macro ne fait que ce qui est demandé : si une cellule de la plage est en minuscule, B4="zt" par exemple, C4 et D4 seront vidées.
    La macro agit dès qu'une cellule de la plage B4:B34 est modifiée, quelque soit la feuille du classeur où est le module ThisWorkBook.
    Si besoin de plus de précisions, les demander
    A+

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Points : 12
    Points
    12
    Par défaut
    Salut Gorfael,

    eh ben bravo c'est ce que je voulais exactement. Un grand merci!!

    Je peux savoir stp pourquoi il fait la difference entre minuscule et majuscule? et s'il y a une solution pour ce genre probleme?

    merci encore une fois.

    ==> Edit:
    bon j'ai mis un changement et ca fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Cel = "u" Or Cel = "U" Or Cel = "k" Or Cel = "K" Or Cel = "dv" Or Cel = "DV" Or Cel = "ft" Or Cel = "FT" Then
            Cel = UCase(Cel)
            Cel.Offset(0, 1) = Cel  'B+1=>C
            Cel.Offset(0, 2) = Cel  'B+2=>D
        Else
            Cel.Offset(0, 1) = ""   'B+1=>C

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour samawati Gorfael le forum en debut de ton module tu rajoute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit'oblige a declarer les variables
    Option Compare Text'pas de difference maj & min
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Cel As Range
    If Intersect(Target, Range([B4], [B34])) Is Nothing Then Exit Sub
    'si ça ne concerne pas B4:B34, on sort
    For Each Cel In Intersect(Target, Range([B4], [B34]))
     
    ect...
    je viens de voir ton edit avec option compare text pas besoin de l'ecrire comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cel = "u" Or Cel = "U" Or Cel = "k" Or Cel = "K" Or Cel = "dv" Or Cel = "DV" Or Cel = "ft" Or Cel = "FT" Then

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Points : 12
    Points
    12
    Par défaut
    ok merci laetitia, c'est fait et ca fonctionne aussi

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut à tous
    Option Compare est une solution, mais elle est globale pour le module.
    Je préfère utiliser d'autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If ucase(Cel) = "U" Or ucase(Cel) = "K" Or ucase(Cel) = "DV" Or ucase(Cel) = "FT" Then
            Cel = UCase(Cel)
            Cel.Offset(0, 1) = Cel  'B+1=>C
            Cel.Offset(0, 2) = Cel  'B+2=>D
        Else
            Cel.Offset(0, 1) = ""   'B+1=>C
    ou mettre le cel=Ucase(cel) avant le test (normalement, on ne fait que 2 passages de la macro, mais comme je n'ai pas testé...), mais ça met en majuscules les cellules qui ne correspondent pas aux critères.

    A+

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

Discussions similaires

  1. [XL-2003] recueprer automatiquement des valeurs dans des cellules excel
    Par facteur dans le forum Excel
    Réponses: 4
    Dernier message: 07/02/2014, 15h09
  2. Problème d'insertion automatique dans une cellule
    Par nikko49 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/01/2013, 18h51
  3. Insertion de numéros de ligne dans des cellules
    Par gogo850 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/01/2012, 20h28
  4. Insertion automatique de l'heure dans des cellules
    Par Border_xls dans le forum Excel
    Réponses: 7
    Dernier message: 13/11/2007, 20h30
  5. Insérer automatiquement des boutons dans des cellules excel
    Par Oaurelius dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/11/2005, 19h38

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