Index/ equiv

Bonjour,

J'ai travaillé avec la fonction index et equiv pour effectuer mon planning par rapport à mes engins et je n'ai pas arriver à trouver le bon résultat.

Mon besoin c'est d' y faire une synthèse par rapport au palnning des engins (ENGINE 1; 2; et 3) .

Par exemple au niveau de la feuille synthèse je voudrais qu'Excel m'indique par rapport à l'équilibrage les index qui doivent passés en priorité en mentionnant l'Engine.

Merci par avance.

Bonjour,

Ta question concerne une recherche multi-feuilles pour consolidation de différents travaux ...

Ci-joint ton fichier test ...

En espèrant que cela t'aide ...

Merci beaucoup pour la réponse. c'est exactement ce que je cherche.

Pouvez-vous SVP m'expliquer comment vous l'avez programmer pour que je puisse l'utiliser sur autre feuille.

Merci autrefois.

Re,

Content que cela fonctionne ...

Merci ... pour tes remerciements ...

La macro n'est pas cachée ... ... il suffit de faire Alt + F11 pour y accéder ...

Bon Courage pour la suite ...

Pouvez-vous m'expliquer les grandes lignes de ce programme ?

Option Explicit

Sub Consolidation()

Dim fnd As String, FirstFound As String

Dim FoundCell As Range

Dim myRange As Range

Dim sh As Worksheet, i As Long

Application.ScreenUpdating = False

fnd = Feuil4.Range("B3")

Feuil4.Range("B4:E100").ClearContents

For Each sh In ThisWorkbook.Sheets

If sh.Name <> "Synthèse" Then

Set myRange = sh.UsedRange

Set FoundCell = myRange.Find(what:=fnd, after:=myRange.Cells(1, 1), SearchOrder:=xlByColumns)

If Not FoundCell Is Nothing Then

FirstFound = FoundCell.Address

i = Feuil4.Cells(Application.Rows.Count, "B").End(xlUp).Row + 1

Feuil4.Cells(i, 2) = sh.Name

Feuil4.Cells(i, 3) = sh.Cells(FoundCell.Row, 1)

Feuil4.Cells(i, 4) = sh.Cells(1, FoundCell.Column)

Feuil4.Cells(i, 5) = sh.Cells(2, FoundCell.Column)

Else

GoTo NothingFound

End If

Do Until FoundCell Is Nothing

Set FoundCell = myRange.FindNext(after:=FoundCell)

If FoundCell.Address = FirstFound Then Exit Do

i = Feuil4.Cells(Application.Rows.Count, "B").End(xlUp).Row + 1

Feuil4.Cells(i, 2) = sh.Name

Feuil4.Cells(i, 3) = sh.Cells(FoundCell.Row, 1)

Feuil4.Cells(i, 4) = sh.Cells(1, FoundCell.Column)

Feuil4.Cells(i, 5) = sh.Cells(2, FoundCell.Column)

Loop

NothingFound:

If FoundCell Is Nothing Then Exit Sub

End If

Next sh

i = Feuil4.Cells(Application.Rows.Count, "B").End(xlUp).Row

ActiveWorkbook.Worksheets("Synthèse").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Synthèse").Sort.SortFields.Add Key:=Range("D4:D" & i _

), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

ActiveWorkbook.Worksheets("Synthèse").Sort.SortFields.Add Key:=Range("E4:E" & i _

), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Synthèse").Sort

.SetRange Range("B3:E" & i)

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Application.ScreenUpdating = True

End Sub

Bonjour,

Est-ce-que ton fichier réel est très différent du fichier test que tu as posté ...?

Si c'est le cas, tu as intérêt à poster un autre fichier test qui soit véritablement similaire au tien ...

Bonjour hem-id, James007,

hem-id, le boulot fait par James007 est excellent, ces macros s'appliquent à un classeur contenant plusieurs feuilles et non à une feuille en particulier.

vu que James007 as déjà fait tous le boulot, je vais essayer de vous expliquer les grandes lignes...

premièrement sur la page code de l'onglet "Synthèse" il y a la macro suivante:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$3" Then Exit Sub
Application.Run ("Consolidation")
End Sub

explication: si la cellule B3 de la feuille "Synthèse" change de valeur,

exécuter la macro "Consolidation" (cette macro est sur le Module 1)

je vais mettre des notes directement dans la macro pour faciliter la lecture,

ps/ au passage il vaut mieux mettre le code entre les balises pour faciliter la lecture.

Édit: les lignes d'explication étant trop longue pour les balises,

c'est pourquoi je remet le fichier en pièce joint pour une meilleur lecture

Bonjour Isa ...

Un grand MERCI .....

Pour être honnête ... pas trop le temps de tout commenter ...

Tes explications sont vraiment excellentes ...

merci à toi James007, c'est vraiment un plaisir quand le boulot est déjà bien fait !

cordialement,

isabelle

Édit:

ce sujet fait souvent l'objet de question, alors voici une nouvelle version du fichier de James007 avec plus d'explication,.

s.v.p. n'hésitez pas à mettre votre grain de sel au passage.

Merci je vais test et je reviens vers vous pour mettre la solution.

Merci du retour !

@ Alu 77 ...

Si je comprends bien ton commentaire est lié au sujet suivant :

https://forum.excel-pratique.com/excel/copier-coller-si-mot-clee-sinon-copier-t99139.html

Merci beaucoup à vous tous pour les explications enrichissantes.

Je voudrais ajouter des warnings au niveau de la feuille synthèse : Par exemple si on a un chevauchement entre plusieurs index sur la même journée qu'Excel me colore les lignes chevauchées en rouge. Comment je dois procéder ?

Bonjour,

Content que tu aies pu résoudre ton premier problème ...

Concernant ta deuxième question ... il faudrait que tu puisses illustrer ce que tu attends ...

Par exemple sur l’engin 1 on a l'équilibrage de l"index SM52 et sur l'engin 2 on la même chose (29-sept) . Sur mon atelier j'ai qu'une seule machine d'équilibrage.

Je voudrais par exemple qu'excel m'alerte s'il trouve que deux index avec même travaux sur la demi-journée et qu'il me colore ça sur la feuille synthèse en prenant compte la date Aujourd’hui()

Bonjour,

Je comprends mieux l'objectif ...

Mais malheureusement ... avec ce genre de besoin ... il faut être ultra clair ...

Je traduis qu'il faudrait Signaler :

Deux indexes identiques, même jour, même demi-journée, sur des Engins différents ...SANS prendre en compte la date Aujourd’hui() .... car la date du jour n'a aucune influence sur le fait que tu n'as qu'une seule machine pour Equilibrage ...

Est-ce-que j'ai compris ou pas ...???

Des index différents qui sont planifiées équilibrage , même jour, même demi-journée; oui sur des engins différents.

Je suis tout à fait d'accord avec toi sur aujourd'hui. Je voulais qu'il m'alerte juste pour changer la planification et que je gère mes priorités.

Merci Mr James pour ta réactivité.


Des index différents ou des mêmes index

Rechercher des sujets similaires à "index equiv"