Recherche valeur et copier la cellule d'à coté Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
L
LeChat
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 9 mai 2019
Version d'Excel : 2016FR

Message par LeChat » 22 mai 2019, 09:31

'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 :lole:
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'933
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 22 mai 2019, 09:34

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 de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
L
LeChat
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 9 mai 2019
Version d'Excel : 2016FR

Message par LeChat » 22 mai 2019, 09:39

Voici
FormationPolyvalencetest.xlsm
(23.29 Kio) Téléchargé 14 fois
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'933
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 22 mai 2019, 09:45

Merci pour le fichier, mais il manque cette partie :
Pedro22 a écrit :
22 mai 2019, 09:34
...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 !
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'933
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 22 mai 2019, 09:54

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
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
L
LeChat
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 9 mai 2019
Version d'Excel : 2016FR

Message par LeChat » 22 mai 2019, 10:01

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
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'933
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 22 mai 2019, 10:10

LeChat a écrit :
22 mai 2019, 10:01
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 de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
L
LeChat
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 9 mai 2019
Version d'Excel : 2016FR

Message par LeChat » 22 mai 2019, 10:22

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...
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message