VBA - Probleme de recherche (Find, vlookup...??)

  • Initiateur de la discussion Initiateur de la discussion Poto
  • 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 !

Poto

XLDnaute Occasionnel
Salut à tous,
je suis depuis quelque jours bloquer par un probleme qui semble simple mais pour lequel j ai trouver aucune solution jusqu a maintenant 🙁

dans l'exemple joint, je cherche à faire en sorte que lorsque je donne un "conges" ("Congés" selectionné dans la colonne "Activité") à Loulou dans le planning, la date se trouvant à la gauche du nom soit reporter dans la base de donnees, dans la colonne "Date entree"(celle en jaune 😉 )...

biensur (sinon c est pas drole... 😛) j'aurais besoin de faire tous ca en vba (probablement en passant par un worksheet_change, mais je suis ouvert à toute suggestion)

j'attend anxieusement vos propositions

merci d'avance à tous

Poto
 

Pièces jointes

Dernière édition:
Re : VBA - Probleme de recherche (Find, vlookup...??)

Bonsoir,
Dans le module de la feuille planning
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C3:C8")) Is Nothing And Target.Count = 1 Then
    If UCase(Target) = "CONGES" Then
        Set c = Feuil2.Columns(2).Find(Target.Offset(, -1))
        If Not c Is Nothing Then c.Offset(, 5) = Target.Offset(, -2)
    End If
End If
End Sub
A+
kjin
 
Re : VBA - Probleme de recherche (Find, vlookup...??)

Merci bcp Kjin 🙂

mais petite question, n'existe t il pas une fonction qui ferait comme un vlookup mais qui au lieu de retourner une valeur permettrait d'inserer une valeur ???
Ou il y aurait il moyen de l ecrire si elle n existe pas ???

sinon, pour ta reponse Kjin, pourrait tu m expliquer un peu l utilisation des conditions avant le find ?? pk target.count = 1, a quoi sert il ???

je cherche a apprendre 😉

merci encore

Poto
 
Re : VBA - Probleme de recherche (Find, vlookup...??)

mais petite question, n'existe t il pas une fonction qui ferait comme un vlookup mais qui au lieu de retourner une valeur permettrait d'inserer une valeur ???
Ou il y aurait il moyen de l ecrire si elle n existe pas ???
Je ne comprends pas la question !
sinon, pour ta reponse Kjin, pourrait tu m expliquer un peu l utilisation des conditions avant le find ?? pk target.count = 1, a quoi sert il ???
On vérifie que la sélection est bien dans la plage "C3:C8" et qu'elle ne comporte qu'une seule cellule (peut être > 1 dans le cas d'un copier/coller par exemple)
A+
kjin
 
Re : VBA - Probleme de recherche (Find, vlookup...??)

Poto à dit:
mais petite question, n'existe t il pas une fonction qui ferait comme un vlookup mais qui au lieu de retourner une valeur permettrait d'inserer une valeur ???
Ou il y aurait il moyen de l ecrire si elle n existe pas ???

Je ne comprends pas la question !

comme vlookup "recherche une valeur dans la première colonne d'un tableau et renvoie une valeur dans la même ligne, dans une autre colonne du tableau" (cf aide Excel), n'existe t il pas une fonction qui rechercherais une valeur dans la 1er colonne d'un tableau et insererais une valeur (un activecell.offset par exemple) dans la même ligne, dans une autre colonne du tableau ?

ou, où dois je regarder pour creer une telle fonction ?

merci pour ton aide 🙂
 
Dernière édition:
Re : VBA - Probleme de recherche (Find, vlookup...??)

Re,
comme vlookup "recherche une valeur dans la première colonne d'un tableau et renvoie une valeur dans la même ligne, dans une autre colonne du tableau" (cf aide Excel), n'existe t il pas une fonction qui rechercherais une valeur dans la 1er colonne d'un tableau et insererais une valeur (un target.offset par exemple) dans la même ligne, dans une autre colonne du tableau ?
Je ne comprends toujours pas où tu veux en venir !
La méthode "Find" n'est-elle pas à ton gout ?
Avec "Application.Vlookup" ou "Application.Match", il s'agit d'appliquer en vba les fonctions intégrées d'Excel RECHERCHEV et EQUIV et il faut dans ce cas tester si ces fonctions renvoient une erreur, signe que la valeur cherchée n'existe pas.
De plus, à la difference de "Application.Match", "Application.Vlookup" ne nous renseigne aucunement sur la position de la valeur cherchée dans le tableau !
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, x
If Not Intersect(Target, Range("C3:C8")) Is Nothing And Target.Count = 1 Then
    If UCase(Target) = "CONGES" Then
        Set c = Feuil2.Columns(2)
        x = Application.Match(Target.Offset(, -1), c, 0)
        If Not IsError(x) Then Feuil2.Cells(x, 7) = Target.Offset(, -2)
    End If
End If
End Sub
A+
kjin
 
Re : VBA - Probleme de recherche (Find, vlookup...??)

Bonjour Poto

Salut kjin

En supposant avoir saisi ce que veux dire Poto
 

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
Retour