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 :

Petite question VBA : fonction worksheet_change


Sujet :

Macros et VBA Excel

Mode arborescent

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Par défaut Petite question VBA : fonction worksheet_change
    Bonjour,

    Je ne maitrise pas beaucoup le VBA et j'ai ce fichier ci-joint,

    Dans la cellule B2, j'ai une liste qui s'affiche suivant les premières lettres que je tape (ex :al, liste albert). Si le prénom n'existe pas dans la liste, j'ai une fonction worksheet-change qui me propose de l'ajouter à ma liste de prénom sur la feuille2. Pas de pb.

    Par contre sur la cellule B3, la liste fonctionne aussi mais pas la fonction worksheet. Ainsi je ne peux ajouter le prénom tapé dans cette cellule s'il n'existe pas dans ma liste de référence.

    j'ai essayé de recopier le language dans l'éditeur en mettant ceci mais ca ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address = "$B$2" And Target <> "" Then
       If IsError(Application.Match(Target.Value, [noms], 0)) Then
         If MsgBox("On ajoute?", vbYesNo) = vbYes Then
           [noms].End(xlDown).Offset(1, 0) = Target.Value
           Sheets("Feuil2").[noms].Sort key1:=Sheets("Feuil2").Range("A2")
        Else
           Application.Undo
         End If
        End If
      End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address = "$B$3" And Target <> "" Then
       If IsError(Application.Match(Target.Value, [noms], 0)) Then
         If MsgBox("On ajoute?", vbYesNo) = vbYes Then
           [noms].End(xlDown).Offset(1, 0) = Target.Value
           Sheets("Feuil2").[noms].Sort key1:=Sheets("Feuil2").Range("A2")
        Else
           Application.Undo
         End If
        End If
      End If
    End Sub
    Si quelqu'un pouvait m'aider ce serait super.

    D'ailleurs si vous connaissez un bon site pour apprendre le VBA je suis preneur.

    Merci beaucoup d'avance
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Petite question sur les return de fonction
    Par gueulederack dans le forum VB.NET
    Réponses: 5
    Dernier message: 04/11/2011, 17h56
  2. Petite question sur le typage des fonctions
    Par Dim Me As New Idiot dans le forum F#
    Réponses: 4
    Dernier message: 13/07/2010, 10h41
  3. Petite question fonction Format
    Par Geoffroy123 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 12/02/2009, 11h44
  4. Petite question sur les fonctions
    Par acacia dans le forum Mathématiques
    Réponses: 6
    Dernier message: 06/02/2009, 17h52
  5. [VBA][Excel]Petite question bête !
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/09/2005, 15h36

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