Lier le contenu de cellules

Bonjour,

Je cherche à créer un tableau excel qui sera un recueil de données, liés à des médicaments.

En colonne A, je rentre le nom du médicament, et en colonne B un code lié à ce nom de médicament.

Exemple : A1 : Paracétamol B1 : N02BE71.

Si le même médicament revient plus loin dans la liste, j'aimerai que le code correspondant de la colonne B s'incrémente tout seul pour éviter d'avoir à le retaper. (c'est toujours le même code pour un même médicament)

Je vous remercie par avance pour votre aide

Ant

Bonjour,

Essaie ce code (à mettre dans le module de la feuille concernée) :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    If Target.Column = 1 Then
        Set c = Range("A1:A" & Target.Row - 1).Find(Target.Value)
        If Not c Is Nothing Then Target.Offset(0, 1).Value = c.Offset(0, 1).Value
    End If
End Sub

Bonne journée.

Ferrand


Le même, un peu plus fini !

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    If Target.Column = 1 And Target.Row > 1 And Target.Cells.Count = 1 Then
        Target.Offset(0, 1).ClearContents
        If Target.Value <> "" Then
            Set c = Range("A2:A" & Target.Row - 1).Find(Target.Value, , , xlWhole)
            If Not c Is Nothing Then Target.Offset(0, 1).Value = c.Offset(0, 1).Value
        End If
    End If
End Sub

Ferrand

Bonjour antdamuro, MFerrand.

Une information qui serai susceptible d’intéresser les personnes qui voudront vous aider...la table contenant les médicaments et leur codes elle se trouve où ?

Bonsoir force rouge,

A priori pas de table ! D'où ma proposition...

Bonne soirée

il y a forcément une table puisqu'il faut afficher un code du médicament...A moins que celui-ci soit un disciple de garcimore où qu'encore une fois je sois à côté de la plaque...

C'est la liste de saisie qui sert de table. La première fois le code est saisi. Ensuite lorsque le même médicament est à nouveau saisi le code peut être trouvé dans la liste.

Donc j'étais encore à coté de la plaque super O/

Ce code est vraiment génial, merci !

J'ai envie de vous embêter encore deux secondes, et d'en apprendre encore un peu.

Là, ça marche parfaitement avec les colonnes A et B, mais admettons que je veuille appliquer cela aux colonnes B et C, ou E et F : que dois-je modifier dans le code pour l'appliquer aux colonnes souhaitées ?

Un gros merci par avance

Ant

Voilà pour couvrir 3 paires de colonnes.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    With Target
        If .Column < 7 And .Column Mod 2 = 1 And .Row > 1 And .Cells.Count = 1 Then
            .Offset(0, 1).ClearContents
            If .Value <> "" Then
                Set c = Range("A1:F" & .Row + 100).Find(.Value, Range("F1"), , xlWhole, xlByRows)
                If Not c Is Nothing Then .Offset(0, 1).Value = c.Offset(0, 1).Value
            End If
        End If
    End With
End Sub

Tu saisis indifféremment en A, C ou E les médicaments et les références en B, D, F (pour la première fois. La ligne 1 reste réservée aux en-têtes. Le point sensible est la recherche. Je ne peux tester d'une façon suffisamment étendue. Me signaler s'il y a des cas ou la valeur existe et n'est pas trouvée, avec les positions respectives de la saisie et de la valeur à trouver.

Cordialement

Ferrand

Rechercher des sujets similaires à "lier contenu"