FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé u ne
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET p uis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'empor ter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_cour ante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courant e) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_cour ante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditi ons
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le ba ndeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F 5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour cop ier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour c opier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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 netiquet te de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la mac ro:
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" wrot e:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec d es "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeu r surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de rempla cer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le mes sage 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 developp er mes
connaissances surtout que là j'en ai vraiment besoin po ur 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") suivan t 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 tro isieme
feuille SI et seulement SI les trois criteres present dan s les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce cod e 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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé u ne
quelconque difficulté
Merci d'avance
Bizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaître
Quand j'ai 3 conditions: il faut que la premiere soit vraie, ET p uis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'empor ter
sur le premier IF et AND.....
On 10 août, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_cour ante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courant e) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_cour ante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditi ons
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le ba ndeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F 5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour cop ier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour c opier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté
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 netiquet te de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la mac ro:
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> wrot e:
Bonjour.
C'est difficile de se faire une idée, mais, oui, avec d es "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeu r surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de rempla cer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le mes sage 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 developp er mes
connaissances surtout que là j'en ai vraiment besoin po ur 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") suivan t 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 tro isieme
feuille SI et seulement SI les trois criteres present dan s les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce cod e 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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé u ne
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET p uis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'empor ter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_cour ante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courant e) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_cour ante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditi ons
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le ba ndeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F 5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour cop ier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour c opier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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 netiquet te de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la mac ro:
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" wrot e:Bonjour.
C'est difficile de se faire une idée, mais, oui, avec d es "and", ça doit le
faire. Sinon, le mieux est de télécharger ton classeu r surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de rempla cer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le mes sage 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 developp er mes
connaissances surtout que là j'en ai vraiment besoin po ur 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") suivan t 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 tro isieme
feuille SI et seulement SI les trois criteres present dan s les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce cod e 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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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) > >
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avance
Bizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaître
Quand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté
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) > >
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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) > >
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET
puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va
l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" &
ligne_courante) ..Value > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" &
ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" &
ligne_courante) ..Value > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le
bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre
les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du
clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour
copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour
copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avance
Bizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaître
Quand j'ai 3 conditions: il faut que la premiere soit vraie, ET
puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va
l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" &
ligne_courante) ..Value > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" &
ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" &
ligne_courante) ..Value > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le
bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre
les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du
clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour
copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour
copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté
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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET
puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va
l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" &
ligne_courante) ..Value > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" &
ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" &
ligne_courante) ..Value > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le
bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre
les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du
clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour
copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour
copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
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
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'orig ine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne sem ble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bas es,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emp orter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_co urante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_coura nte) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_co urante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les condi tions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connait re les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour c opier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constatéBonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, j e vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille resul t, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux wrot e:Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiqu ette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la m acro:
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" wr ote: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 class eur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remp lacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le m essage de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne do is pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai develo pper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etai s pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suiv ant 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 foncti on 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 t roisieme
feuille SI et seulement SI les trois criteres present d ans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce c ode mais je ne
sais pas comment inclure les autres criteres (avec un a nd? 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 v ide
Do While Sheets("media").Range("b" & cpt_media).Tex t <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
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
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
Merci
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'orig ine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avance
Bizarrement la solution de daniel marche, et bien que la tienne sem ble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bas es,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaître
Quand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emp orter
sur le premier IF et AND.....
On 10 août, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_co urante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_coura nte) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_co urante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les condi tions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connait re les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour c opier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, j e vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille resul t, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux <loic.guiller...@gmail.com> wrot e:
Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiqu ette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la m acro:
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> wr ote:
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 class eur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remp lacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" <loic.guiller...@gmail.com> a écrit dans le m essage de news:
1186691248.327243.280...@m37g2000prh.googlegroups.com...
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne do is pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai develo pper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etai s pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suiv ant 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 foncti on 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 t roisieme
feuille SI et seulement SI les trois criteres present d ans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce c ode mais je ne
sais pas comment inclure les autres criteres (avec un a nd? 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 v ide
Do While Sheets("media").Range("b" & cpt_media).Tex t <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
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
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'orig ine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne sem ble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bas es,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emp orter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_co urante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_coura nte) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_co urante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les condi tions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connait re les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour c opier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j ) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constatéBonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus joli, j e vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille resul t, a croire
que le deuxieme critere avec le "and" passe mal, bizarre
MERCI !!
On 10 août, 10:29, lglux wrot e:Bonjour Daniel,
J'ai pas osé mettre un fichier car j'avais lu la netiqu ette de ce
forum, certes datée de 2003..
http://cjoint.com/?ikkARtRCiO
sur la feuille result j'ai mis les infos pour lancer la m acro:
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" wr ote: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 class eur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remp lacer les éventuelles
données confidentielles
Cordialement.
Daniel
"lglux" a écrit dans le m essage de news:
Bonsoir a tous,
Malgré la mine d'or présente sur le forum, je ne do is pas utiliser les
bons mots clés car je ne trouve pas la reponse...
J'utilise le vba assez sommairement et j'aimerai develo pper mes
connaissances surtout que là j'en ai vraiment besoin pour le boulot:
(je vous passe l'etape du formulaire et tout que j'etai s pas peu fier
d'avoir mis en place)
Voilà j'aimerai copier une ligne (table "media") suiv ant 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 foncti on 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 t roisieme
feuille SI et seulement SI les trois criteres present d ans les deux
lignes fonds et media sont égaux.
Pour l'instant ca marche pour le critere pays avec ce c ode mais je ne
sais pas comment inclure les autres criteres (avec un a nd? 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 v ide
Do While Sheets("media").Range("b" & cpt_media).Tex t <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(i)
Then
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Je te suggère de remettre ton classeur surwww.cjoint.comet de poster
l'adresse générée. Donne-nous les données saisies et les zones da ns
lesquelles elles sont saisies. D'autre part, clique sur "débogage" quan d tu
as l'erreur et indique-nous la ligne sur laquelle elle se produit.
Daniel
Je te suggère de remettre ton classeur surwww.cjoint.comet de poster
l'adresse générée. Donne-nous les données saisies et les zones da ns
lesquelles elles sont saisies. D'autre part, clique sur "débogage" quan d tu
as l'erreur et indique-nous la ligne sur laquelle elle se produit.
Daniel
Je te suggère de remettre ton classeur surwww.cjoint.comet de poster
l'adresse générée. Donne-nous les données saisies et les zones da ns
lesquelles elles sont saisies. D'autre part, clique sur "débogage" quan d tu
as l'erreur et indique-nous la ligne sur laquelle elle se produit.
Daniel
Oui a partir de H ca marche.
regarde : http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO wrote:Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > 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) .Value > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Oui a partir de H ca marche.
regarde : http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > 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) .Value > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
Merci
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avance
Bizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaître
Quand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté
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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Oui a partir de H ca marche.
regarde : http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO wrote:Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > 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) .Value > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" sont toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Value =
Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO wrote:Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Va lue
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration , la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilis ant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere lig ne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marc hes pas
avec ma solution telles que tu les as écrites pour en cerner l' origine
Toutes mes configurations avec ce type d'approche n'ont jamais po sé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie , ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l 'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO w rote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & lign e_courante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_c ourante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(j)
Sheets("résult").Range("h" & ligne_courante, "j" & lign e_courante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) . Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les c onditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en con naitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir acti vé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécut ion
Attention :
si tu souhaites que les 2 conditions soient réunies po ur copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constatéBonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus jol i, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille r esult, 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 ne tiquette 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 colo nne 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 c lasseur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" sont toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Value =
Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!
Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Va lue
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration , la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilis ant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
Merci
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere lig ne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marc hes pas
avec ma solution telles que tu les as écrites pour en cerner l' origine
Toutes mes configurations avec ce type d'approche n'ont jamais po sé une
quelconque difficulté
Merci d'avance
Bizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaître
Quand j'ai 3 conditions: il faut que la premiere soit vraie , ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l 'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO <F...@discussions.microsoft.com> w rote:
Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & lign e_courante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_c ourante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(j)
Sheets("résult").Range("h" & ligne_courante, "j" & lign e_courante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) . Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les c onditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en con naitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir acti vé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécut ion
Attention :
si tu souhaites que les 2 conditions soient réunies po ur copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus jol i, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille r esult, 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 ne tiquette 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 colo nne 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 c lasseur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" sont toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Val ue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Value =
Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO wrote:Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Va lue
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(i)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) .Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration , la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilis ant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere lig ne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marc hes pas
avec ma solution telles que tu les as écrites pour en cerner l' origine
Toutes mes configurations avec ce type d'approche n'ont jamais po sé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie , ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l 'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO w rote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & lign e_courante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_c ourante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pa ys(j)
Sheets("résult").Range("h" & ligne_courante, "j" & lign e_courante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) . Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les c onditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en con naitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir acti vé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécut ion
Attention :
si tu souhaites que les 2 conditions soient réunies po ur copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pa ys(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constatéBonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus jol i, je vais plus
tard me pencher et en tirer les lecons.
Bon par contre plus rien ne s'affiche dans la feuille r esult, 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 ne tiquette 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 colo nne 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 c lasseur surwww.cjoint.comet
de poster l'adresse générée. N'oublie pas de remplacer les éventuelles
données confidentielles
Cordialement.
...
plus de détails »- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Ah oui ca a l'air encore mieux ca !
je teste ca et je te tiens au courant
On 10 août, 16:38, FFO wrote:Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" so nt toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante ) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Valu e =
Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO wrote:Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante ) .Value =
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 ) .Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configurati on, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en util isant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere l igne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, al ors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne ma rches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tien ne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonn es bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wro te:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilit é
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vra ie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & li gne_courante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne _courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_ pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & li gne_courante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click s ur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en c onnaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir ac tivé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxéc ution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vrai e pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constatéBonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus j oli, 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, biza rre
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 lance r 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 co lonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" fr> wrote:Bonjour.
C'est difficile
...
plus de détails »
Ah oui ca a l'air encore mieux ca !
je teste ca et je te tiens au courant
On 10 août, 16:38, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" so nt toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante ) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Valu e =
Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!
Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante ) .Value =
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 ) .Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configurati on, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en util isant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
Merci
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere l igne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, al ors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne ma rches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avance
Bizarrement la solution de daniel marche, et bien que la tien ne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonn es bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO <F...@discussions.microsoft.com> wro te:
Rebonjour à toi
A la solution de Daniel je te propose une autre possibilit é
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaître
Quand j'ai 3 conditions: il faut que la premiere soit vra ie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & li gne_courante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne _courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_ pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & li gne_courante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click s ur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en c onnaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir ac tivé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxéc ution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vrai e pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté
Bonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus j oli, 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, biza rre
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 lance r 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 co lonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" <dZZZcolarde...@free. fr> wrote:
Bonjour.
C'est difficile
...
plus de détails »
Ah oui ca a l'air encore mieux ca !
je teste ca et je te tiens au courant
On 10 août, 16:38, FFO wrote:Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" so nt toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante ) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .V alue =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Valu e =
Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO wrote:Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante ) .Value =
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 ) .Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configurati on, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en util isant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere l igne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, al ors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne ma rches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tien ne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonn es bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wro te:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilit é
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vra ie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & li gne_courante) ..Value =
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne _courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_ pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & li gne_courante) ..Value =
Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click s ur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en c onnaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir ac tivé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxéc ution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) and
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vrai e pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_ pays(j) or
sheets("media").range("d" & cpt_media).text =
Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constatéBonjour FFO
Merci pour la cure d'amaigrissement c'est bien plus j oli, 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, biza rre
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 lance r 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 co lonne D = colonne I
ou "*"
MERCI !!
On 10 août, 09:53, "Daniel" fr> wrote:Bonjour.
C'est difficile
...
plus de détails »
Ca marche vraiment bien comme ceci, merci beaucoup !!
On 10 août, 17:14, lglux wrote:Ah oui ca a l'air encore mieux ca !
je teste ca et je te tiens au courant
On 10 août, 16:38, FFO wrote:Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" sont toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Value > > > Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO wrote:Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > > > 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) .Value > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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
...
plus de détails »
Ca marche vraiment bien comme ceci, merci beaucoup !!
On 10 août, 17:14, lglux <loic.guiller...@gmail.com> wrote:
Ah oui ca a l'air encore mieux ca !
je teste ca et je te tiens au courant
On 10 août, 16:38, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" sont toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Value > > > Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!
Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > > > 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) .Value > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
Merci
FFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avance
Bizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaître
Quand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté
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
...
plus de détails »
Ca marche vraiment bien comme ceci, merci beaucoup !!
On 10 août, 17:14, lglux wrote:Ah oui ca a l'air encore mieux ca !
je teste ca et je te tiens au courant
On 10 août, 16:38, FFO wrote:Rebonjour à toi
La ligne de commande qui remplit tes cellules A à F Onglet "result"
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
suit l'évolution du paramètre : ligne_courante
Qui par la ligne de commande quelque lignes plus bas :
ligne_courante = ligne_courante + 1
évolue à chaque cycle de +1
Si c'est indispensable pour la recopie dans la partie :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Celà devient génant pour la partie :
Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Car les paramètres que l'on doit récupérer dans l'Onglet "Fun" sont toujours
sur la même ligne cellule A à F
Or à partir du 2° cycle tu demandes par la variable (ligne_courante) d'aller
les chercher 1 ligne plus bas totalement vide
D'ou ton souci
Je te propose de te servir de la variable : cpt_funds
En lieu et place pour cette partie
Remplace donc :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Par :
Sheets("result").Range("a" & ligne_courante, "f" & ligne_courante).Value > > > Sheets("Funds").Range("a" & cpt_funds, "f" & cpt_funds).Value
Celà devrait mieux convenir
Dis moi !!!Oui a partir de H ca marche.
regarde :http://www.cijoint.fr/cij82708018222101.xls
Merci !
On 10 août, 14:50, FFO wrote:Rebonjour à toi
Les autres valeurs De H à J sont elles bien toutes recopiées ???
Si je comprends bien le souci se situe sur les lignes :
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) .Value > > > > > 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) .Value > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
J'ai essayé chez moi en me rapprochant au mieux de ta configuration, la
recopie se réalise correctement sur toutes les lignes
En désespoire de cause peux tu me transmettre ton fichier en utilisant le
site :
http://www.cijoint.fr/index.php
Communiques moi le lien en retour
MerciFFO:
en fait ya pas d'erreurs dans ton code quand je l'execute.
seulement j'obtiens concretement en feuille "results" une fois les
infos sur le fonds (prises de la feuille fonds) sur la premiere ligne,
mais pas sur les lignes d'en dessous (ligne 3 vide de A à F, alors
qu'elle devrait contenir les memes infos que la ligne 1 a propos du
fonds), car le but c'est d'avoir autant de fois les infos sur ces
lignes que d'infos créee par lignes pour les colonnes G, H, I, J, qui
concerne les media
je sais pas si je suis clair
On 10 août, 14:00, FFO wrote:Rebonjour à toi
Escuses moi d'insister mais j'aimerai voir les lignes qui ne marches pas
avec ma solution telles que tu les as écrites pour en cerner l'origine
Toutes mes configurations avec ce type d'approche n'ont jamais posé une
quelconque difficulté
Merci d'avanceBizarrement la solution de daniel marche, et bien que la tienne semble
tres logique, elle ne marche pas (aucun results affiché)
merci encore a vous, la je pense que deja je suis sur de bonnes bases,
mes questions ont été resolues, merci encore!
On 10 août, 13:00, FFO wrote:Rebonjour à toi
A la solution de Daniel je te propose une autre possibilité
If Condition 1 Then
If condition 2 or condition 3 then
Conséquence(s)
End If
End If
Toujour bon à connaîtreQuand j'ai 3 conditions: il faut que la premiere soit vraie, ET puis
la deuxieme OU la troisieme, comment tu t'y prends?
le IF .... AND..... OR....THEN ne marche pas car le OR va l'emporter
sur le premier IF et AND.....
On 10 août, 11:56, FFO wrote:Rebonjours à toi
J'ai utilisé la même instruction que toi :
For i = 1 To 27
Qui donc se répète 2 fois dans le code
Il serait donc bon de choisir 2 variables différentes
Je te propose de changer la 2° ainsi :
For j = 1 To 27
pays_a_tester = Sheets("Funds").Range(Tab_lettres(j) &
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(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Sheets("résult").Range("a" & ligne_courante, "f" & ligne_courante) ..Value > > > > > > > > > > > Sheets("Funds").Range("a" & ligne_courante, "f" & ligne_courante) .Value
Sheets("résult").Range("g" & ligne_courante) = Tab_pays(j)
Sheets("résult").Range("h" & ligne_courante, "j" & ligne_courante) ..Value > > > > > > > > > > > Sheets("media").Range("c" & cpt_media, "e" & cpt_media) .Value
ligne_courante = ligne_courante + 1
End If
Remplace ce bout de code et réessaie
Concernant les conditions je te propose ceci :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Do While Sheets("media").Range("b" & cpt_media).Text <> ""
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Je décrite en A/B/C/D les variable testées dans les conditions
Rajoute donc les lignes :
A = Sheets("media").Range("b" & cpt_media).Text
B = Tab_pays(j)
C = sheets("media").range("d" & cpt_media).text
D = Sheets("Funds").Range("D1").Value
Avant le Do While
Mets un point d'arret au niveau de Do While (un click sur le bandeau gris en
regard)
Exécute le code
Il doit s'arréter à ce point
A chaque arrêt passes ta souris sur A/B/C/D pour en connaitre les valeurs à
ce stade de l'éxécution
Si toutes les conditions sont remplies aprés avoir activé F5 du clavier
regarde dans le classeur le résultat obtenu
recommence l'opération jusqu'à la fin de l'éxécution
Attention :
si tu souhaites que les 2 conditions soient réunies pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) and
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
si tu souhaites qu'une conditions ou l'autre soit vraie pour copier, la
commande est :
If Sheets("media").Range("b" & cpt_media).Text = Tab_pays(j) or
sheets("media").range("d" & cpt_media).text > > > > > > > > > > > Sheets("Funds").Range("D1").Value Then
Bien choisir la bonne ligne de commande
Dis moi ce que tu as constaté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
...
plus de détails »