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
A voir également:

6 réponses

via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
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
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
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
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
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
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
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

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

Posez votre question
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
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