Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça d oit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoint. comet
de poster l'adresse générée. N'oublie pas de remplacer les éventu elles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
------------------------------------------------------------------------- ------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça d oit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoint. comet
de poster l'adresse générée. N'oublie pas de remplacer les éventu elles
données confidentielles
Cordialement.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le message de news:
1186691248.327243.280...@m37g2000prh.googlegroups.com...
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
------------------------------------------------------------------------- ------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça d oit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoint. comet
de poster l'adresse générée. N'oublie pas de remplacer les éventu elles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
------------------------------------------------------------------------- ------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoin t.comet
de poster l'adresse générée. N'oublie pas de remplacer les éven tuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
----------------------------------------------------------------------- --------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" <dZZZcolarde...@free.fr> wrote:
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoin t.comet
de poster l'adresse générée. N'oublie pas de remplacer les éven tuelles
données confidentielles
Cordialement.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le message de news:
1186691248.327243.280...@m37g2000prh.googlegroups.com...
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
----------------------------------------------------------------------- --------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoin t.comet
de poster l'adresse générée. N'oublie pas de remplacer les éven tuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
----------------------------------------------------------------------- --------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Salut à toi
Je te propose ces allègements
Pour :
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
Et
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
Je te suggère :
Donnée = "GHIJKLMNOPQRSTUVWXYZABCDEFG"
For i = 1 To 27
Tab_pays(i) = Sheets("Funds").Range("F1").Offset(0, i).Value
If i < 21 Then
Tab_lettres (i) = Mid(Donnée, i, 1)
Else
Tab_lettres (i) = "A" & Mid(Donnée, i, 1)
End If
Next
C'est plus court pour un même résultat
Concernant tes conditions :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Je mettrai :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
A tester !!!
Pour :
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
Et
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
Que tu rapelles ici :
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
Pourquoi ne pas mettre directement ces lignes :
Sheets("résult").Range("a1") = Sheets("Funds").Range("A1").Value
Sheets("résult").Range("b1") = Sheets("Funds").Range("B1").Value
Sheets("résult").Range("c1") = Sheets("Funds").Range("C1").Value
Sheets("résult").Range("d1") = Sheets("Funds").Range("D1").Value
Sheets("résult").Range("e1") = Sheets("Funds").Range("E1").Value
Sheets("résult").Range("f1") = Sheets("Funds").Range("F1").Value
Sheets("résult").Range("g1") = Sheets("Media").Range("B1").Value
Sheets("résult").Range("h1") = Sheets("Media").Range("C1").Value
Sheets("résult").Range("i1") = Sheets("Media").Range("D1").Value
Sheets("résult").Range("j1") = Sheets("Media").Range("E1").Value
En remplacement de toutes les autres !!!!
Pour :
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
Je te suggére :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Val ue =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
Ce qui donne au final :
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Donnée = "GHIJKLMNOPQRSTUVWXYZABCDEFG"
For i = 1 To 27
Tab_pays(i) = Sheets("Funds").Range("F1").Offset(0, i).Value
If i < 21 Then
Tab_lettres (i) = Mid(Donnée, i, 1)
Else
Tab_lettres (i) = "A" & Mid(Donnée, i, 1)
End If
Next
Sheets("résult").Range("a1") = Sheets("Funds").Range("A1").Value
Sheets("résult").Range("b1") = Sheets("Funds").Range("B1").Value
Sheets("résult").Range("c1") = Sheets("Funds").Range("C1").Value
Sheets("résult").Range("d1") = Sheets("Funds").Range("D1").Value
Sheets("résult").Range("e1") = Sheets("Funds").Range("E1").Value
Sheets("résult").Range("f1") = Sheets("Funds").Range("F1").Value
Sheets("résult").Range("g1") = Sheets("Media").Range("B1").Value
Sheets("résult").Range("h1") = Sheets("Media").Range("C1").Value
Sheets("résult").Range("i1") = Sheets("Media").Range("D1").Value
Sheets("résult").Range("j1") = Sheets("Media").Range("E1").Value
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Val ue =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
J'espère que cette cure d'amaigrissement te conviendra
Dis moi !!!Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Salut à toi
Je te propose ces allègements
Pour :
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
Et
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
Je te suggère :
Donnée = "GHIJKLMNOPQRSTUVWXYZABCDEFG"
For i = 1 To 27
Tab_pays(i) = Sheets("Funds").Range("F1").Offset(0, i).Value
If i < 21 Then
Tab_lettres (i) = Mid(Donnée, i, 1)
Else
Tab_lettres (i) = "A" & Mid(Donnée, i, 1)
End If
Next
C'est plus court pour un même résultat
Concernant tes conditions :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Je mettrai :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
A tester !!!
Pour :
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
Et
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
Que tu rapelles ici :
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
Pourquoi ne pas mettre directement ces lignes :
Sheets("résult").Range("a1") = Sheets("Funds").Range("A1").Value
Sheets("résult").Range("b1") = Sheets("Funds").Range("B1").Value
Sheets("résult").Range("c1") = Sheets("Funds").Range("C1").Value
Sheets("résult").Range("d1") = Sheets("Funds").Range("D1").Value
Sheets("résult").Range("e1") = Sheets("Funds").Range("E1").Value
Sheets("résult").Range("f1") = Sheets("Funds").Range("F1").Value
Sheets("résult").Range("g1") = Sheets("Media").Range("B1").Value
Sheets("résult").Range("h1") = Sheets("Media").Range("C1").Value
Sheets("résult").Range("i1") = Sheets("Media").Range("D1").Value
Sheets("résult").Range("j1") = Sheets("Media").Range("E1").Value
En remplacement de toutes les autres !!!!
Pour :
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
Je te suggére :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Val ue =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
Ce qui donne au final :
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Donnée = "GHIJKLMNOPQRSTUVWXYZABCDEFG"
For i = 1 To 27
Tab_pays(i) = Sheets("Funds").Range("F1").Offset(0, i).Value
If i < 21 Then
Tab_lettres (i) = Mid(Donnée, i, 1)
Else
Tab_lettres (i) = "A" & Mid(Donnée, i, 1)
End If
Next
Sheets("résult").Range("a1") = Sheets("Funds").Range("A1").Value
Sheets("résult").Range("b1") = Sheets("Funds").Range("B1").Value
Sheets("résult").Range("c1") = Sheets("Funds").Range("C1").Value
Sheets("résult").Range("d1") = Sheets("Funds").Range("D1").Value
Sheets("résult").Range("e1") = Sheets("Funds").Range("E1").Value
Sheets("résult").Range("f1") = Sheets("Funds").Range("F1").Value
Sheets("résult").Range("g1") = Sheets("Media").Range("B1").Value
Sheets("résult").Range("h1") = Sheets("Media").Range("C1").Value
Sheets("résult").Range("i1") = Sheets("Media").Range("D1").Value
Sheets("résult").Range("j1") = Sheets("Media").Range("E1").Value
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Val ue =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
J'espère que cette cure d'amaigrissement te conviendra
Dis moi !!!
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Salut à toi
Je te propose ces allègements
Pour :
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
Et
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
Je te suggère :
Donnée = "GHIJKLMNOPQRSTUVWXYZABCDEFG"
For i = 1 To 27
Tab_pays(i) = Sheets("Funds").Range("F1").Offset(0, i).Value
If i < 21 Then
Tab_lettres (i) = Mid(Donnée, i, 1)
Else
Tab_lettres (i) = "A" & Mid(Donnée, i, 1)
End If
Next
C'est plus court pour un même résultat
Concernant tes conditions :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Je mettrai :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
A tester !!!
Pour :
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
Et
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
Que tu rapelles ici :
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
Pourquoi ne pas mettre directement ces lignes :
Sheets("résult").Range("a1") = Sheets("Funds").Range("A1").Value
Sheets("résult").Range("b1") = Sheets("Funds").Range("B1").Value
Sheets("résult").Range("c1") = Sheets("Funds").Range("C1").Value
Sheets("résult").Range("d1") = Sheets("Funds").Range("D1").Value
Sheets("résult").Range("e1") = Sheets("Funds").Range("E1").Value
Sheets("résult").Range("f1") = Sheets("Funds").Range("F1").Value
Sheets("résult").Range("g1") = Sheets("Media").Range("B1").Value
Sheets("résult").Range("h1") = Sheets("Media").Range("C1").Value
Sheets("résult").Range("i1") = Sheets("Media").Range("D1").Value
Sheets("résult").Range("j1") = Sheets("Media").Range("E1").Value
En remplacement de toutes les autres !!!!
Pour :
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
Je te suggére :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Val ue =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
Ce qui donne au final :
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Donnée = "GHIJKLMNOPQRSTUVWXYZABCDEFG"
For i = 1 To 27
Tab_pays(i) = Sheets("Funds").Range("F1").Offset(0, i).Value
If i < 21 Then
Tab_lettres (i) = Mid(Donnée, i, 1)
Else
Tab_lettres (i) = "A" & Mid(Donnée, i, 1)
End If
Next
Sheets("résult").Range("a1") = Sheets("Funds").Range("A1").Value
Sheets("résult").Range("b1") = Sheets("Funds").Range("B1").Value
Sheets("résult").Range("c1") = Sheets("Funds").Range("C1").Value
Sheets("résult").Range("d1") = Sheets("Funds").Range("D1").Value
Sheets("résult").Range("e1") = Sheets("Funds").Range("E1").Value
Sheets("résult").Range("f1") = Sheets("Funds").Range("F1").Value
Sheets("résult").Range("g1") = Sheets("Media").Range("B1").Value
Sheets("résult").Range("h1") = Sheets("Media").Range("C1").Value
Sheets("résult").Range("i1") = Sheets("Media").Range("D1").Value
Sheets("résult").Range("j1") = Sheets("Media").Range("E1").Value
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Val ue =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
J'espère que cette cure d'amaigrissement te conviendra
Dis moi !!!Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux wrote:Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > > > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux <loic.guiller...@gmail.com> wrote:
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" <dZZZcolarde...@free.fr> wrote:
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le message de news:
1186691248.327243.280...@m37g2000prh.googlegroups.com...
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > > > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux wrote:Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > > > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjours à toi
Peux tu me transmettre la partie du code qui fonctionne mal avec l'attendu
et l'obtenu
Merci d'avanceBonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux wrote:Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonn e I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.c joint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de ne ws:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utili ser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boul ot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fi er
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays (i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
------------------------------------------------------------------- ------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays (i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(i)
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjours à toi
Peux tu me transmettre la partie du code qui fonctionne mal avec l'attendu
et l'obtenu
Merci d'avance
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux <loic.guiller...@gmail.com> wrote:
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonn e I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" <dZZZcolarde...@free.fr> wrote:
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.c joint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le message de ne ws:
1186691248.327243.280...@m37g2000prh.googlegroups.com...
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utili ser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boul ot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fi er
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays (i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
------------------------------------------------------------------- ------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays (i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(i)
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjours à toi
Peux tu me transmettre la partie du code qui fonctionne mal avec l'attendu
et l'obtenu
Merci d'avanceBonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux wrote:Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonn e I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeur surwww.c joint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de ne ws:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utili ser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boul ot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fi er
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays (i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
------------------------------------------------------------------- ------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays (i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(i)
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit
le
faire. Sinon, le mieux est de télécharger ton classeur
surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" <dZZZcolarde...@free.fr> wrote:
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit
le
faire. Sinon, le mieux est de télécharger ton classeur
surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le message de news:
1186691248.327243.280...@m37g2000prh.googlegroups.com...
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit
le
faire. Sinon, le mieux est de télécharger ton classeur
surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
-------------------------------------------------------------------------------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text > > Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) > > Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) > > Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) > > Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) > > Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) > > Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) > > Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante) > > Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) > > Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) > > Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
'
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Dans Macro1, remplace :
If pays_a_tester = "True" Then
par
If pays_a_tester = True Then
Ce n'est peut-être pas toute la solution, mais une partie, en tout cas.
Daniel
"lglux" a écrit dans le message de news:
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux wrote:Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit
le
faire. Sinon, le mieux est de télécharger ton classeur
surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les év entuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utilise r les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays (i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
--------------------------------------------------------------------- ----------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays (i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante +
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Dans Macro1, remplace :
If pays_a_tester = "True" Then
par
If pays_a_tester = True Then
Ce n'est peut-être pas toute la solution, mais une partie, en tout cas.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le message de news:
1186735973.236062.101...@j4g2000prf.googlegroups.com...
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux <loic.guiller...@gmail.com> wrote:
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" <dZZZcolarde...@free.fr> wrote:
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit
le
faire. Sinon, le mieux est de télécharger ton classeur
surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les év entuelles
données confidentielles
Cordialement.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le message de news:
1186691248.327243.280...@m37g2000prh.googlegroups.com...
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utilise r les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays (i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
--------------------------------------------------------------------- ----------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays (i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante +
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Dans Macro1, remplace :
If pays_a_tester = "True" Then
par
If pays_a_tester = True Then
Ce n'est peut-être pas toute la solution, mais une partie, en tout cas.
Daniel
"lglux" a écrit dans le message de news:
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille result, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux wrote:Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiquette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la macro:
1. Appuyer sur le bouton en haut a droite
2. remplir les champs
3. input data puis valider
4. resultat dans cette feuille, j'aimerai que la colonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" wrote:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec des "and", ça doit
le
faire. Sinon, le mieux est de télécharger ton classeur
surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les év entuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le message de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne dois pas utilise r les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai developper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etais pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suivant plusieurs
critères d'une autre ligne d'une autre worksheet (inséré via le
formulaire) "fonds".
Le choix de la ligne à copier doit se faire en fonction de trois
criteres.
Pour faire simple, j'aimerai la copie de la ligne fonds + la copie de
la ligne media (a la suite sur la meme ligne) sur une troisieme
feuille SI et seulement SI les trois criteres present dans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce code mais je ne
sais pas comment inclure les autres criteres (avec un and? comment
utiliser cela? mon code n'est pas trop lourd?):
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays (i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante + 1
End If
cpt_media = cpt_media + 1
Loop
cpt_media = 2
End If
Next
cpt_funds = cpt_funds + 1
Loop
(pour ceux qui veulent l'integralité du code pour peut etre mieux
comprendre ma manip)
--------------------------------------------------------------------- ----------------------------------------------------------
Sub Macro1()
'
'
Dim Tab_pays(30) As String ' tableau de tous les pays
Dim cpt_funds, cpt_media As Integer
Dim Tab_lettres(27) As String ' tableau des colonnes de G à AG
Tab_lettres(1) = "G"
Tab_lettres(2) = "H"
Tab_lettres(3) = "I"
Tab_lettres(4) = "J"
Tab_lettres(5) = "K"
Tab_lettres(6) = "L"
Tab_lettres(7) = "M"
Tab_lettres(8) = "N"
Tab_lettres(9) = "O"
Tab_lettres(10) = "P"
Tab_lettres(11) = "Q"
Tab_lettres(12) = "R"
Tab_lettres(13) = "S"
Tab_lettres(14) = "T"
Tab_lettres(15) = "U"
Tab_lettres(16) = "V"
Tab_lettres(17) = "W"
Tab_lettres(18) = "X"
Tab_lettres(19) = "Y"
Tab_lettres(20) = "Z"
Tab_lettres(21) = "AA"
Tab_lettres(22) = "AB"
Tab_lettres(23) = "AC"
Tab_lettres(24) = "AD"
Tab_lettres(25) = "AE"
Tab_lettres(26) = "AF"
Tab_lettres(27) = "AG"
' Lecture entête feuille Funds
ISIN = Sheets("Funds").Range("A1").Value
Funds = Sheets("Funds").Range("B1").Value
Subs_Funds = Sheets("Funds").Range("C1").Value
Share_classe = Sheets("Funds").Range("D1").Value
Type_share = Sheets("Funds").Range("E1").Value
launch_date = Sheets("Funds").Range("F1").Value
' remplissage tableau pays
Tab_pays(1) = Sheets("Funds").Range("G1").Value
Tab_pays(2) = Sheets("Funds").Range("H1").Value
Tab_pays(3) = Sheets("Funds").Range("I1").Value
Tab_pays(4) = Sheets("Funds").Range("J1").Value
Tab_pays(5) = Sheets("Funds").Range("K1").Value
Tab_pays(6) = Sheets("Funds").Range("L1").Value
Tab_pays(7) = Sheets("Funds").Range("M1").Value
Tab_pays(8) = Sheets("Funds").Range("N1").Value
Tab_pays(9) = Sheets("Funds").Range("O1").Value
Tab_pays(10) = Sheets("Funds").Range("P1").Value
Tab_pays(11) = Sheets("Funds").Range("Q1").Value
Tab_pays(12) = Sheets("Funds").Range("R1").Value
Tab_pays(13) = Sheets("Funds").Range("S1").Value
Tab_pays(14) = Sheets("Funds").Range("T1").Value
Tab_pays(15) = Sheets("Funds").Range("U1").Value
Tab_pays(16) = Sheets("Funds").Range("V1").Value
Tab_pays(17) = Sheets("Funds").Range("W1").Value
Tab_pays(18) = Sheets("Funds").Range("X1").Value
Tab_pays(19) = Sheets("Funds").Range("Y1").Value
Tab_pays(20) = Sheets("Funds").Range("Z1").Value
Tab_pays(21) = Sheets("Funds").Range("AA1").Value
Tab_pays(22) = Sheets("Funds").Range("AB1").Value
Tab_pays(23) = Sheets("Funds").Range("AC1").Value
Tab_pays(24) = Sheets("Funds").Range("AD1").Value
Tab_pays(25) = Sheets("Funds").Range("AE1").Value
Tab_pays(26) = Sheets("Funds").Range("AF1").Value
Tab_pays(27) = Sheets("Funds").Range("AG1").Value
' Lecture entête feuille Media
Country_pub = Sheets("Media").Range("B1").Value
Media_designa = Sheets("Media").Range("C1").Value
Pub_Share = Sheets("Media").Range("D1").Value
Pub_Type_share = Sheets("Media").Range("E1").Value
' Copie de l'entête dans la feuille résult
Sheets("résult").Range("a1") = ISIN
Sheets("résult").Range("b1") = Funds
Sheets("résult").Range("c1") = Subs_Funds
Sheets("résult").Range("d1") = Share_classe
Sheets("résult").Range("e1") = Type_share
Sheets("résult").Range("f1") = launch_date
Sheets("résult").Range("g1") = Country_pub
Sheets("résult").Range("h1") = Media_designa
Sheets("résult").Range("i1") = Pub_Share
Sheets("résult").Range("j1") = Pub_Type_share
cpt_funds = 2 ' position première ligne utile dans feuille Funds
cpt_media = 2 ' position première ligne utile dans feuille Media
ligne_courante = cpt_funds 'position ligne courante dans feuille
résult
' faire tant que Ax de la feuille Funds n'est pas vide
Do While Sheets("Funds").Range("a" & cpt_funds).Text <> ""
'recherche des médias de chaque pays
For i = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(i) &
cpt_funds).Value
If pays_a_tester = "Oui" Then
' recherche dans feuille Média
' faire tant que Bx de la feuille Media n'est pas vide
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
'and if sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value
Sheets("résult").Range("a" & ligne_courante) =
Sheets("Funds").Range("a" & cpt_funds)
Sheets("résult").Range("b" & ligne_courante) =
Sheets("Funds").Range("b" & cpt_funds)
Sheets("résult").Range("c" & ligne_courante) =
Sheets("Funds").Range("c" & cpt_funds)
Sheets("résult").Range("d" & ligne_courante) =
Sheets("Funds").Range("d" & cpt_funds)
Sheets("résult").Range("e" & ligne_courante) =
Sheets("Funds").Range("e" & cpt_funds)
Sheets("résult").Range("f" & ligne_courante) =
Sheets("Funds").Range("f" & cpt_funds)
Sheets("résult").Range("g" & ligne_courante) = Tab_pays (i)
Sheets("résult").Range("h" & ligne_courante) =
Sheets("media").Range("c" & cpt_media)
Sheets("résult").Range("i" & ligne_courante) =
Sheets("media").Range("d" & cpt_media)
Sheets("résult").Range("j" & ligne_courante) =
Sheets("media").Range("e" & cpt_media)
ligne_courante = ligne_courante +
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -