Recherche valeur et copier la cellule d'à coté

'Recherche et copie le poste en fonction du nom

If r.Range("A" & a) = valeur Then s.Range("A3:B50000").Find(r.Range("A" & a), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext).Select

Selection.Copy

Je voudrais copier la cellule en A en fonction de la valeur rechercher en B.

Help

Bonjour,

Ton extrait de code est incompréhensible en l'état. Peux-tu fournir un fichier qui illustre l'organisation des données, et dans lequel tu fais ressortir ce que tu souhaites faire...

Merci pour le fichier, mais il manque cette partie :

...et dans lequel tu fais ressortir ce que tu souhaites faire...

Je suis en train d'éplucher ton code, voilà mes premières remarques :

  • Tes variables ne sont pas déclarées
  • Préciser la feuille dont dépend chaque objet rend inutile les instructions "Select" et "Activate"
  • Inutile de copier et coller pour reporter une valeur, il suffit de faire une égalité entre 2 plages (ex : Range("A1") = Range("B1"))
  • La variable "valeur" n'est pas initialisée, à quoi fait-elle référence ?
  • Onglet "Synthèse" : on évite autant que possible d'utiliser des cellules fusionnées. Il faut dupliquer "Poste2" sur chaque ligne concernée, car actuellement, les cellules A5 à A1 sont vides !

Voilà ton code révisé d'après ce que j'ai compris, et en tenant compte des remarques précédentes :

Sub Recherche()

'Déclaration des variables
Dim p As Worksheet, r As Worksheet, d As Worksheet, s As Worksheet, f As Worksheet, Lig As Long, Resultat As Range

'Données
Set p = Worksheets("Liste Personnel")           'feuilles avec la liste du personnel ("A3:Ax")
Set r = Worksheets("Recap")                     'feuilles de gestion des formations (colA: Personnel; colB: Poste; col C: Formation)
Set d = Worksheets("Data")                      'feuilles d'extraction des données
Set s = Worksheets("Synthese")                  'feuilles avec la liste des poste ("A3:Ax")
Set f = Worksheets("Liste formation")           'feuilles avec la liste des formations ("A3:Ax")

For Lig = 3 To p.Cells(Rows.Count, 1).End(xlUp).Row
    'Reporte la liste du personnel sur Formation
    r.Range("A" & Lig) = p.Range("A" & Lig)
    'Recherche et copie le poste en fonction du nom
    Set Resultat = s.Range("B3:B50000").Find(r.Range("A" & Lig), LookIn:=xlValues, LookAt:=xlWhole)
    If Not Resultat Is Nothing Then r.Range("B" & Lig) = Resultat.Offset(0, -1)
Next Lig

End Sub

Je veux tout synthétiser dans la feuille récap

Colonne A liste du personnel

Colonne B les poste liés au personnel

Colonne C les formation liées au poste

Je veux tout synthétiser dans la feuille récap

Colonne A liste du personnel

Colonne B les poste liés au personnel

Colonne C les formation liées au poste

VBA n'est sans doute pas utile dans l'histoire ! Tu devrais pouvoir t'en sortir avec des RECHERCHEV.

As-tu testé le code que je t'ai renvoyé ?

Merci

Elle fonction très bien.

Avec RechercheV cela aura pu fonctionner

Mais une personne peut avoir deux poste, donc je voudrais aussi mettre les deux postes en ajouter l'autre poste en dessous du premier.

Rechercher tous les poste du Personnel 1 les ajouter les uns en dessous des autres puis Rechercher les poste du Personnel 2...

Rechercher des sujets similaires à "recherche valeur copier cote"