OVH Cloud OVH Cloud

Synthese de plusieurs onglets autour d'une meme valeur

14 réponses
Avatar
Sebastien de Vienne
J'avais cloturé le l'aide un peu trop tot.

Pour rappel :

Bonjour,

Je souhaite à partir de 2 tableaux provenant de 2 onglets, synthétiser des
données.

Les données évoluent chaque mois. J'ai besoin que l'opération se fasse en
automatique.

JB m'a proposé une soluce mais j'ai du mal à l'appliquer à mon fichier.

1 - Je ne retrouve pas dans sa macro la comparaison de la colonne mois avec
les onglets 1 et 2 avec la valeur indiquée dans l'onglet résultat
2 - Lorsque j'applique ta formule à mon fichier, je n'arrive pas à avoir la
liste qui m'interesse. Elle devrait apparaitre dans l'onglet Synthese C dès
la cellule A82.

En fait j'aimerais qu'Excel me recupere les valeurs OT des onglets Pointage,
Matériel et Location lorsque :
1 - Je choisis le mois qui m'interesse suivant la liste déroulante de
l'onglet Synthèse C / Cellule B5 et qu'il la compare à la colonne Mois
présente dans les onglets Pointage, Matériel et Location

2 - J'aimerais également qu'il me choisisse uniquement les valeurs OT dans
les 3 onglets qui ont dans la colonne C/I, la valeur I

Je te remets le fichier initial et le fichier sur lesque je travaille

Pour info, si on selectionnait la valeur : 08-02 - Février, on devrait
avoir les codes suivants :

Bras atelier : Existe dans onglets : Pontage - Matériel
Z 5011440i : Existe dans onglets : Pontage - Matériel
NA : Existe dans onglets : Matériel
Z 5011682 : Existe dans onglets : Pontage - Matériel
Z 5014027 : Existe dans onglets : Matériel
Z 5014787 : Existe dans onglets : Location
Z 5011680 : Existe dans onglets : Pontage - Location
Z 5012023 : Existe dans onglets : Pontage
Z 5011726i : Existe dans onglets : Pontage


Avez vous une soluce pour que le fichier soit moins lent pour le
rafraichissement ???

Merci encore de votre aide

Nota : Je vous transmets la proposition de JB : http://cjoint.com/?doq2oQIUq6

et mon fichier de prod version light : http://cjoint.com/?drmoXzjjXc


Merci beaucou de votre aide !!!

4 réponses

1 2
Avatar
Sebastien de Vienne
Merci Francois

Tu avais raisons, j'avais une vieille macro qui faisait chier. Par contre,
j'aimerai que les données n'aillents pas dans l'onglet Résultat mais dans
l'onglet Synthese C à partir de la cellule A83... Peux tu me dire comment
faire ????
Comme ca j'aurai tout dans le meme onglet !!!!

Merci t es trop fort !!
a+


Rebonjours Sebastien
Ce bug est indépendant de ma macro
Celà doit être une partie de l'outil qui t'a été proposé pour répondre
à ta demande
Elle ne sert à rien dans ma proposition
Tu peux soit faire annuler au message du Bug mon résultat s'en suivra
malgré tout soit supprimer cette partie pour ne plus avoir ce Bug


Fais des essais et dis moi !!!!



Avatar
francois.forcet
On 18 mar, 16:32, Sebastien de Vienne
wrote:
Merci Francois

Tu avais raisons, j'avais une vieille macro qui faisait chier. Par contre,
j'aimerai que les données n'aillents pas dans l'onglet Résultat mais d ans
l'onglet Synthese C à partir de la cellule A83... Peux tu me dire commen t
faire ????
Comme ca j'aurai tout dans le meme onglet !!!!

Merci t es trop fort !!
a+




Rebonjours Sebastien
Ce bug est indépendant de ma macro
Celà doit être une partie de l'outil qui t'a été proposé pour répondre
à ta demande
Elle ne sert à rien dans ma proposition
Tu peux soit faire annuler au message du Bug mon résultat s'en suivra
malgré tout soit supprimer cette partie pour ne plus avoir ce Bug

Fais des essais et dis moi !!!!- Masquer le texte des messages précé dents -


- Afficher le texte des messages précédents -


Rebonjours Sebastien

Sur ce lien ta dernière volonté
Testes et dis moi !!!!

http://www.cijoint.fr/cjlink.php?file=cj200803/cijFAbLrQc.xls


Avatar
Sebastien de Vienne
Merci Francois

T'es trop fort !!

Merci encore de ton aide !!!

Seb


On 18 mar, 16:32, Sebastien de Vienne
wrote:
Merci Francois

Tu avais raisons, j'avais une vieille macro qui faisait chier. Par contre,
j'aimerai que les données n'aillents pas dans l'onglet Résultat mais dans
l'onglet Synthese C à partir de la cellule A83... Peux tu me dire comment
faire ????
Comme ca j'aurai tout dans le meme onglet !!!!

Merci t es trop fort !!
a+




Rebonjours Sebastien
Ce bug est indépendant de ma macro
Celà doit être une partie de l'outil qui t'a été proposé pour répondre
à ta demande
Elle ne sert à rien dans ma proposition
Tu peux soit faire annuler au message du Bug mon résultat s'en suivra
malgré tout soit supprimer cette partie pour ne plus avoir ce Bug

