Rechercher une valeur et la remplacer par le contenu d'une cellule

Résolu
marjo_eps Messages postés 3 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 10 novembre 2005 - 9 nov. 2005 à 23:26
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 - 12 nov. 2005 à 12:39
Bonjour à tous,



Je suis à la recherche, n'étant pas programmeuse moi-même, d'une macro
qui me permettrait de remplacer dans un tableau comme ci-dessous,
chaque lettre (A, B, etc...) par le nom d'équipe correspondant et
défini dans la 1ère partie de feuille (A = équipe 1 ...).

Si vous pouvez m'aider, c'est super !



Merci beaucoup



Marjorie



Exemple :



<col span=\"7\" style=\"width: 60pt;\" width=\"80\">
----

A,
équipe 1,
,
,
,
,
,

----

B,
équipe 2,
,
,
,
,
,

----

C,
équipe 3,
,
,
,
,
,

----

D,
équipe 4,
,
,
,
,
,

----

E,
équipe 4,
,
,
,
,
,

----

F,
équipe 5,
,
,
,
,
,

----

,
,
,
,
,
,
,

----

Journée,
1,
Date,
,
,
Lieu,
,

----

,
terrain 1,
terrain 2,
terrain 3,

----

Tour 1,
A,
F,
B,
E,
C,
D,

----

Tour 2,
A,
E,
F,
D,
B,
C

9 réponses

jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
10 nov. 2005 à 12:56
Bonjour

Je viens de faire ce code et il fonctionne bien.

Pour l'essayer place les lettes A B C ect... dans les colonnes B2:E20 et cliques sur le CommandButton.



Private Sub CommandButton1_Click()

MonTab(0) = "A"

MonTab(1) = "B"

MonTab(2) = "C"

MonTab(3) = "D"

MonTab(4) = "E"

MonTab(5) = "F"

MonTab1(0) = "Equipe 1"

MonTab1(1) = "Equipe 2"

MonTab1(2) = "Equipe 3"

MonTab1(3) = "Equipe 4"

MonTab1(4) = "Equipe 5"

MonTab1(5) = "Equipe 6"

Dim iCell As Range

Application.ScreenUpdating = False

For Each iCell In Range("B2:E20")

If iCell.Value = MonTab(0) Then

iCell.Value = MonTab1(0)

ElseIf iCell.Value = MonTab(1) Then

iCell.Value = MonTab1(1)

ElseIf iCell.Value = MonTab(2) Then

iCell.Value = MonTab1(2)

ElseIf iCell.Value = MonTab(3) Then

iCell.Value = MonTab1(3)

ElseIf iCell.Value = MonTab(4) Then

iCell.Value = MonTab1(4)

ElseIf iCell.Value = MonTab(5) Then

iCell.Value = MonTab1(5)



End If

Next iCell

Application.ScreenUpdating = True



End Sub



jpleroisse



Si une réponse vous convient, cloquez Réponse Acceptée.
3
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
10 nov. 2005 à 13:22
Re,

J'ai oublié, tu dois déclarer les tableaux.

Option Explicit

Dim MonTab(5) As String

Dim MonTab1(5) As String

'Ensuite le code du commandbutton.

jpleroisse



Si une réponse vous convient, cloquez Réponse Acceptée.
3
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
9 nov. 2005 à 23:49
Bonsoir,

Si je comprend bien, A est dans la colonne B, F dans la colonne C etc...??



jpleroisse
0
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006
10 nov. 2005 à 01:20
Regarde la fonction RechercheV dans excel...


Rien ne sert de courir, il faut partir à point

Jean de la fontaine
0

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

Posez votre question
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
10 nov. 2005 à 12:00
Si tu veux, je peux essayer de développer ton fichier excel, mais je ne comprends pas très bien ce que tu veux réaliser. J'ai déjà réalisé un exemple sur un fichier Excel, en pensant avoir réalisé ce que tu demandais ... mais il me faudrait une adresse mail pour que je t'envoie le classeur Excel en fichier joint.


