Clé primaire sur excel

Résolu
chrisdemontigny Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
 Fenouille -
Bonjour,

je travaille sur excel et je voudrais faire la même chose que sur access : dans une colonne, lorsque je remplis l'identifiant d'une personne, m'assurer que l'identifiant que je tape n'a pas déjà été tapé avant.
Est-ce possible avec du VBA sur Excel?

9 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Oui, c'est possible mais cela peut se faire très facilement sans VBA...

    si toutefois, cela va dans un code

    if application.countif(range("A1:A100"),B2)>1 then
    Msgbox "Doublon ou autre message"
    end if

    Michel
    0
  2. chrisdemontigny Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour Michel,

    pourrais-tu m'expliquer dans le détail ta formule; je ne comprends que "A1:A100"
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    bonjour, bonjour Michel,
    Petite rectification...
    if application.countif(range("A1:A100"),B2)>0 then
    Msgbox "Doublon ou autre message"
    end if
    Michel suppose ta liste existante dans la colonne A et le nouvel ID dans la cellule B2
    A toi d'adapter suivant tes données.
    A+
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      Eh non, on cherche les doublons donc c'est bien >1
      cordialement
      0
    2. chrisdemontigny Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
       
      Re,

      je veux faire comme dans Access. Il ne peut donc y avoir de doublon à chercher au départ.
      Je veux être juste sûr que si j'écris 40107 dans la cellule A452 où les 451 lignes précédentes sont déjà remplies et que 40107 se trouve par exemple déjà dans la cellule A159, un msgbox me le signale et m'empêche de le faire.
      0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    peut-être comme ça ?
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Lig As Long
    Dim Cmp
        If Target.Column = 1 And Target.Count = 1 Then
            Cmp = Target
            For Lig = 1 To Target.Offset(-1).Row
                If Cells(Lig, 1) = Cmp Then
                    MsgBox "c'est ID existe déjà à la ligne " & Lig
                    Exit Sub
                End If
            Next Lig
        End If
    End Sub

    A coller dans le module de la feuille.
    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. chrisdemontigny Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
     
    merci lermitte, cela fonctionne.
    Je voudrais maintenant supprimer ma saisie et revenir dessus pour recommencer.
    J'ai mis cmp.delete mais cela ne fonctionne pas
    0
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
        Target.ClearContents
        Target.select

    0
    1. chrisdemontigny Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
       
      non, cela ne fonctionne pas.
      0
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    C'est que tu ne met pas à la bonne place..
    Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim Lig As Long 
    Dim Cmp 
        If Target.Column = 1 And Target.Count = 1 And Target <> "" Then 
            Cmp = Target 
            For Lig = 1 To Target.Offset(-1).Row 
                If Cells(Lig, 1) = Cmp Then 
                    MsgBox "c'est ID existe déjà à la ligne " & Lig 
                    Target.ClearContents 
                    Target.Select 
                     
                    Exit Sub 
                End If 
            Next Lig 
        End If 
    End Sub 


    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0
  9. chrisdemontigny Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
     
    Impeccable. Merci.
    J'étais pourtant persuadé d'avoir mis ces deux lignes à cette place.
    0
  10. Fenouille
     
    bonjour, mon problème se base surle même principe une clé primaire dans Excel:
    N'aant pas Access au bureau je voudrais créer une formulaire dans Excel à partir un tableau qui se trouve sur une autre feuille.
    J'aimerai simplement sélectionner une ligne de mon tableau et ainsi que les informations s'inscrive dans mon formulaire diectement.
    Donc ma cellule A2 se retrouve en C3, A3 en D5 ect... Et en sélectionant ma ligne B tout mon formulaire se modifie....
    Est-ce possible?
    Si ou, comment?

    PS : je suis nulle en Excel, alors ne soyez pas radin sur les détails de la procédure SVP...
    0