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

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... :p) 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

  • Probleme Find dans Planning.xlsm
    10.9 KB · Affichages: 71
  • Probleme Find dans Planning.xlsm
    10.9 KB · Affichages: 80
  • Probleme Find dans Planning.xlsm
    10.9 KB · Affichages: 81
Dernière édition:

kjin

XLDnaute Barbatruc
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
 

Poto

XLDnaute Occasionnel
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
 

kjin

XLDnaute Barbatruc
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
 

Poto

XLDnaute Occasionnel
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:

kjin

XLDnaute Barbatruc
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
 

pierrejean

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

Bonjour Poto

Salut kjin

En supposant avoir saisi ce que veux dire Poto
 

Pièces jointes

  • Probleme Find dans Planning.xlsm
    18.1 KB · Affichages: 88
  • Probleme Find dans Planning.xlsm
    18.1 KB · Affichages: 90
  • Probleme Find dans Planning.xlsm
    18.1 KB · Affichages: 86
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 047
Membres
104 011
dernier inscrit
dfr