Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
Bonjour,
j'aimerais pouvoir rechercher une valeur parmi une colonne de plusieurs onglets et que cela renvoie le nom de l'onglet (ou une cellule de l'onglet).
Et si la valeur est présente dans plusieurs onglets, que cela donne un message d'erreur.
Merci d'avance.
Pardon,
il faudrait que les cours qui apparaissent en colonne C des onglets SEM X soient référencés en colonne M de l'onglet 200i en nommant la SEM ou en informant que le cours existe plusieurs fois
voici une fonction qui recherche dans tous les onglet d'un classeur et qui renvoie une plage uniquement si la valeur cherchée est unique dans tout le classeur. Elle peut être affinée mais constitue je pense une base de travail.
VB:
Public Function FindCustom(ByVal FindValue As Variant) As Excel.Range
Dim wks As Excel.Worksheet
Dim rngResult As Excel.Range
For Each wks In ThisWorkbook.Worksheets
Set rngResult = wks.UsedRange.Find( _
What:=FindValue, _
LookIn:=XlFindLookIn.xlValues, _
LookAt:=XlLookAt.xlWhole, _
SearchOrder:=XlSearchOrder.xlByRows, _
SearchDirection:=XlSearchDirection.xlNext, _
MatchCase:=True)
If Not rngResult Is Nothing Then
If FindCustom Is Nothing Then
Set FindCustom = rngResult
If Not wks.UsedRange.FindNext(FindCustom) Is Nothing Then
If wks.UsedRange.FindNext(FindCustom).Address <> FindCustom.Address Then
Call MsgBox("Erreur : valeur en doublon dans l'onglet.")
Set FindCustom = Nothing: Exit Function
End If
End If
Else
Call MsgBox("Erreur : valeur déjà trouvée dans un autre onglet")
Set FindCustom = Nothing: Exit Function
End If
End If
Next wks
End Function
La colonne L de l'onglet 200i impose la semaine. Pourquoi alors aller chercher dans les autres semaines ?
Pour être plus clair, les lignes 7 et 8 vont faire une recherche dans la semaine 1, les lignes 9 et 10 dans la semaine 2, la ligne 11 la semaine 3 etc... Une fois les informations rapatriées on voit s'il y a doublon, non ? Avec une coloration automatisée par exemple
Oui vous avez raison sauf que la colonne L est ce qui est prévu et pas forcément ce qui va se faire, c'était pour vérifier que la réalité soit conforme ou différente de l'attendu.
Merci quand même.
un exemple : CAM 3 apparait dans SEM 1 et SEM 2, vous voulez donc que cette info apparaisse en cellule M9 onglet 200i ? Là il y a doublon en principe...
Voyez le fichier .xlsm joint et cette fonction VBA :
VB:
Function SEM(cours As String, separateur As String)
Application.Volatile
Dim w As Worksheet, nom As String
For Each w In Worksheets
nom = UCase(w.Name)
If nom Like "SEM*#" Then If Application.CountIf(w.Columns(3), cours) _
Then SEM = SEM & separateur & Val(Replace(nom, "SEM", ""))
Next
SEM = Mid(SEM, Len(separateur) + 1)
If IsNumeric(SEM) Then SEM = Val(SEM)
End Function
Le code doit être placé impérativement dans un module standard.
Formule en M7 de la feuille 200i =SEM(A7;"-") à tirer vers le bas.
La fonction étant volatile les formules sont recalculées quand on modifie une cellule quelconque.
Le séparateur "-" peut être modifié comme on veut.
- 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