Worksheet_Change sur deux cellules

Bonjour,

j’utilise la méthode Worksheet_Change pour afficher le nom de chaque département (colonne C) en fonction du numéro de département colonne "B".

je voudrais faire pareil aussi pour les codes postales qui se trouvent dans la colonne M en affichant la commune correspondante en N. Les deux bases de commune et département se trouvent dans on onglet "insee".

Mon problème est que seul ma 1er boucle if marche. Les communes ne marchent pas.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cel As Range
    Dim FAdher, i, j As Integer
    On Error Resume Next
    FAdher = Worksheets("Feuil1").Range("B65536").End(xlUp).Row
    For i = 10 To FAdher
            'départements
            If Intersect(Target, Range("B5:B40000")) Is Nothing Then Exit Sub
            Set cel = Worksheets("insee").Range("C2:C38949").Find(Trim(Mid(Target.Value, 6, 5)), , xlValues, xlWhole)
                If Not cel Is Nothing Then
                Target.Offset(, 1).Value = cel.Offset(, 1).Value
            End If
            'Communes
            If Intersect(Target, Range("M5:M40000")) Is Nothing Then Exit Sub
            Set cel = Worksheets("insee").Range("D2:D38949").Find(Trim(Mid(Target.Value, 6, 5)), , xlValues, xlWhole)
                If Not cel Is Nothing Then
                Target.Offset(, 1).Value = cel.Offset(, 1).Value
            End If
    End If
    Next i
End Sub

Merci d'avance.

Bonjour

Ce que j'ai compris

En tapant dans la colonne B le numéro du département, tu auras le nom de celui-ci en colonne C

En tapant dans la colonne M le code postal, tu auras le nom de la commune en colonne N

A tester

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
  If Not Intersect(Target, Range("B5:B40000")) Is Nothing Then
    'départements
    Set Cel = Worksheets("insee").Range("C2:C38949").Find(Trim(Mid(Target.Value, 6, 5)), , xlValues, xlWhole)
    If Not Cel Is Nothing Then
      Target.Offset(, 1).Value = Cel.Offset(, 1).Value
    End If
  ElseIf Not Intersect(Target, Range("M5:M40000")) Is Nothing Then
    'Communes
    Set Cel = Worksheets("insee").Range("D2:D38949").Find(Trim(Mid(Target.Value, 6, 5)), , xlValues, xlWhole)
    If Not Cel Is Nothing Then
      Target.Offset(, 1).Value = Cel.Offset(, 1).Value
    End If
  End If
End Sub

Bonjour Banzai64 ,

merci pour la réponse. C'est effectivement ce qu'il me fallait.

Rechercher des sujets similaires à "worksheet change deux"