Si tu veux, mail moi ton adresse à : [mailto:phil.lasch@free.fr phil.lasch@free.fr]


Bye
0
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
10 nov. 2005 à 13:52
Coucou,
D'après ce que j'ai compris, tu aimerais taper des lettres (A, B, C ...) à la place de Equipe, Equipe 2, Equipe 3 ... pour que la saisie soit plus rapide non ?!

Alors je te propose une autre solution, peut-être un peu plus conviviale.
Dans les cellules de A1 à A6, écris le nom de tes 6 équipes, fais cela :
A1 = Equipe 1
A2 = Equipe 2
.......................
A6 = Equipe 6

Ensuite, sélectionnes les cellules des deux lignes Tour 1 et Tour 2 qui contiennent des lettres de A à F.
Cliques sur Données puis Validation (menu d'Excel).
Dans le champ "Autoriser", utilise la liste déroulante et sélectionne "Liste".
Puis dans le champ "Source", clique sur l'espèce de carré avec la flèche rouge oblique, et sélectionnes les cellules de A1 à A6 (ou tapes ceci dans le champ : =$A$1:$A$6).
Enfin valide par "OK".

Ainsi, cliques sur une des cellules où tu voulais auparavant inscrire A, B, C ... et normalement, une liste déroulante apparaît avec Equipe 1 à Equipe 6. Sélectionnes l'équipe que tu souhaites et voilà ... tu n'es plus obligé de taper à chaque fois le nom de l'équipe ... et inutile de créer une macro pour cela. Dis moi si cela te conviens et si ça marche, merci d'avance !

Phil
0
marjo_eps Messages postés 3 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 10 novembre 2005
10 nov. 2005 à 22:47
Merci à tous de votre aide.

Je vais tester le code noté plus haut, j'envoie un petit mail pour tester le fichier excel...

MERCI !

Pour la dernière solution, ça ne marche pas dans mon cas... en fait,
c'est pour automatiser la saisie de formule de championnat. un même
fichier servira à créer des dizaines de championnats différents, avec
autant de dizaines d'équipes différentes pour chaque championnat.

Je vous tiens au courant.

en encore merci ;)
0
marjo_eps Messages postés 3 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 10 novembre 2005
10 nov. 2005 à 23:11
Re...

j'ai testé le code, ça marche super !

par contre, y a-t-il un moyen pour que je n'ai pas à entrer les noms
d'équipes dans le code mais dans la feuille et que la macro aille
chercher la correspondance entre les lettres et es noms d'équipe ?

en tout cas merci



marjo
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
12 nov. 2005 à 12:39
Bonsoir,

Dans cet exemple, j'ai mis le nom des équipes de E1 à E6 et les Lettes entre B8 et G20.

Il te suffit d'adapter à ton gout.



Option Explicit

Dim MonTab(5) As String

Dim MyCell(6) As String

Private Sub CommandButton1_Click()

MonTab(0) = "A"

MonTab(1) = "B"

MonTab(2) = "C"

MonTab(3) = "D"

MonTab(4) = "E"

MonTab(5) = "F"

Dim iCell As Range, MyCell As Range

Application.ScreenUpdating = False

For Each iCell In Range("B8:G20")

For Each MyCell In Range("E1:E6")



If iCell.Value = MonTab(0) Then

iCell.Value = MyCell(1)

ElseIf iCell.Value = MonTab(1) Then

iCell.Value = MyCell(2) 'MonTab1(1)

ElseIf iCell.Value = MonTab(2) Then

iCell.Value = MyCell(3)

ElseIf iCell.Value = MonTab(3) Then

iCell.Value = MyCell(4)

ElseIf iCell.Value = MonTab(4) Then

iCell.Value = MyCell(5)

ElseIf iCell.Value = MonTab(5) Then

iCell.Value = MyCell(6)

End If

Next MyCell

Next iCell

Application.ScreenUpdating = True

End Sub



jpleroisse



Si une réponse vous convient, cloquez Réponse Acceptée.
0
Rejoignez-nous