Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro tri/filtre sélectif

9 réponses
Avatar
Shewy_FR_34
Bonjour =E0 tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de d=E9finitions de m=E9thodes :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

=C0 partir de l=E0, je dois rechercher dans une feuille de donn=E9es la v=
aleur=20
(par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un ni=E8me cas ... dans ce cas ce serait 4 "OU"

Les donn=E9es :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requ=EAte ici doit s=E9lectionner AZVN V+
R=E9cup=E9rer le taux et le code.
(=E7a c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ ->=20
M=E9thode ?
et l=E0 je coince ... Comment faire pour remplir un tableau de=20
correspondance ?

En fonction de la m=E9thode, je viens coller les valeurs dans un 3e ongle=
t=20
au niveau de la colonne pour la m=E9thode A ...

Je ne sais pas si j'ai =E9t=E9 clair ....

Merci d'avance dans tous les cas !

9 réponses

Avatar
Daniel.C
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur exemple en
spécifiant où tu veux mettre les résultats. Efface les éventuelles
données confidentielles et mets le classseur sur www.cijoint.fr. Poste
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de méthodes :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de données la valeur (par
exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4 "OU"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ -> Méthode
?
et là je coince ... Comment faire pour remplir un tableau de correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3e onglet au
niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !
Avatar
Shewy_FR_34
re ...
Je ne connaissais pas "ci joint"

Voici donc le fchier en question :
http://www.cijoint.fr/cjlink.php?file=cj201005/cij9HBFbHR.xls

Les données brut à traiter dans l'onglet : brut-tx-travail-abg
La feuille qui doit recevoir les informations : tx-structure-abg
Enfin la zone qui permets de faire les liaisons : MACRO
'DONNEES_TRAITEMENT_ABG'





Le 07/05/2010 10:25, Daniel.C a écrit :
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur exemple en
spécifiant où tu veux mettre les résultats. Efface les éventuel les
données confidentielles et mets le classseur sur www.cijoint.fr. Post e
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de méthodes :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de données l a
valeur (par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4 "O U"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ ->
Méthode ?
et là je coince ... Comment faire pour remplir un tableau de
correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3e
onglet au niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !




Avatar
Daniel.C
Est-ce que tu peux donner un exemple; Ou prends-tu la méthode à
traiter, et quel résultat attends-tu ?
Daniel

re ...
Je ne connaissais pas "ci joint"

Voici donc le fchier en question :
http://www.cijoint.fr/cjlink.php?file=cj201005/cij9HBFbHR.xls

Les données brut à traiter dans l'onglet : brut-tx-travail-abg
La feuille qui doit recevoir les informations : tx-structure-abg
Enfin la zone qui permets de faire les liaisons : MACRO
'DONNEES_TRAITEMENT_ABG'





Le 07/05/2010 10:25, Daniel.C a écrit :
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur exemple en
spécifiant où tu veux mettre les résultats. Efface les éventuelles
données confidentielles et mets le classseur sur www.cijoint.fr. Poste
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de méthodes :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de données la
valeur (par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4 "OU"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ ->
Méthode ?
et là je coince ... Comment faire pour remplir un tableau de
correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3e
onglet au niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !
Avatar
Shewy_FR_34
Par exemple dans l'onglet brut-tx-travail-abg
J'ai un premier filtre sur Type Elément, où je ne prend que "Angle"
je fais un second filtre sur "Str. No." (par exemple prenons le n°16)
On obtiens : 19 lignes.
Ma macro continue. Je Sélectionne la colonne D puis je vais dans MACRO
au niveau de F5 rechercher le premier critère à tester.

Je retourne alors "AZVN V+ Hyp1 TOWER,S NA+"
Je reviens dans l'onglet "brut-tx-travail-abg" et je recherche ce critè re.

Si je le trouve alors je copie pour la ligne où je suis le taux
Je recherche ensuite l'élément suivant qui se trouve dans MACRO aussi
juste en dessous du premier

Je fais de meme, et je compare les valeurs. Je ne prend que la plus
grand des deux et viens la coller dans l'onglet "tx-structure-abg"

Dans cet Onglet il me faut savoir où coller la valeur.
(Soit dans la colonne C, soit dans E, soit dans G etc)
JE le sais encore une fois grace à macro. j'ai devant le critère la
méthode. (Exemple pour AZVN V+ Hyp1 TOWER,S NA+ la méthode est A )
je dois donc copié la valeur dans la colonne C

là où je coince en fait c'est sur ce dernier morceau.

Si tu lances la macro, tu verras que dans un premier temps je vais
rechercher tous les n° de supports que je colle dans les onglets.

Puis quand on lance le traitement, il prend le prmier numéro et va
rechercher la valeur.

Le bug se trouve à ce niveau. Si le critère n'existe pas ou si ce n'e st
pas le premier, j'ai une erreur ...

Je ne sais pas comment faire pour tester de façon "pratique"
"AZVN V+ Hyp1 TOWER,S NA+" -> renvoi la méthode A sans devoir repassr e n
revue à chaque fois l'onglet MACRO ....

pas simple mon histoire ! je m'en rend bien compte ...

Au début j'avais mis les valeurs à tester en dur.
(c'est les commentaires de Mod_traitement.traitement1_tx_structure_abg() )
Tu as :
'lbl4_1 = test(num_Support_actu, Label4.Caption)
'lbl4_2 = test(num_Support_actu, Label26.Caption)
'lbl4_v = valtri(lbl4_1, lbl4_2,
Worksheets("MACRO").Range("T1_COMPARE_METHOD").Value)

ce qui me donne 2 tablo que je compare avec valtri pour n'en garder
qu'un. puis je viens coller les valeurs
'Range(ref_cellule).Select
'ActiveCell.Offset(0, 2).Value = lbl4_v(0)
'ActiveCell.Offset(0, 3).Value = lbl4_v(1)
'ActiveCell.Offset(0, 1).Value = lbl4_1(2)
'ctrl_t1_label4 = ctrl_t1_label4 + 1

Cette méthode fonctionne à condition de tjrs avoir ttes les condition s.
Or des fois je peux avoir AZVN (support n° 16 par exemple) et des fois
AHPV (support n°43 par exemple)...

peut être que je m'y suis mal pris dés le début ....

Guillaume




Le 07/05/2010 13:30, Daniel.C a écrit :
Est-ce que tu peux donner un exemple; Ou prends-tu la méthode à tra iter,
et quel résultat attends-tu ?
Daniel

re ...
Je ne connaissais pas "ci joint"

Voici donc le fchier en question :
http://www.cijoint.fr/cjlink.php?file=cj201005/cij9HBFbHR.xls

Les données brut à traiter dans l'onglet : brut-tx-travail-abg
La feuille qui doit recevoir les informations : tx-structure-abg
Enfin la zone qui permets de faire les liaisons : MACRO
'DONNEES_TRAITEMENT_ABG'





Le 07/05/2010 10:25, Daniel.C a écrit :
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur exempl e en
spécifiant où tu veux mettre les résultats. Efface les éventu elles
données confidentielles et mets le classseur sur www.cijoint.fr. Po ste
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de méthodes :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de données la
valeur (par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4 "OU"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ ->
Méthode ?
et là je coince ... Comment faire pour remplir un tableau de
correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3e
onglet au niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !








Avatar
Shewy_FR_34
Une idée au passage, je viens de faire cette petite fonction qui me
retournerait un simple tableau avec les valeurs à rechercher :

function findMETHODE(METHODE)

Sheets("MACRO").Select
Range("DONNEES_TRAITEMENT_ABG").Select
ActiveCell.Offset(1, 1).Select

Dim i As Integer
Dim valeuratest()
'recherche des clauses A -> METHODE
i = 0
ReDim Preserve valeuratest(i)
valeuratest(i) = METHODE
While ActiveCell.Offset(1, 0).Value <> ""

ActiveCell.Offset(1, 0).Select
If ActiveCell.Offset(0, -1) = METHODE Then
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = ActiveCell.Value
If ActiveCell.Offset(1, 0).Value <> "" Then
ActiveCell.Offset(1, 0).Select
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = ActiveCell.Value
Else
ActiveCell.Offset(1, 0).Select
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = "ERROR"
End If
End If
Wend

End function





Le 07/05/2010 13:56, Shewy_FR_34 a écrit :
Par exemple dans l'onglet brut-tx-travail-abg
J'ai un premier filtre sur Type Elément, où je ne prend que "Angle"
je fais un second filtre sur "Str. No." (par exemple prenons le n°16)
On obtiens : 19 lignes.
Ma macro continue. Je Sélectionne la colonne D puis je vais dans MACR O
au niveau de F5 rechercher le premier critère à tester.

Je retourne alors "AZVN V+ Hyp1 TOWER,S NA+"
Je reviens dans l'onglet "brut-tx-travail-abg" et je recherche ce critè re.

Si je le trouve alors je copie pour la ligne où je suis le taux
Je recherche ensuite l'élément suivant qui se trouve dans MACRO aus si
juste en dessous du premier

Je fais de meme, et je compare les valeurs. Je ne prend que la plus
grand des deux et viens la coller dans l'onglet "tx-structure-abg"

Dans cet Onglet il me faut savoir où coller la valeur.
(Soit dans la colonne C, soit dans E, soit dans G etc)
JE le sais encore une fois grace à macro. j'ai devant le critère la
méthode. (Exemple pour AZVN V+ Hyp1 TOWER,S NA+ la méthode est A )
je dois donc copié la valeur dans la colonne C

là où je coince en fait c'est sur ce dernier morceau.

Si tu lances la macro, tu verras que dans un premier temps je vais
rechercher tous les n° de supports que je colle dans les onglets.

Puis quand on lance le traitement, il prend le prmier numéro et va
rechercher la valeur.

Le bug se trouve à ce niveau. Si le critère n'existe pas ou si ce n 'est
pas le premier, j'ai une erreur ...

Je ne sais pas comment faire pour tester de façon "pratique"
"AZVN V+ Hyp1 TOWER,S NA+" -> renvoi la méthode A sans devoir repassr en
revue à chaque fois l'onglet MACRO ....

pas simple mon histoire ! je m'en rend bien compte ...

Au début j'avais mis les valeurs à tester en dur.
(c'est les commentaires de Mod_traitement.traitement1_tx_structure_abg( ) )
Tu as :
'lbl4_1 = test(num_Support_actu, Label4.Caption)
'lbl4_2 = test(num_Support_actu, Label26.Caption)
'lbl4_v = valtri(lbl4_1, lbl4_2,
Worksheets("MACRO").Range("T1_COMPARE_METHOD").Value)

ce qui me donne 2 tablo que je compare avec valtri pour n'en garder
qu'un. puis je viens coller les valeurs
'Range(ref_cellule).Select
'ActiveCell.Offset(0, 2).Value = lbl4_v(0)
'ActiveCell.Offset(0, 3).Value = lbl4_v(1)
'ActiveCell.Offset(0, 1).Value = lbl4_1(2)
'ctrl_t1_label4 = ctrl_t1_label4 + 1

Cette méthode fonctionne à condition de tjrs avoir ttes les conditi ons.
Or des fois je peux avoir AZVN (support n° 16 par exemple) et des foi s
AHPV (support n°43 par exemple)...

peut être que je m'y suis mal pris dés le début ....

Guillaume




Le 07/05/2010 13:30, Daniel.C a écrit :
Est-ce que tu peux donner un exemple; Ou prends-tu la méthode à tr aiter,
et quel résultat attends-tu ?
Daniel

re ...
Je ne connaissais pas "ci joint"

Voici donc le fchier en question :
http://www.cijoint.fr/cjlink.php?file=cj201005/cij9HBFbHR.xls

Les données brut à traiter dans l'onglet : brut-tx-travail-abg
La feuille qui doit recevoir les informations : tx-structure-abg
Enfin la zone qui permets de faire les liaisons : MACRO
'DONNEES_TRAITEMENT_ABG'





Le 07/05/2010 10:25, Daniel.C a écrit :
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur exemp le en
spécifiant où tu veux mettre les résultats. Efface les évent uelles
données confidentielles et mets le classseur sur www.cijoint.fr. P oste
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de méthode s :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de donnée s la
valeur (par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4 "OU"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ - >
Méthode ?
et là je coince ... Comment faire pour remplir un tableau de
correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3e
onglet au niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !












Avatar
Daniel.C
C'est ce que tu cherchais ?
Daniel

Une idée au passage, je viens de faire cette petite fonction qui me
retournerait un simple tableau avec les valeurs à rechercher :

function findMETHODE(METHODE)

Sheets("MACRO").Select
Range("DONNEES_TRAITEMENT_ABG").Select
ActiveCell.Offset(1, 1).Select

Dim i As Integer
Dim valeuratest()
'recherche des clauses A -> METHODE
i = 0
ReDim Preserve valeuratest(i)
valeuratest(i) = METHODE
While ActiveCell.Offset(1, 0).Value <> ""

ActiveCell.Offset(1, 0).Select
If ActiveCell.Offset(0, -1) = METHODE Then
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = ActiveCell.Value
If ActiveCell.Offset(1, 0).Value <> "" Then
ActiveCell.Offset(1, 0).Select
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = ActiveCell.Value
Else
ActiveCell.Offset(1, 0).Select
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = "ERROR"
End If
End If
Wend

End function





Le 07/05/2010 13:56, Shewy_FR_34 a écrit :
Par exemple dans l'onglet brut-tx-travail-abg
J'ai un premier filtre sur Type Elément, où je ne prend que "Angle"
je fais un second filtre sur "Str. No." (par exemple prenons le n°16)
On obtiens : 19 lignes.
Ma macro continue. Je Sélectionne la colonne D puis je vais dans MACRO
au niveau de F5 rechercher le premier critère à tester.

Je retourne alors "AZVN V+ Hyp1 TOWER,S NA+"
Je reviens dans l'onglet "brut-tx-travail-abg" et je recherche ce critère.

Si je le trouve alors je copie pour la ligne où je suis le taux
Je recherche ensuite l'élément suivant qui se trouve dans MACRO aussi
juste en dessous du premier

Je fais de meme, et je compare les valeurs. Je ne prend que la plus
grand des deux et viens la coller dans l'onglet "tx-structure-abg"

Dans cet Onglet il me faut savoir où coller la valeur.
(Soit dans la colonne C, soit dans E, soit dans G etc)
JE le sais encore une fois grace à macro. j'ai devant le critère la
méthode. (Exemple pour AZVN V+ Hyp1 TOWER,S NA+ la méthode est A )
je dois donc copié la valeur dans la colonne C

là où je coince en fait c'est sur ce dernier morceau.

Si tu lances la macro, tu verras que dans un premier temps je vais
rechercher tous les n° de supports que je colle dans les onglets.

Puis quand on lance le traitement, il prend le prmier numéro et va
rechercher la valeur.

Le bug se trouve à ce niveau. Si le critère n'existe pas ou si ce n'est
pas le premier, j'ai une erreur ...

Je ne sais pas comment faire pour tester de façon "pratique"
"AZVN V+ Hyp1 TOWER,S NA+" -> renvoi la méthode A sans devoir repassr en
revue à chaque fois l'onglet MACRO ....

pas simple mon histoire ! je m'en rend bien compte ...

Au début j'avais mis les valeurs à tester en dur.
(c'est les commentaires de Mod_traitement.traitement1_tx_structure_abg() )
Tu as :
'lbl4_1 = test(num_Support_actu, Label4.Caption)
'lbl4_2 = test(num_Support_actu, Label26.Caption)
'lbl4_v = valtri(lbl4_1, lbl4_2,
Worksheets("MACRO").Range("T1_COMPARE_METHOD").Value)

ce qui me donne 2 tablo que je compare avec valtri pour n'en garder
qu'un. puis je viens coller les valeurs
'Range(ref_cellule).Select
'ActiveCell.Offset(0, 2).Value = lbl4_v(0)
'ActiveCell.Offset(0, 3).Value = lbl4_v(1)
'ActiveCell.Offset(0, 1).Value = lbl4_1(2)
'ctrl_t1_label4 = ctrl_t1_label4 + 1

Cette méthode fonctionne à condition de tjrs avoir ttes les conditions.
Or des fois je peux avoir AZVN (support n° 16 par exemple) et des fois
AHPV (support n°43 par exemple)...

peut être que je m'y suis mal pris dés le début ....

Guillaume




Le 07/05/2010 13:30, Daniel.C a écrit :
Est-ce que tu peux donner un exemple; Ou prends-tu la méthode à traiter,
et quel résultat attends-tu ?
Daniel

re ...
Je ne connaissais pas "ci joint"

Voici donc le fchier en question :
http://www.cijoint.fr/cjlink.php?file=cj201005/cij9HBFbHR.xls

Les données brut à traiter dans l'onglet : brut-tx-travail-abg
La feuille qui doit recevoir les informations : tx-structure-abg
Enfin la zone qui permets de faire les liaisons : MACRO
'DONNEES_TRAITEMENT_ABG'





Le 07/05/2010 10:25, Daniel.C a écrit :
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur exemple en
spécifiant où tu veux mettre les résultats. Efface les éventuelles
données confidentielles et mets le classseur sur www.cijoint.fr. Poste
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de méthodes :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de données la
valeur (par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4 "OU"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ ->
Méthode ?
et là je coince ... Comment faire pour remplir un tableau de
correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3e
onglet au niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !
Avatar
Shewy_FR_34
c'est un début, mais ... mon find me renvoi tjrs une erreur quand il
trouve pas la valeur...



Le 07/05/2010 14:38, Daniel.C a écrit :
C'est ce que tu cherchais ?
Daniel

Une idée au passage, je viens de faire cette petite fonction qui me
retournerait un simple tableau avec les valeurs à rechercher :

function findMETHODE(METHODE)

Sheets("MACRO").Select
Range("DONNEES_TRAITEMENT_ABG").Select
ActiveCell.Offset(1, 1).Select

Dim i As Integer
Dim valeuratest()
'recherche des clauses A -> METHODE
i = 0
ReDim Preserve valeuratest(i)
valeuratest(i) = METHODE
While ActiveCell.Offset(1, 0).Value <> ""

ActiveCell.Offset(1, 0).Select
If ActiveCell.Offset(0, -1) = METHODE Then
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = ActiveCell.Value
If ActiveCell.Offset(1, 0).Value <> "" Then
ActiveCell.Offset(1, 0).Select
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = ActiveCell.Value
Else
ActiveCell.Offset(1, 0).Select
i = i + 1
ReDim Preserve valeuratest(i)
valeuratest(i) = "ERROR"
End If
End If
Wend

End function





Le 07/05/2010 13:56, Shewy_FR_34 a écrit :
Par exemple dans l'onglet brut-tx-travail-abg
J'ai un premier filtre sur Type Elément, où je ne prend que "Angl e"
je fais un second filtre sur "Str. No." (par exemple prenons le n°1 6)
On obtiens : 19 lignes.
Ma macro continue. Je Sélectionne la colonne D puis je vais dans MA CRO
au niveau de F5 rechercher le premier critère à tester.

Je retourne alors "AZVN V+ Hyp1 TOWER,S NA+"
Je reviens dans l'onglet "brut-tx-travail-abg" et je recherche ce
critère.

Si je le trouve alors je copie pour la ligne où je suis le taux
Je recherche ensuite l'élément suivant qui se trouve dans MACRO a ussi
juste en dessous du premier

Je fais de meme, et je compare les valeurs. Je ne prend que la plus
grand des deux et viens la coller dans l'onglet "tx-structure-abg"

Dans cet Onglet il me faut savoir où coller la valeur.
(Soit dans la colonne C, soit dans E, soit dans G etc)
JE le sais encore une fois grace à macro. j'ai devant le critère la
méthode. (Exemple pour AZVN V+ Hyp1 TOWER,S NA+ la méthode est A )
je dois donc copié la valeur dans la colonne C

là où je coince en fait c'est sur ce dernier morceau.

Si tu lances la macro, tu verras que dans un premier temps je vais
rechercher tous les n° de supports que je colle dans les onglets.

Puis quand on lance le traitement, il prend le prmier numéro et va
rechercher la valeur.

Le bug se trouve à ce niveau. Si le critère n'existe pas ou si ce n'est
pas le premier, j'ai une erreur ...

Je ne sais pas comment faire pour tester de façon "pratique"
"AZVN V+ Hyp1 TOWER,S NA+" -> renvoi la méthode A sans devoir repas sr en
revue à chaque fois l'onglet MACRO ....

pas simple mon histoire ! je m'en rend bien compte ...

Au début j'avais mis les valeurs à tester en dur.
(c'est les commentaires de
Mod_traitement.traitement1_tx_structure_abg() )
Tu as :
'lbl4_1 = test(num_Support_actu, Label4.Caption)
'lbl4_2 = test(num_Support_actu, Label26.Caption)
'lbl4_v = valtri(lbl4_1, lbl4_2,
Worksheets("MACRO").Range("T1_COMPARE_METHOD").Value)

ce qui me donne 2 tablo que je compare avec valtri pour n'en garder
qu'un. puis je viens coller les valeurs
'Range(ref_cellule).Select
'ActiveCell.Offset(0, 2).Value = lbl4_v(0)
'ActiveCell.Offset(0, 3).Value = lbl4_v(1)
'ActiveCell.Offset(0, 1).Value = lbl4_1(2)
'ctrl_t1_label4 = ctrl_t1_label4 + 1

Cette méthode fonctionne à condition de tjrs avoir ttes les condi tions.
Or des fois je peux avoir AZVN (support n° 16 par exemple) et des f ois
AHPV (support n°43 par exemple)...

peut être que je m'y suis mal pris dés le début ....

Guillaume




Le 07/05/2010 13:30, Daniel.C a écrit :
Est-ce que tu peux donner un exemple; Ou prends-tu la méthode à
traiter,
et quel résultat attends-tu ?
Daniel

re ...
Je ne connaissais pas "ci joint"

Voici donc le fchier en question :
http://www.cijoint.fr/cjlink.php?file=cj201005/cij9HBFbHR.xls

Les données brut à traiter dans l'onglet : brut-tx-travail-abg
La feuille qui doit recevoir les informations : tx-structure-abg
Enfin la zone qui permets de faire les liaisons : MACRO
'DONNEES_TRAITEMENT_ABG'





Le 07/05/2010 10:25, Daniel.C a écrit :
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur
exemple en
spécifiant où tu veux mettre les résultats. Efface les éve ntuelles
données confidentielles et mets le classseur sur www.cijoint.fr.
Poste
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de métho des :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de donné es la
valeur (par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4
"OU"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ ->
Méthode ?
et là je coince ... Comment faire pour remplir un tableau de
correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3e
onglet au niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !














Avatar
Daniel.C
Quel est le nom de ta macro ?
Daniel

Par exemple dans l'onglet brut-tx-travail-abg
J'ai un premier filtre sur Type Elément, où je ne prend que "Angle"
je fais un second filtre sur "Str. No." (par exemple prenons le n°16)
On obtiens : 19 lignes.
Ma macro continue. Je Sélectionne la colonne D puis je vais dans MACRO au
niveau de F5 rechercher le premier critère à tester.

Je retourne alors "AZVN V+ Hyp1 TOWER,S NA+"
Je reviens dans l'onglet "brut-tx-travail-abg" et je recherche ce critère.

Si je le trouve alors je copie pour la ligne où je suis le taux
Je recherche ensuite l'élément suivant qui se trouve dans MACRO aussi juste
en dessous du premier

Je fais de meme, et je compare les valeurs. Je ne prend que la plus grand des
deux et viens la coller dans l'onglet "tx-structure-abg"

Dans cet Onglet il me faut savoir où coller la valeur.
(Soit dans la colonne C, soit dans E, soit dans G etc)
JE le sais encore une fois grace à macro. j'ai devant le critère la méthode.
(Exemple pour AZVN V+ Hyp1 TOWER,S NA+ la méthode est A )
je dois donc copié la valeur dans la colonne C

là où je coince en fait c'est sur ce dernier morceau.

Si tu lances la macro, tu verras que dans un premier temps je vais rechercher
tous les n° de supports que je colle dans les onglets.

Puis quand on lance le traitement, il prend le prmier numéro et va rechercher
la valeur.

Le bug se trouve à ce niveau. Si le critère n'existe pas ou si ce n'est pas
le premier, j'ai une erreur ...

Je ne sais pas comment faire pour tester de façon "pratique"
"AZVN V+ Hyp1 TOWER,S NA+" -> renvoi la méthode A sans devoir repassr en
revue à chaque fois l'onglet MACRO ....

pas simple mon histoire ! je m'en rend bien compte ...

Au début j'avais mis les valeurs à tester en dur.
(c'est les commentaires de Mod_traitement.traitement1_tx_structure_abg() )
Tu as :
'lbl4_1 = test(num_Support_actu, Label4.Caption)
'lbl4_2 = test(num_Support_actu, Label26.Caption)
'lbl4_v = valtri(lbl4_1, lbl4_2,
Worksheets("MACRO").Range("T1_COMPARE_METHOD").Value)

ce qui me donne 2 tablo que je compare avec valtri pour n'en garder qu'un.
puis je viens coller les valeurs
'Range(ref_cellule).Select
'ActiveCell.Offset(0, 2).Value = lbl4_v(0)
'ActiveCell.Offset(0, 3).Value = lbl4_v(1)
'ActiveCell.Offset(0, 1).Value = lbl4_1(2)
'ctrl_t1_label4 = ctrl_t1_label4 + 1

Cette méthode fonctionne à condition de tjrs avoir ttes les conditions. Or
des fois je peux avoir AZVN (support n° 16 par exemple) et des fois AHPV
(support n°43 par exemple)...

peut être que je m'y suis mal pris dés le début ....

Guillaume




Le 07/05/2010 13:30, Daniel.C a écrit :
Est-ce que tu peux donner un exemple; Ou prends-tu la méthode à traiter,
et quel résultat attends-tu ?
Daniel

re ...
Je ne connaissais pas "ci joint"

Voici donc le fchier en question :
http://www.cijoint.fr/cjlink.php?file=cj201005/cij9HBFbHR.xls

Les données brut à traiter dans l'onglet : brut-tx-travail-abg
La feuille qui doit recevoir les informations : tx-structure-abg
Enfin la zone qui permets de faire les liaisons : MACRO
'DONNEES_TRAITEMENT_ABG'





Le 07/05/2010 10:25, Daniel.C a écrit :
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur exemple en
spécifiant où tu veux mettre les résultats. Efface les éventuelles
données confidentielles et mets le classseur sur www.cijoint.fr. Poste
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de méthodes :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de données la
valeur (par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4 "OU"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ ->
Méthode ?
et là je coince ... Comment faire pour remplir un tableau de
correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3e
onglet au niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !
Avatar
Shewy_FR_34
Et bien voilà ! solution débloquée !!

A partir de la fonction que je me suis trouvé, et simplement ces
quelques lignes tout fonctionne à merveille !

Sheets("brut-tx-travail-abg").Select
i = 0
On Error GoTo erreur:
Do
i = i + 1
lbl4_1 = test(num_Support_actu, METHODE(i))
If lbl4_1(0) > 0 Then
i = i + 1
lbl4_2 = test(num_Support_actu, METHODE(i))
End If
Loop Until lbl4_1(0) > 0

ouf !

Merci de ton aide !

Gui.



Le 07/05/2010 15:46, Daniel.C a écrit :
Quel est le nom de ta macro ?
Daniel

Par exemple dans l'onglet brut-tx-travail-abg
J'ai un premier filtre sur Type Elément, où je ne prend que "Angle "
je fais un second filtre sur "Str. No." (par exemple prenons le n°16 )
On obtiens : 19 lignes.
Ma macro continue. Je Sélectionne la colonne D puis je vais dans MAC RO
au niveau de F5 rechercher le premier critère à tester.

Je retourne alors "AZVN V+ Hyp1 TOWER,S NA+"
Je reviens dans l'onglet "brut-tx-travail-abg" et je recherche ce
critère.

Si je le trouve alors je copie pour la ligne où je suis le taux
Je recherche ensuite l'élément suivant qui se trouve dans MACRO au ssi
juste en dessous du premier

Je fais de meme, et je compare les valeurs. Je ne prend que la plus
grand des deux et viens la coller dans l'onglet "tx-structure-abg"

Dans cet Onglet il me faut savoir où coller la valeur.
(Soit dans la colonne C, soit dans E, soit dans G etc)
JE le sais encore une fois grace à macro. j'ai devant le critère l a
méthode. (Exemple pour AZVN V+ Hyp1 TOWER,S NA+ la méthode est A )
je dois donc copié la valeur dans la colonne C

là où je coince en fait c'est sur ce dernier morceau.

Si tu lances la macro, tu verras que dans un premier temps je vais
rechercher tous les n° de supports que je colle dans les onglets.

Puis quand on lance le traitement, il prend le prmier numéro et va
rechercher la valeur.

Le bug se trouve à ce niveau. Si le critère n'existe pas ou si ce
n'est pas le premier, j'ai une erreur ...

Je ne sais pas comment faire pour tester de façon "pratique"
"AZVN V+ Hyp1 TOWER,S NA+" -> renvoi la méthode A sans devoir repass r
en revue à chaque fois l'onglet MACRO ....

pas simple mon histoire ! je m'en rend bien compte ...

Au début j'avais mis les valeurs à tester en dur.
(c'est les commentaires de
Mod_traitement.traitement1_tx_structure_abg() )
Tu as :
'lbl4_1 = test(num_Support_actu, Label4.Caption)
'lbl4_2 = test(num_Support_actu, Label26.Caption)
'lbl4_v = valtri(lbl4_1, lbl4_2,
Worksheets("MACRO").Range("T1_COMPARE_METHOD").Value)

ce qui me donne 2 tablo que je compare avec valtri pour n'en garder
qu'un. puis je viens coller les valeurs
'Range(ref_cellule).Select
'ActiveCell.Offset(0, 2).Value = lbl4_v(0)
'ActiveCell.Offset(0, 3).Value = lbl4_v(1)
'ActiveCell.Offset(0, 1).Value = lbl4_1(2)
'ctrl_t1_label4 = ctrl_t1_label4 + 1

Cette méthode fonctionne à condition de tjrs avoir ttes les
conditions. Or des fois je peux avoir AZVN (support n° 16 par exempl e)
et des fois AHPV (support n°43 par exemple)...

peut être que je m'y suis mal pris dés le début ....

Guillaume




Le 07/05/2010 13:30, Daniel.C a écrit :
Est-ce que tu peux donner un exemple; Ou prends-tu la méthode à t raiter,
et quel résultat attends-tu ?
Daniel

re ...
Je ne connaissais pas "ci joint"

Voici donc le fchier en question :
http://www.cijoint.fr/cjlink.php?file=cj201005/cij9HBFbHR.xls

Les données brut à traiter dans l'onglet : brut-tx-travail-abg
La feuille qui doit recevoir les informations : tx-structure-abg
Enfin la zone qui permets de faire les liaisons : MACRO
'DONNEES_TRAITEMENT_ABG'





Le 07/05/2010 10:25, Daniel.C a écrit :
Bonjour.
Oui, c'est clair... Tu devrais quand même mettre un classeur
exemple en
spécifiant où tu veux mettre les résultats. Efface les éven tuelles
données confidentielles et mets le classseur sur www.cijoint.fr. Poste
ensuite ici le lien généré.
Cordialement.
Daniel

Bonjour à tous.

Je suis un peu en train de m'arracher les cheveux avec une macro.

J'ai dans un premier temps un tableau de définitions de méthod es :
Onglet : "DEFMACRO"

METHODES VALEURS
A AZVN V+
A AZVN V-
B B V+
B B V-
NN GU V+
NN GU V-
GG GG V+
GG GG V-
GD GD V+
GD GD V-
A AHPV V+
A AHPV V-
A AZVF V+
A AZVF V-

À partir de là, je dois rechercher dans une feuille de donné es la
valeur (par exemple "AZVN V+" OU "AHPV V+" OU "AZVF V+")
On peut imaginer ajouter un nième cas ... dans ce cas ce serait 4
"OU"

Les données :
Cas de charges Taux Max (%) Code
AZVN V+ 80,32 BETP1>XY
GG V+ 36,8 AD-P3

Ma requête ici doit sélectionner AZVN V+
Récupérer le taux et le code.
(ça c'est OK ma macro le fait bien et me retourne un tableau)

Puis je dois aller lire dans un tableau la correspondance AZVN V+ ->
Méthode ?
et là je coince ... Comment faire pour remplir un tableau de
correspondance ?

En fonction de la méthode, je viens coller les valeurs dans un 3 e
onglet au niveau de la colonne pour la méthode A ...

Je ne sais pas si j'ai été clair ....

Merci d'avance dans tous les cas !