VBA remplacer des sigles par le nom complet

Résolu/Fermé
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012 - 14 juin 2012 à 10:13
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 - 16 juin 2012 à 16:07
Bonjour,
Est-ce qu'il y aurait quelqu'un qui pourrait trouver la solution à mon problème?
Le voilà
Dans un fichier excel j'ai 6 feuillets: sigles (qui contient en colonne A les abréviations, en colonne B les nom prénom et en colonne C les mails)
Casse1, Classe2, Classe3 Classe4, Classe5 qui contiennent les heures de cours et le nom du prof en sigle.
Je voudrais pouvoir remplacer tous les sigles de chaque feuille soit par le nom prénom (colonne B feuille sigle) soit par le mail (colonne C feuille sigle).


Je patauge... :-((

Merci d'avance et bonne journée
-- Luca --


A voir également:

9 réponses

ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
14 juin 2012 à 10:21
bonjour

je pense qu'il faut voir comment tes données sont organisées
peux tu envoyer ton fichier, au format excel 2003, sans données confidentielles sur cjoint.com et joindre le lien obtenu à ton prochain message

bonne suite
0
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012
14 juin 2012 à 10:53
Le fichier se trouve ici https://www.cjoint.com/?BFokYwrNZu3
Merci à l'avance pour votre aide.
0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
14 juin 2012 à 11:08
Q1. les sigles (2 lettres) à remplacer, commencent à partir de la ligne 5 (1°,2°,3°) ou 6 (4°,5°)?
Q2. que fait on des sigles "doubles" (FI PC par exemple)
Q3. tu veux les deux options au choix (remplacement par nom-prenom ou email)
Q4. Que fait on avec les largeurs de colonnes?
0
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012
14 juin 2012 à 11:44
Q1. disons de la ligne 2 (lignes à supprimer)
Q2. Je peux les traiter à la main
Q3. Oui, de préférence ;))
Q4. Indifférent

Grand merci
0
Christof422 Messages postés 871 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
Modifié par Christof422 le 14/06/2012 à 11:37
C'est pour le faire une seul fois ou alors le faire souvent?

Car j'ai une macro qui marche mais elle est très lourde...

Le premier pas vers la solution est la recherche. Notre ami Google connaît sûrement la solution...
0
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012
14 juin 2012 à 11:40
1 seule fois ;-))
Vraiment merci!
0
Christof422 Messages postés 871 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
14 juin 2012 à 11:47
Dim sigle As Variant
Dim ligne As Integer
Dim ligne2 As Integer
Dim nom As Variant


For ligne = 1 To 125
Sheets("Sigles").Select
sigle = Cells(ligne, 1).Value
nom = Cells(ligne, 2).Value


For ligne2 = 1 To 41
For colonne = 1 To 28

Sheets("1ère").Select
If Cells(ligne2, colonne).Value = sigle Then
Cells(ligne2, colonne).Value = nom
End If


Next colonne
Next ligne2
Next ligne



Voila, cela remplacera dans la feuille "1ère".


Modifier ensuite 1ère en 2ème etc. pour faire les autres feuilles.

Faire les 5 en même temps serai un peu lourd avec ce code.

Procédure:

Créer une macro
Copier/Coller le code
Lancer la macro
Attendre la fin de la macro
Si la macro est trop longue (plusieurs minute) la stopper en tapotant sur ESC.

Cordialement
0
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012
14 juin 2012 à 13:22
Merci beaucoup!
ça me va très bien.
J'ai ajouté
Application.ScreenUpdating = False
et c'est nettement plus rapide.

Merci
0

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

Posez votre question
blux Messages postés 26674 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 février 2025 3 327
14 juin 2012 à 13:24
Salut,

la fonction recherche() aurait sans doute pu convenir...
0
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012
14 juin 2012 à 13:31
Pourquoi pas?
S'il y a une autre solution qui me permet de ne pas retoucher le code pour chaque feuillet je suis preneur.

Merci beaucoup pour votre aide.

LC
0
Christof422 Messages postés 871 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 8 février 2015 212
14 juin 2012 à 14:06
Tu peux a la rigueur utliser mon code en faisant un copier coller de

Sheets("1ère").Select
If Cells(ligne2, colonne).Value = sigle Then
Cells(ligne2, colonne).Value = nom
End If


En modifiant juste le nom des sheets pour qu'il se fasse tous en même temps...
0
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012
14 juin 2012 à 21:30
Merci bien,
J'apprécie votre suggestion elle est aussi valable. Même longueur en exécution.

Bonne soirée
0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
Modifié par ccm81 le 14/06/2012 à 21:21
bonjour

un essai qui traite les 5 feuilles en bloc, avec retour à l'état initial
https://www.cjoint.com/?0Fovu6srjC6

à tester bien sûr!!

bonne suite
0
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012
14 juin 2012 à 21:36
Un grand merci c'est vraiment génial de pouvoir compter sur votre aide.
Là c'est la classe!
J'ai vraiment ce qu'il me fallait.
Je vais clore le sujet
Merci encore
0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
Modifié par ccm81 le 14/06/2012 à 21:43
attention j'ai modifie le lien à 21h21

de plus, il te faut modifier les deux dernières lignes de Retrouver

Set dikoNom = Nothing
Set dikoMail = Nothing
0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
16 juin 2012 à 14:35
re

avec un peu de ménage et la prise en charge des sigles doubles
https://www.cjoint.com/?0FqoHOs6XmQ

bonne journée
0
Thomas8080 Messages postés 15 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 16 juin 2012
16 juin 2012 à 15:52
Je ne sais pas comment vous remercier.
Un vrai travail de pro, je n'osais pas espérer autant.
Si vous étiez en Valais je vous aurais offert l'apéro!! :-)) Je sais maintenant que si j'ai un soucis VBA ccm81 c'est le bon copain à contacter.
Encore merci et bon dimanche
0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
16 juin 2012 à 16:07
de rien
le problème était intéressant et avait un petit gout d'inachevé !!!!
cordialement
PS. il reste quand même les "?" qui ne reviennent pas
0