Exporter des résultats stockés dans une table ds un nouvel onglet
Bonjour à tous,
J’aimerais pouvoir exporter des résultats stockés dans une table et les afficher dans un nouvel onglet.
Explications :
J’ai un portefeuille Excel avec plusieurs opérations. Une opération a un Code Père (CP) et plusieurs opérations peuvent avoir le même code père.
Je stocke dans une table différentes données du portefeuille (table Data_WH (i,j,0)). Puis j'effectue une série de tests et stocke les résultats de ces tests dans la table (Data_WH (i,j,1)). Ces tests et leurs résultats sont dans le fichier « Module_TestCP.vb » ci-joint.
J'aimerais réaliser une fonction qui crée un nouvel onglet excel avec la liste des opérations, regroupées par Code Père, pour lesquelles les tests présentent des anomalies cad où les tests ne sont pas « OK ».
En d'autres termes, je voudrais afficher dans un nouvel onglet un tableau regroupant les Codes Pères, puis les années concernées avec à côté le résultats des tests de la table où ceux-ci ne sont pas "OK".
Je vous transmets le fichier « Module_TestCP.vb » comportant les tests et leurs résultats.dans la table Data_WH (i,j,1).
Merci pour votre aide.
Benoit
bonjour
explications embrouillées et pas de fichier xlsx joint, du coup tu n'as pas d'aide
fais un xlsx exemple, simplifié. Avec le résultat attendu.
Bonjour,
Ci joint un fichier excel avec le portefeuille en question et un onglet avec le résultat souhaité.
Dans le code "Module_TestCP" envoyé dans le message précédent je fais plusieurs tests pour savoir si les opérations répondent à certains critères.
Tests effectués :
- Code Père <= 5 minutes Perdues par voieJe stocke le résultats de ces tests dans la table Data_WH (9,9,1) (cf Module_TestCP).
Ce que je souhaite c'est extraire les résultats des tests de cette table et les exporter/afficher dans un nouvel onglet. Je ne souhaite afficher que les anomalies, cad les résultats des tests qui ne sont pas "OK"(cf Module_TestCP) à la manière de l'onglet "Résultat souhaité" dans l'excel joint.
Merci
bon,
pas clair "Data_WH (9,9,1) (cf Module_TestCP)"
ma suggestion : ajouter des colonn1;1;0)s dans l'onglet de saisie
nouvelle colonne 1 = test1 = SI(test1;1;0)
idem 2, 3 et 4
et dernière colonne = somme des 4
filtrer ou faire un TCD
ou bien des SPOMMEPROD()
tu connais ?
Merci de ta réponse jmd.
Je connais la fonction SOMMEPROD() mais ne vois pas comment l'utiliser dans mon cas.
En fait je récupère dans ma table Data_WH (i,j,0) les différents éléments de mon portefeuille et dans ma table Data_WH (i,j,1) je fais des tests et stocke les résultats de ces tests (par ex : "Coût trop faible", "Coût trop elevé", "Plusieurs Compte F", ""Chantier générant plus de 220 jours de chantier" ...). Je veux ensuite afficher les résultats des tests issus de cette table dans un nouvel onglet que j'appelle "Rapport Anomalies".
Je vous transmets le code que j'ai commencé à créer. Mais je ne sais pas comment associer chaque anomalie à la bonne année. Puis à associer l'anomalie au bon Code Père.
'Création d'un onglet Rapport Anomalies
Sub AjouterFeuilleDerriereUneAutreFeuille()
Sheets.Add.Name = "Rapport Anomalies" After:=Worksheets("Portefeuille") 'ajoute une Feuille "Rapport Anomalies" derrière la Feuille "Portefeuille"
End Sub
'Définition tailles des colonnes
Worksheets("Rapport Anomalies").Columns("A:A").ColumnWidth = 15
Worksheets("Rapport Anomalies").Columns("B:B").ColumnWidth = 15
Worksheets("Rapport Anomalies").Columns("C:C").ColumnWidth = 30
'Fonction qui permet de restituer les résultats des anomalies dans un nouvel onglet
'A faire : Associer avec CP et année : 2 boucles à faire ?
Function Restit(Data_WH)
Dim Data_WH(9,9,1) as variant
'Balayage de la table
for i = 1 to 9
for j= 1 to 9
If Data_WH(i,j,1)<> "OK" Then 'On ne traite que les anomalies
If j=0 Then 'Restitution des années dans la 2ème clonne. Les anomalies sont dans la 3ème colonne de l'onglet Rapport Anomalie
Worksheets("Rapport Anomalie").Cells(i1, 2).Value = Data_WH(i,1,0)
Else If j=1 Then 'Anomalie colonne des euros
Worksheets("Rapport Anomalie").Cells(i1, 3).Value = Data_WH(i,1,1) & " - Coût : " & Data_WH(i,1,0) & "€"
Else If j=2 Then 'Anomalie colonne des comptes C6
Worksheets("Rapport Anomalie").Cells(i1, 3).Value = Data_WH(i,2,1) & " - Comptes F :" & Data_WH(i,2,0)
Else If j=3 Then 'Anomalie colonne FEM
Worksheets("Rapport Anomalie").Cells(i1, 3).Value = Data_WH(i,3,1) & " - FEM associées :" & Data_WH(i,3,0)
Else If j=4 Then 'Anomalie Nb de jour de chantier
Worksheets("Rapport Anomalie").Cells(i1, 3).Value = Data_WH(i,4,1) & " - Chantier de :" & Data_WH(i,4,0) & " jours"
Else If j=5 Then 'Anomalie Minutes perdues Voie Unique
Worksheets("Rapport Anomalie").Cells(i1, 3).Value = Data_WH(i,5,1) & " - " & Data_WH(i,5,0) & " minutes perdues"
Else If j=6 Then 'Anomalie Minutes perdues Voie 1
Worksheets("Rapport Anomalie").Cells(i1, 3).Value = Data_WH(i,6,1) & " - " & Data_WH(i,6,0) & " minutes perdues"
Else If j=7 Then 'Anomalie Minutes perdues Voie 2
Worksheets("Rapport Anomalie").Cells(i1, 3).Value = Data_WH(i,7,1) & " - " & Data_WH(i,7,0) & " minutes perdues"
Else If j=8 Then 'Anomalie Minutes perdues Voie Autres
Worksheets("Rapport Anomalie").Cells(i1, 3).Value = Data_WH(i,8,1) & " - " & Data_WH(i,8,0) & " minutes perdues"
End if
Next j
Next i
End re
plutôt que ton code, joins un fichier exemple simple avec des mots compréhensibles
et un exemple du résultat attendu.