Excel, macro pour lier des cellules à partir d'un mot clé
Marionfoin
Messages postés
4
Statut
Membre
-
Marionfoin -
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
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:
- Excel, macro pour lier des cellules à partir d'un mot clé
- Clé usb non détectée - Guide
- Clé d'activation windows 10 - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Verrouiller des cellules excel - Guide
- Liste déroulante excel - Guide
6 réponses
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
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
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 ?
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 ?
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
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
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 :(
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 :(
Bonjour,
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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?!
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?!
ç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!!!!
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!!!!