Fais des essais et dis moi !!!!- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Rebonjours Sebastien

Sur ce lien ta dernière volonté
Testes et dis moi !!!!

http://www.cijoint.fr/cjlink.php?file=cj200803/cijFAbLrQc.xls





Avatar
francois.forcet
Rebonjours Sebastien
Heureux que celà te convienne

J'ai fait une dernière petite correction car une petite anomalie dans
un cas précis pouvait apparaitre
J'ai modifié la ligne :

Sheets("SYNTHESE C").Range("A83", "A" & Sheets("SYNTHESE
C").Range("A65535").End(xlUp).Row ).Clear

Ainsi :

Sheets("SYNTHESE C").Range("A83", "A" & Sheets("SYNTHESE
C").Range("A65535").End(xlUp).Row + 1).Clear

Qui opère un nettoyage avant la récupération de nouvelles données
cellules A83 et suivantes
Si par hasard toutes les cellules étaient vides y compris la cellule
A82 (effacement manuel)
Cette ligne d'instruction en l'état effacerait le contenu de la
cellule A76
Un peu génant d'où ma dernière modification

Pour nos lecteurs le code ci-aprés qui répond à ta demande :

'Préparation

Donnée = ""
Recherche = Sheets("SYNTHESE C").Range("B5")
Sheets("SYNTHESE C").Range("A83", "A" & Sheets("SYNTHESE
C").Range("A65535").End(xlUp).Row + 1).Clear
Sheets("SYNTHESE C").Range("A82") = "OT"

'Traitement Onglet POINTAGE
Sheets("POINTAGE").Activate
Range("A8").Activate
On Error Resume Next
Range("A8", "A" &
Range("A65535").End(xlUp).Row).Find(What:=Recherche,
After:=Range("A8"), LookIn:=xlValues _
, LookAt:=xlWhole, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
If ActiveCell.Address <> Range("A8").Address Then
Départ = ActiveCell.Address
If Donnée Like "*-" & Range("B" & ActiveCell.Row) & "-*" = False And
("C" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) =
Range("B" & ActiveCell.Row)
Donnée = Donnée & "-" & Range("B" & ActiveCell.Row) & "-"
End If
For i = 1 To Range("A65535").End(xlUp).Row
Range("A8", "A" &
Range("A65535").End(xlUp).Row).FindNext(After:¬tiveCell).Activate
If ActiveCell.Address <> Départ Then
If Donnée Like "*-" & Range("B" & ActiveCell.Row) & "-*" = False And
Range("C" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) =
Range("B" & ActiveCell.Row)
Donnée = Donnée & "-" & Range("B" & ActiveCell.Row) & "-"
End If
Else
Exit For
End If
Next
End If

'Traitement Onglet MATERIEL

Sheets("MATERIEL").Activate
Range("C3").Activate
On Error Resume Next
Range("C3", "C" &
Range("C65535").End(xlUp).Row).Find(What:=Recherche,
After:=Range("C3"), LookIn:=xlValues _
, LookAt:=xlWhole, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
If ActiveCell.Address <> Range("C3").Address Then
Départ = ActiveCell.Address
If Donnée Like "*-" & Range("G" & ActiveCell.Row) & "-*" = False And
("H" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) =
Range("G" & ActiveCell.Row)
Donnée = Donnée & "-" & Range("G" & ActiveCell.Row) & "-"
End If
For i = 1 To Range("C65535").End(xlUp).Row
Range("C3", "C" &
Range("C65535").End(xlUp).Row).FindNext(After:¬tiveCell).Activate
If ActiveCell.Address <> Départ Then
If Donnée Like "*-" & Range("G" & ActiveCell.Row) & "-*" = False And
Range("H" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) =
Range("G" & ActiveCell.Row)
Donnée = Donnée & "-" & Range("G" & ActiveCell.Row) & "-"
End If
Else
Exit For
End If
Next
End If

'Traitement Onglet LOCATION

Sheets("LOCATION").Activate
Range("C3").Activate
On Error Resume Next
Range("C3", "C" &
Range("C65535").End(xlUp).Row).Find(What:=Recherche,
After:=Range("C3"), LookIn:=xlValues _
, LookAt:=xlWhole, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
If ActiveCell.Address <> Range("C3").Address Then
Départ = ActiveCell.Address
If Donnée Like "*-" & Range("G" & ActiveCell.Row) & "-*" = False And
("H" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) =
Range("G" & ActiveCell.Row)
Donnée = Donnée & "-" & Range("G" & ActiveCell.Row) & "-"
End If
For i = 1 To Range("C65535").End(xlUp).Row
Range("C3", "C" &
Range("C65535").End(xlUp).Row).FindNext(After:¬tiveCell).Activate
If ActiveCell.Address <> Départ Then
If Donnée Like "*-" & Range("G" & ActiveCell.Row) & "-*" = False And
Range("H" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) =
Range("G" & ActiveCell.Row)
Donnée = Donnée & "-" & Range("G" & ActiveCell.Row) & "-"
End If
Else
Exit For
End If
Next
End If

Sheets("SYNTHESE C").Activate

Il serait bien pour eux que tu confirmes

A bientôt peut être
1 2