Recherche dans des feuilles de données
Fermé
fakry
Messages postés
1
Date d'inscription
mercredi 18 mai 2016
Statut
Membre
Dernière intervention
18 mai 2016
-
Modifié par fakry le 18/05/2016 à 16:04
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 - 18 mai 2016 à 16:28
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 - 18 mai 2016 à 16:28
A voir également:
- Recherche dans des feuilles de données
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Trier des données excel - Guide
- Supprimer les données de navigation - Guide
- Reinstaller windows sans perte de données - Guide
1 réponse
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
18 mai 2016 à 16:28
18 mai 2016 à 16:28
Bonjour,
macro "simplifiee", a tester, vu que sans de donnees .....!!!!!!
macro "simplifiee", a tester, vu que sans de donnees .....!!!!!!
Sub Macro1() Dim cel As Range 'déclare la variable cel (CELlule) Dim Ca1 As Range 'déclare la variable Ca (Recherche Dim Cs1 As Range 'déclare la variable Ca (Recherche Dim Ca2 As Range 'déclare la variable Ca (Recherche Dim Cs2 As Range 'déclare la variable Ca (Recherche Dim i As Integer Dim f As Integer With Sheets("MO") 'prend en compte l'onglet "AVANT" (à adapter à ton cas) 'boucle sur toutes les cellules éditées cel de la colonne A (en partant de la ligne 2) f = .Range("K2").Value For i = 16 To 16 + f For Each cel In .Range("N" & i & ":AM" & i & .Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la recherche r (recherche la valeur de la cellule en partie dans la colonne A de l'onglet "BASE") If Range("B" & i).Value Like "P ou FP" Then Set Ca1 = Sheets("B1").Columns(1).Find(cel.Value, , xlValues, xlPart) Set Cs1 = Sheets("B1").Columns(1).Find(cel.Value, , xlValues, xlPart) 'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value ElseIf Range("B" & i).Value Like "P/FP" Then Set Ca1 = Sheets("B2").Columns(1).Find(cel.Value, , xlValues, xlPart) Set Cs1 = Sheets("B2").Columns(1).Find(cel.Value, , xlValues, xlPart) 'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value ElseIf Range("B" & i).Value Like "HP/UHX" Then Set Ca1 = Sheets("B3").Columns(1).Find(cel.Value, , xlValues, xlPart) Set Cs1 = Sheets("B3").Columns(1).Find(cel.Value, , xlValues, xlPart) 'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value ElseIf Range("B" & i).Value Like "GP ou KP" Then Set Ca1 = Sheets("B4").Columns(1).Find(cel.Value, , xlValues, xlPart) Set Cs1 = Sheets("B4").Columns(1).Find(cel.Value, , xlValues, xlPart) 'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value ElseIf Range("B" & i).Value Like "*B5*" Then Set Ca1 = Sheets("B5").Columns(1).Find(cel.Value, , xlValues, xlPart) Set Cs1 = Sheets("B5").Columns(1).Find(cel.Value, , xlValues, xlPart) 'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value ElseIf Range("B" & i).Value Like "*B6*" Then Set Ca1 = Sheets("B6").Columns(1).Find(cel.Value, , xlValues, xlPart) Set Cs1 = Sheets("B6").Columns(1).Find(cel.Value, , xlValues, xlPart) 'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value End If Next cel 'prochaine cellule de la boucle Next i End With 'fin de la prise en compte de l'onglet "AVANT" End Sub