Macro boucle if d'après fonction si

Résolu
katiaromu -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. killeur Messages postés 112 Statut Membre 20
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. katiaromu
       
      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
  3. katiaromu
     
    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
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. katiaromu
       
      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
    2. katiaromu
       
      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
    3. katiaromu
       
      ok, j'ai fait des macros pour les autres colonnes plus une macro qui me lance toutes les macros et cela fonctionne. Merci
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Parfait,
    n'oublie pas de mettre en résolu si tout te parait ok. Merci
    Bonne continuation
    eric
    0