Bonjour à tous,
Cela fait bien longtemps que je n'ai plus écrit de code vba.
Aujourd'hui, je me retrouve bloqué par un point qui vous paraitra certainement facile à résoudre.
Mais je n'ai pas de solution à celui-ci.
Je joins un fichier excel simplifié car il y énormément de macros derrière ce fichier.
Voici mon problème:
Dans la case I1, j’ai la référence du prétraitement de mes données.
Dans les colonnes F, j'ai les références de mes contrôles
Dans la colonne G se sont les résultats machine.
Dans la colonne I2 et suivantes : information traitement données
Le tableau A14/ E17 sont mes valeurs de temoins avec le nom de la matrice le nom de chaque contrôle la valeur cible et les limites à ne pas franchir.
En vba est-il possible de vérifier ceci:
1) En tenant compte de I1, je vais vérifier pour chaque contrôle que la valeur machine est bien comprises dans les bornes défini dans le tableau des témoins sélectionné.
Si tel n'est pas le cas, inscrire dans la colonne I "hors limite" - contrôle A dans mon exemple
2) Pour chaque paire de témoins de contrôle vérifier que les valeurs ne dépassent pas un écart de 0.3 - contrôle C dans mon exemple
3) Vérifier que tous les contrôles sont par 2 et non individuel - contrôle D dans mon exemple.
Merci à vous pour ce coup de main car là je bloque totalement.
Voici le bout de code pour la vérification des contrôles par rapport à la valeur cible mais cela ne fonctionne pas car la boucle me sort une erreur "indice n'appartenant pas à la sélection"
De plus, si la valeur est hors limite, cela ne s'inscrit pas dans la colonne I
Cela fait bien longtemps que je n'ai plus écrit de code vba.
Aujourd'hui, je me retrouve bloqué par un point qui vous paraitra certainement facile à résoudre.
Mais je n'ai pas de solution à celui-ci.
Je joins un fichier excel simplifié car il y énormément de macros derrière ce fichier.
Voici mon problème:
Dans la case I1, j’ai la référence du prétraitement de mes données.
Dans les colonnes F, j'ai les références de mes contrôles
Dans la colonne G se sont les résultats machine.
Dans la colonne I2 et suivantes : information traitement données
Le tableau A14/ E17 sont mes valeurs de temoins avec le nom de la matrice le nom de chaque contrôle la valeur cible et les limites à ne pas franchir.
En vba est-il possible de vérifier ceci:
1) En tenant compte de I1, je vais vérifier pour chaque contrôle que la valeur machine est bien comprises dans les bornes défini dans le tableau des témoins sélectionné.
Si tel n'est pas le cas, inscrire dans la colonne I "hors limite" - contrôle A dans mon exemple
2) Pour chaque paire de témoins de contrôle vérifier que les valeurs ne dépassent pas un écart de 0.3 - contrôle C dans mon exemple
3) Vérifier que tous les contrôles sont par 2 et non individuel - contrôle D dans mon exemple.
Merci à vous pour ce coup de main car là je bloque totalement.
Voici le bout de code pour la vérification des contrôles par rapport à la valeur cible mais cela ne fonctionne pas car la boucle me sort une erreur "indice n'appartenant pas à la sélection"
De plus, si la valeur est hors limite, cela ne s'inscrit pas dans la colonne I
VB:
Option Explicit
Dim tabTemoin As Variant
Dim tabControleSerie As Variant
Dim n As Integer
Dim m As Integer
Dim typeControle As String
Dim dernLigneSerie As Long
Dim dernLigneTemoin As Long
Sub VerifValCible()
'Type de serie à traiter
typeControle = Sheets("Feuil1").Range("I1")
'definition tableau SERIE
dernLigneSerie = Range("F" & Rows.Count).End(xlUp).Row
tabControleSerie = Sheets("Feuil1").Range("F2:I" & dernLigneSerie)
'boucle de verification
Select Case typeControle
'C13
Case "C13"
'definition tableau temoin
dernLigneTemoin = Range("A" & Rows.Count).End(xlUp).Row
tabTemoin = Sheets("Feuil1").Range("A14:E" & dernLigneTemoin)
'boucle verification des temoins serie avec valeur temoins
For m = LBound(tabControleSerie, 1) To UBound(tabControleSerie, 1)
For n = LBound(tabTemoin, 1) To UBound(tabTemoin, 1)
If tabControleSerie(n, 1) = tabTemoin(m, 2) Then
If Abs(tabTemoin(m, 4)) < Abs(tabControleSerie(n, 2)) < Abs(tabTemoin(m, 3)) Then
tabControleSerie(n, 4) = "hors limite"
End If
End If
Next n
Next m
End Select
End Sub
Pièces jointes
Dernière édition: