Mettre une valeur par défaut

Bonsoir,

Après avoir sélectionné une valeur dans une liste de parcelles, comment remplir par défaut la colonne "surface travaillée" avec un code VBA afin de pouvoir la modifier si besoin.

Voir le fichier joint.

Merci d'avance,

Philippe

Bonsoir Philippe02

Vous pouvez mettre ce code dans la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim CelF As Range
  If Not Intersect(Target, Range("Tableau1[Parcelle]")) Is Nothing Then
    Set CelF = Range("Tableau2[Parcelles]").Find(What:=Target.Value, LookIn:=xlValues)
    If Not CelF Is Nothing Then
      ' Attention les tableaux commencent en ligne n°2 qu'il faut déduire
      Range("Tableau1[Surface travaillée]").Cells(Target.Row - 2).Value = _
      Range("Tableau2[Surface]").Cells(CelF.Row - 2)
    End If
  End If
End Sub

A+

Bonsoir et merci beaucoup,

Bonne soirée à vous,

A bientôt,

Philippe

Bonsoir,

Je reviens vers vous pour vous demander comment faire la même chose mais avec le tableau des paramètres dans une autre feuille.

Voir le fichier

Merci

Philippe

bonjour, modifier cette macro en ceci

Private Sub Worksheet_Change(ByVal Target As Range)
     Dim C As Range, cT2 As Range

     Set C = Intersect(Target, Range("Tableau1[Parcelle]"))
     If C Is Nothing Then Exit Sub
     If C.Value = "" Then Exit Sub

     Set cT2 = Sheets("feuil2").Range("Tableau2")     'le tableau dans une autre feuille
     r = Application.Match(C.Value, cT2.Columns(1), 0)
     If IsNumeric(r) Then C.Offset(, 2).Value = cT2(r, 2).Value Else MsgBox "faux parcelle", vbExclamation

End Sub

Bonjour,

Je n'avais pas précisé, en mettant les paramètres dans une autre feuille ça ne fonctionne pas, il faut ajuster le code VBA.

Mais comment faire cela ?

Merci et bonne journée.

Cordialement,

Philippe

Bonjour Philippe02, BsAlv

Un tableau sur Excel devrait commencer dans la 1ère cellule de la 1ère ligne
voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim CelF As Range
  If Not Intersect(Target, Range("Tableau1[Parcelle]")) Is Nothing Then 'Tableau des saisies
    Set CelF = Sheets("Feuil2").Range("Tableau2[Parcelles]").Find(What:=Target.Value, LookIn:=xlValues)
    If Not CelF Is Nothing Then
      ' Important il faut penser à désactiver les évènements
      Application.EnableEvents = False
      ' Attention les tableaux commencent en ligne n°2 qu'il faut déduire
      Range("Tableau1[Surface travaillée]").Cells(Target.Row - 1).Value = Sheets("Feuil2").Range("Tableau2[Surface]").Cells(CelF.Row - 1)
      ' Et on réactive ici
      Application.EnableEvents = True
    End If
  End If
End Sub

Voici le fichier

A+

Bonjour Philippe02, BrunoM45,

Bonjour et merci à vous tous,

Bonne journée,

Cordialement,

Philippe

Re,

Merci, normalement c'est fait.

Bonne journée,

Philippe

Rechercher des sujets similaires à "mettre valeur defaut"