Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Macro] Si [D6]= l'un des éléments de la colonne U

anthony_unac

XLDnaute Junior
Bonjour,

Une petite macro me donne du fil à retordre j'aimerai coder l'instruction suivante :
Si [D6]= l'un des éléments de la colonne U

Sachant que dans la colonne U il y a des noms de fournisseurs.

Si vous pouviez me filer un coup de patte ca serait cool.

Cordialement
Anthony
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : [Macro] Si [D6]= l'un des éléments de la colonne U

Bonsoir Anthony, bonsoir le forum,

Je te propose la macro événementielle Change à placer dans le composant Worksheet de l'onglet en question (Feuil1(Feuil1) par exemple) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet

'si l'adresse de la cellule où a lieu le changement est différente de D6, sort de la procédure
If Target.Address <> "$D$6" Then Exit Sub
'si D6 est effacée, sort de la procédure
If Target.Value = "" Then Exit Sub

's'il existe au moins une occurrence de D6 dans la colonne U, lance la macro
If Not Columns(21).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then Call Ma_macro
End Sub
 

anthony_unac

XLDnaute Junior
Re : [Macro] Si [D6]= l'un des éléments de la colonne U

Merci beaucoup Robert,

Vous êtes toujours aussi fort tant au niveau de la rédaction que de la réactivité. Je vais essayer ça et je vous tiens au jus.

Cordialement
Anthony
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : [Macro] Si [D6]= l'un des éléments de la colonne U

Bonsoir Anthony, bonsoir le forum,

Ha ha ha ! Arrête Anthony après j'ai les chevilles et le melon qui enflent et je me prend pour ce que je ne suis pas...
 

anthony_unac

XLDnaute Junior
Re : [Macro] Si [D6]= l'un des éléments de la colonne U

Aie ça ne fonctionne pas comme je l'imaginais

Voici la dite macro que j'ai légèrement modifié :

Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet

'si l'adresse de la cellule où a lieu le changement est différente de D6, sort de la procédure
If Target.Address <> "$D$6" Then Exit Sub
'si D6 est effacée, sort de la procédure
If Target.Value = "" Then Exit Sub

's'il existe au moins une occurrence de D6 dans la colonne U, lance la macro
If Not Columns(21).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then

[G6] = "PRODUIT TECHNIQUE"
[H6] = "SAV"

End Sub

Cordialement

Anthony
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : [Macro] Si [D6]= l'un des éléments de la colonne U

Bonsoir Anthony, bonsoir le forum,

Il te manque un End If... :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet

'si l'adresse de la cellule où a lieu le changement est différente de D6, sort de la procédure
If Target.Address <> "$D$6" Then Exit Sub
'si D6 est effacée, sort de la procédure
If Target.Value = "" Then Exit Sub

's'il existe au moins une occurrence de D6 dans la colonne U, lance la macro
If Not Columns(21).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
      [G6] = "PRODUIT TECHNIQUE"
      [H6] = "SAV"
[COLOR=red]End If[/COLOR]
End Sub
 

anthony_unac

XLDnaute Junior
Re : [Macro] Si [D6]= l'un des éléments de la colonne U

Exact !

Si vous n'avez pas encore le melon, vous avez au moins l'œil

Malheureusement, ça ne fonctionne pas plus pour autant ?

Je me suis peut etre mal exprimé au début alors je vais reformulé ce que je souhaite coder :

"Si [D6] est égal à l'un des éléments de la colonne U alors [G6] = "PRODUIT TECHNIQUE" et [H6] = "SAV"

Cordialement
Anthony
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : [Macro] Si [D6]= l'un des éléments de la colonne U

Bonsoir Anthony, bonsoir le forum,

J'ai modifié un peu mais ça marche ! Regarde la pièce jointe...
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
'si l'adresse de la cellule où a lieu le changement est différente de D6, sort de la procédure
If Target.Address <> "$D$6" Then Exit Sub
 
'si D6 est effacée, efface aussi G6 et H6
If Target.Value = "" Then
      [G6] = ""
      [H6] = ""
      Exit Sub
End If
 
's'il existe au moins une occurrence de D6 dans la colonne U, lance la macro
If Not Columns(21).Find(Target.Value, , xlValues, xlWhole) Is Nothing Then
      [G6] = "PRODUIT TECHNIQUE"
      [H6] = "SAV"
End If
End Sub
 

Pièces jointes

  • Anthony_v01.xls
    23 KB · Affichages: 41
  • Anthony_v01.xls
    23 KB · Affichages: 40
  • Anthony_v01.xls
    23 KB · Affichages: 43

anthony_unac

XLDnaute Junior
Re : [Macro] Si [D6]= l'un des éléments de la colonne U

Je pense avoir compris mon erreur c'est que j'avais placé votre macro dans le workbook au lieu du worksheet

Merci beaucoup Robert la ca fonctionne du tonnerre !
 

Discussions similaires

Réponses
9
Affichages
113
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…