Replace : Num by Texte (Erreur d'execution 13)

Marcosoft

XLDnaute Nouveau
Bonjour,

Je suis nouveau sur le forum (Bonjour à tous !:))
Après de longue année sans pratiquer le VBA, je suis forcé de m'y replonger pour le boulot.

J'ai utiliser une petite macro toute bête qui a réussi à répondre à 90% de mes attentes. Mais dans le cas précis, je bloque.

Voici mon souci :

J'ai 2 feuilles.

Dans la feuil1, j'ai la correspondance
A B
NUM ->TEXTE DESCRIPTIF


Dans la feuil2, j'ai la liste des NUM que je veux remplacer par les textes descriptifs
A
NUM


Je me mets sur la feuil2 (5000 lignes au total) et lancer la macro :
Erreur d'execution 13
Incompatibilite de Type

L'erreur est dûe au différent caractère spéciaux contenus dans les descriptifs :
. ; , - etc...

Je veux bien évidement pouvoir récupérer les textes en l'état.
J'ai déjà essayé de formater ou convertir les colonnes dans tous les formats mais sans succès ??? :rolleyes:

Il doit sûrement y avoir des commandes spécifiques pour formater les zones de texte mais ma connaissance en vba atteint ses limites.:(

Merci de votre aide ;)
Marc
 

Pièces jointes

  • remplace.zip
    46 KB · Affichages: 24
  • remplace.zip
    46 KB · Affichages: 21
  • remplace.zip
    46 KB · Affichages: 23

Excel-lent

XLDnaute Barbatruc
Re : Replace : Num by Texte (Erreur d'execution 13)

Bonjour et bienvenu sur le forum Marcosoft,

Tu trouveras ci-joint une macro répondant à ta demande.

Comme dans ta feuille 2 tu avais pleins de référence qui ne figuraient pas dans ton tableau feuille 1, j'ai rajouté un contrôle (et pour être sûr que tu vois l'erreur dans la Feuil2, après exécution de la macro, la cellule concerné se colorie en jaune et la police se met en gras).

Par contre, j'ai pas vérifié s'il y avait des doublons! Sinon, rajouter 2-3 lignes dans la macro!

Les caractères spéciaux (caractère signifiant : 'saut de ligne'), ne pose aucun soucis à la macro ci-jointe.

Autant ta macro était concise et bien écrite autant la mienne est basic et longue, j'en ai presque honte! Mais heureusement qu'elle fonctionne, cela me remet un peu de baume au cœur :)

A te lire
 

Pièces jointes

  • Remplace modifié.zip
    48.8 KB · Affichages: 20

Catrice

XLDnaute Barbatruc
Re : Replace : Num by Texte (Erreur d'execution 13)

Bonjour,

Je propose également ceci :
Sub remplace()
Set Sourc = Sheets("Feuil1").Range("A1:" & Sheets("Feuil1").Range("A65536").End(xlUp).Address)
Set Dest = Sheets("Feuil2").Range("A1:" & Sheets("Feuil2").Range("A65536").End(xlUp).Address)
For Each X In Dest
Set c = Sourc.Find(X.Value)
If Not c Is Nothing Then X.Value = c.Offset(0, 1).Value
Next
End Sub
 
Dernière édition:

Marcosoft

XLDnaute Nouveau
Re : Replace : Num by Texte (Erreur d'execution 13)

Bravo à vous 2 :eek:;)

Certe le code de Catrice est un peu plus concis.
Mais les 2 fonctionnent sans accros. Ce que je n'ai pas réussi à faire ! :confused::p

Vos 2 codes reposent sur le même principe (Si trouvé alors var x=y) alors que je me faisais chier avec des copier/coller ou remplacer.

Merci, je vais gagner du temps la semaine prochaine.
Marcosoft :)
 

Discussions similaires

Réponses
2
Affichages
325
Réponses
4
Affichages
363

Statistiques des forums

Discussions
312 484
Messages
2 088 796
Membres
103 970
dernier inscrit
pepito59