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 :

[VBA-E] Test sur le contenu de cellule


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut [VBA-E] Test sur le contenu de cellule
    Bonjour,

    je souhaite solliciter votre aide sur un problème où je suis un peu perdu... Google n'ayant rien pu faire pour moi...

    Procédures :
    Je dois lmiter la saisie d'une cellule sous excel et tester cette saisie, si cette dernière est égale à "GA", je dois rajouter 5 lignes en dessous (en recopiant les macros )

    Travail effectué :
    Dans un premier temps, grâce au petit module "Validation de Données", j'ai pu définir une liste de données, il suffit à l'user de selectionner son choix.

    Problème :
    c'est donc la qu'un problème se pose à moi...
    comment faire sous VBA pour tester la saisie d'une cellule et à quel moment le faire sachant que l'user peut selectionner une valeur à n'importe quelle moment...
    toutes idées sont les bienvenues

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    utilise les macro evenementielles
    sous vba, tu les trouveras dans la feuille code de chaque feuille de calcul.
    en haut de l'écran, tu as deux menu déroulant : général et déclaration
    si tu clique sur général tu verras apparaitre worksheets, puis tu va voir sous déclaration, tu trouvera la liste des evenements possibles

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut
    Parfait !
    Je travaillais avec des macros sous "perso.xls" et je n'avais pas connaîssances de ça !

    Merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut
    je reviens à la charge

    donc j'utilise les évènements de VBA cependant 2 problèmes se pose alors,
    1/ le code prend en compte tout les GA, même ceux déjà traités
    2/ le code m'insère 150 lignes...

    2 questions en ressortent donc (et elles correspoderont à ma demande...)
    vous auriez une idée pour traité qu'une seule fois mes "GA" (marqueur...?)
    pourquoi donc ce ptit bout de code m'insère autant de lignes

    Voici enfin le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        Dim iR, i
        iR = Cells(Rows.Count, "H").End(xlUp).Row
        For i = 6 To iR
        If Range("H" & i).Value = "GA" Then
            Rows(i).Insert
        End If
        Next
     
    End Sub
    Cordialement

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Il suffit de vérifier la cellule Target car c'est celle qui est modifiee
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Cells.Count = 1 Then
             If Target.Column = 8 And Target = "GA" Then ' Colonne 8 = H
                  range(target.offset(1,0), target.offset(5,0)).entirerow.insert
                  'ou range((target.row + 1) & ":" & (target.row + 5)).insert
             End If
        End If
    End Sub

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut
    ben merci beaucoup, j'ai compris la fonctionnalité du code mais je connaissais pas du tout ça

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

Discussions similaires

  1. [XPath] test sur le contenu d'un noeud
    Par ANISSS dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/11/2006, 12h14
  2. [vba-access] Test sur valeur des champs puis publipostage
    Par realthunderbolt dans le forum Access
    Réponses: 1
    Dernier message: 01/08/2006, 16h38
  3. [VBA-E] test sur une chaine de charactère
    Par gruget dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/04/2006, 14h24
  4. [VBA-E]test sur le contenu de toute une ligne
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/02/2006, 16h00
  5. Réponses: 2
    Dernier message: 16/02/2006, 09h24

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