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

MACRO ou Fonction ????

  • Initiateur de la discussion Initiateur de la discussion masliah5
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

masliah5

Guest
Bonjour à tous,

Je suis novice dans vba donc je pense que ma demande n'est pas trés compliquée mais elle me pose tout de meme probleme!

j'ai un tableau avec 3 colonnes, la premiere corespond à la date, la seconde correspond à un numero (une réfence client) et la troisieme correspond au nom du vendeur affecté à ce numero.

Ainsi, je souhaite créer une macro qui me permet de retrouver automatiquement le nom du vendeur a chaque fois que je rentre un numero de client deja insérer à une date antetérieure.

toutefois il y a un probleme car il se peut qu'il y ait plusieurs vendeurs affectés au meme numero client. l'objectif est alors d'affecter le dernier vendeur correspondant au numero client en question a la date la plus proche.

Comment dois-je m'y prendre ?

Merci à tous pour votre aide.

🙂
 
Re : MACRO ou Fonction ????

Bonjour masliah5, bienvenue sur XLD,

Voyez le fichier joint.

Les dates doivent se suivre dans l'ordre chronologique.

La macro recherche la dernière référence en colonne B.

Elle remonte ensuite la colonne B et si la même référence est trouvée, le dernier vendeur est proposé en colonne C.

Si l'on efface la dernière référence entrée, le vendeur est aussi effacé.

La macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Dim derlig As Long, i As Long
derlig = Range("B65536").End(xlUp).Row
Cells(derlig + 1, "C") = ""
If Target.Address <> Cells(derlig, "B").Address Then Exit Sub
Target.Offset(, 1).Select
For i = derlig - 1 To 2 Step -1
  If Cells(i, "B") = Target Then
    ActiveCell = Cells(i, "C") 'le vendeur trouvé est proposé en colonne C
    Exit Sub
  End If
Next
ActiveCell = ""
End Sub

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

T
  • Question Question
Réponses
125
Affichages
14 K
B
Réponses
0
Affichages
1 K
Bullrot
B
A
Réponses
3
Affichages
1 K
AlicePrince
A
S
Réponses
12
Affichages
2 K
S
Réponses
12
Affichages
4 K
S
M
  • Question Question
Réponses
0
Affichages
1 K
Mirguy23
M
J
Réponses
2
Affichages
2 K
2
Réponses
24
Affichages
3 K
2
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…