VBA remplacer des sigles par le nom complet

Résolu
Thomas8080 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention  
 
Le fichier se trouve ici https://www.cjoint.com/?BFokYwrNZu3
Merci à l'avance pour votre aide.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   212
 
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   Statut Membre Dernière intervention  
 
1 seule fois ;-))
Vraiment merci!
0
Christof422 Messages postés 871 Date d'inscription   Statut Membre Dernière intervention   212
 
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   Statut Membre Dernière intervention  
 
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 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

la fonction recherche() aurait sans doute pu convenir...
0
Thomas8080 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   212
 
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   Statut Membre Dernière intervention  
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention  
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention  
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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