Excel, macro pour lier des cellules à partir d'un mot clé

Marionfoin Messages postés 4 Statut Membre -  
 Marionfoin -
Bonjour,

je suis assez novice dans le monde des macro Excel dont désolée par avance si je n'emploie pas le vocabulaire adéquat.

Dans un tableau Excel, j'aurais besoin de faire en sorte que si je rencontre "X" dans la colonne E, associer une certaine valeur sur la même ligne dans les colonnes F, G, etc.

Je précise que les valeurs dont je parle sont du texte et pas des chiffres.
Je précise aussi que la valeur à repérer à la base est toujours dans la même colonne mais jamais sur la même ligne.

Par exemple :
si je rencontre "GEOPOLITIS" dans la colonne E, il faudrait pouvoir écrire sur la même ligne "Anglais" dans la colonne F, "Magazine" dans la colonne G, "Economie" dans la colonne H, "English" dans la colonne J, etc.
(donc les colonnes ne se suivent pas nécessairement)

J'espère que je suis assez claire,
Merci infiniment pour vos lumières, mes collègues et moi vous serions extrêmement reconnaissants en cas de succès :)

Bien à vous,
Marion

6 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour,

    Sub completer()
    For n = 1 To 100
    x = Cells(n, 5).Value 'recupere la valeur en cellule ligne n colonne 5 (donc E)
    Select Case x
    Case "GEOPOLITIS": a = "Anglais": b = "Magazine": c = "Economie": d = "English"
    Case "XXX": a = "": b = "": c = "": d = "" 'remplacer les X par un autre nom et les "" par les valeurs voulues
    ' rajouter avec Case les autres cas possibles selon la meme syntaxe
    End Select

    Cells(n, 6).Value = a 'place la valeur a en cellule ligne n colonne 6 (F)
    Cells(n, 7).Value = b
    Cells(n, 8).Value = c
    Cells(n, 10).Value = d

    End Sub

    Cette macro à adapter selon vos besoins doit permettre d'avoir l'effet recherché

    Cdlmnt
    0
  2. Marionfoin Messages postés 4 Statut Membre
     
    Merci beaucoup pour votre réponse!
    Je crois comprendre à peu près ces lignes de code, malgré mes connaissances très très basiques...

    Par contre quand je fais une tentative, le message suivant apparaît : "Erreur de compilation : For sans Next"

    Kesako ?
    0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Tout betement que le next a sauté dnas ma recopie de la formule !
    Dsl !

    il ne peut y avoir de FOR sans NEXT c'est une boucle
    Il faut donc rajouter ce Next avant End Sub

    Ca devrait fonctionner ! me tenir au courant

    Cdlmnt
    0
  4. Marionfoin Messages postés 4 Statut Membre
     
    Merci encore pour votre temps!

    J'ai tenté donc :

    Sub SttMag()
    For n = 1 To 100
    x = Cells(n, 5).Value 'recupere la valeur en cellule ligne n colonne 5 (donc E)
    Select Case x
    Case "GEOPOLITIS": a = "Anglais": b = "Magazine": c = "Economie": d = "English"
    End Select
    Cells(n, 6).Value = a 'place la valeur a en cellule ligne n colonne 6 (F)
    Cells(n, 7).Value = b
    Cells(n, 8).Value = c
    Cells(n, 10).Value = d
    Next
    End Sub

    Plus de message d'erreur... malheureusement, pas de résultat non plus :(
    0
    1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Bonjour,

      Sub SttMag() 
      For n = 1 To 100 
      x = Cells(n, 5).Value 'recupere la valeur en cellule ligne n colonne 5 (donc E) 
      Select Case x 
      Case "GEOPOLITIS": a = "Anglais": b = "Magazine": c = "Economie": d = "English" 
      Cells(n, 6).Value = a 'place la valeur a en cellule ligne n colonne 6 (F) 
      Cells(n, 7).Value = b 
      Cells(n, 8).Value = c 
      Cells(n, 10).Value = d 
      End Select 
      Next 
      End Sub 


      serait mieux : j'ai ajouté les Cells() dans le Case, sinon ça ajoute sur toutes les lignes, même si la colonne 5 est vide.

      Si ça ne fait rien chez toi, c'est que ton fichier ne contient pas de valeur "GEOPOLITIS" en colonne 5.

      Fais attention qu'il n'y ait pas d'espace parasites dans les cellules, sinon ça peut expliquer l'absence de résultats.

      Cordialement.
      0
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Exact Chossette, merci de corriger mes erreurs!
      je ne suis pas en forme aujourd'hui! j'ai oublié de repasser le End Select en dessous après avoir ajouté les ligens de cells !!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Marionfoin Messages postés 4 Statut Membre
     
    Merci beaucoup!

    En fait c'est très bizarre : j'ai fait un test sur un nouveau document et ça marche très bien! Sauf que dans ce document test (nommé par défaut "Classeur3.xlsx") la Macro est exécutable sous le nom suivant :

    TestVBAstt.xls!SttMag

    Par contre, quand je teste sur mon "vrai" document (nommé "TestVBAstt.xls"), la MEME Macro est exécutable sous le nom suivant :

    SttMag

    mais ne marche pas du tout!!!

    C'est à n'y rien comprendre! Une macro qui porte un nom différent suivant le document que j'ouvre et qui fonctionne sur l'un et pas sur l'autre...

    Une idée?!
    0
  7. Marionfoin
     
    ça y est ça marche!!!
    En fait le problème venait du fait que mon tableau est immense (plus de 200 lignes) donc il suffisait de changer la première ligne (1 to 500 au lieu de 1 to 100 - oui je vois large du coup :-)

    Sub SttMag()
    For n = 1 To 500
    x = Cells(n, 5).Value 'recupere la valeur en cellule ligne n colonne 5 (donc E)
    Select Case x
    Case "GEOPOLITIS": a = "Anglais": b = "Magazine": c = "Economie": d = "English"
    Cells(n, 6).Value = a 'place la valeur a en cellule ligne n colonne 6 (F)
    Cells(n, 7).Value = b
    Cells(n, 8).Value = c
    Cells(n, 10).Value = d
    End Select
    Next
    End Sub

    J'adore les macro!!!

    Merci infiniment pour ton aide!!!!
    0