Macro boucle if d'après fonction si

Résolu/Fermé
katiaromu - 21 févr. 2008 à 10:47
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 26 févr. 2008 à 18:37
Bonjour,

voici les fonctions que j'ai dans ma feuille excel

en B3 : =SI($B$1=spancm19022008!$B1;spancm19022008!$C1;"")
en B4 : =SI($B$1=spancm19022008!$B4;spancm19022008!$C4;"")
En B5 : =SI($B$1=spancm19022008!$B7;spancm19022008!$C7;"")
etc...

j'aimerais créer une macro qui me fasse cette manipulation de fonction automatiaquement... est ce possible? je le pense avec des boucles et des if then mais je n'y arrive pas du tout!!!

Merci de votre aide

Romuald
A voir également:

5 réponses

killeur Messages postés 112 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 14 mars 2008 20
21 févr. 2008 à 10:53
oui c'est possible, et c'est meme simple, sauf que la, j'ai pas le temps, si ya pas de réponses je le ferais un peu plutart!!

désolé!
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
21 févr. 2008 à 12:13
Bonjour,

moi non plus je n'ai pas bcp le temps mais à mon avis tu peux faire sans macro.
Si tu inscris =LIGNE()*3-8 en ligne 3 et que tu recopie vers le bas tu vois que tu généres les n° de ligne qui t'interessent : 1, 4, 7, 10...
Tu n'as plus qu'à fabriquer les références que tu veux avec indirect()
Ex:
=SI($B$1=spancm19022008!$B1;spancm19022008!$C1;"")
deviendrait :
=SI($B$1=INDIRECT("spancm19022008!$B" & (LIGNE()*3-8);INDIRECT("spancm19022008!$C" & (LIGNE()*3-8);"")

Je te laisse le soin de contrôler et tester

eric
0
salut, ok ça fonctionne, mais comme j'ai beaucoup de lignes à remplir (et même de colonne car il faut que je répète ça sur 12 colonnes) j'aurais aimé une macro, mais ça m'aide déjà beaucoup. Merci
0
j'ai essayé la méthode de eriiic, ca fonctionne bien jusqu'a 100 lignes mais apres ca marche plus et j'ai plus de 1500 lignes à remplir
pouvez vous m'aider?

merci
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
22 févr. 2008 à 11:04
Bonjour,

Si j'ai bien suivi ton raisonnement cette macro devrait aller:
Sub recup()
    Dim cel As Range
    Dim l As Long
    For Each cel In Selection
        l = cel.Row
        If Range("$B$1") = Worksheets("spancm19022008").Range("$B" & (l * 3 - 8)).Value Then
            cel.Value = Worksheets("spancm19022008").Range("$C" & (l * 3 - 8)).Value
        Else
            cel.Value = ""
        End If
    Next cel
End Sub


Sélectionne la zone où tu désires avoir les résultats et lance la macro
Mais tu parles dans ton dernier message de devoir le faire sur plusieurs colonnes, cette macro ramenra toujours la valeur de la colonne C après le test fait en colonne B vu que tu n'as pas donné d'autre indicatiion...

eric
0
ok, merci je teste ça lundi et je dis quoi , en ce qui concerne les autres colonnes, pas de probleme j'arriverai à adapter la macro pour le reste, enfin j'espère.
merci
0
bonjour,
ok ca fonctionne pour le remplissage de la colonne B d'après la colonne C de l'autre page, même si c'est un peu fastidieux de sélectionner la colonne pour le remplissage
les autres colonnes à remplir sont ainsi
1. copie de C d'après Test de la colonne B (ce qui est deja fait avec la macro ci-dessus)
2. copie de D d'après test de la colonne C
3. copie de C d'apres test de la colonne D
4. copie de D d'apres test de la colonne E
5. copie de C d'apres test de la colonne F
6. copie de D d'apres test de la colonne G
7. copie de C d'apres test de la colonne H
8. copie de D d'apres test de la colonne I
9. copie de C d'apres test de la colonne J
10. copie de D d'apres test de la colonne K
11. copie de C d'apres test de la colonne L
12. copie de D d'apres test de la colonne M

Voila
0
ok, j'ai fait des macros pour les autres colonnes plus une macro qui me lance toutes les macros et cela fonctionne. Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
26 févr. 2008 à 18:37
Parfait,
n'oublie pas de mettre en résolu si tout te parait ok. Merci
Bonne continuation
eric
0