VBA recherche et remplace

jimmy25

XLDnaute Nouveau
Bonjour,

Je travaille sur 2 fichiers :

l'un contient les 38 000 villes de france avec un numéro d'ordre (insee.xls)
l'autre des adresses avec le nom des villes (mag_brico.xls)

Le but est de remplacer le nom des villes dans mag_brico par le numéro d'ordre de la ville

Quand vous lirez mon code, vous verrez qu'il y a pas mal de triche das tout ça... (à lire plus bas)

Du coup le problème est un message d'erreur de type "espace insuffisant pour la pile", un truc dans le genre...

Questions :

1 : Est-il nécessaire de gérer les erreurs type

Si le nom de la ville recherché n'existe pas on oublie et on passe à la suite

Je sais faire du If Then, mais là j'ai une variable au milieu. Je ne sais pas lui dire

For Each cell In Selection
If selection.value=Variable Then
cell.Value = Replace(cell, Vil, Num, 1)
Else...

2 : Ensuite, je ne sais pas comment lui dire de changer de ville recherche. D'où la triche avec la suppression de la cellule de recherche initiale et A1 puis xl down

3 : plutôt que de demander l'exécution de la même macro sous un autre nom perpétuellement je sais qu'il y a une fonction qui fait ça

DoUntil ... Loop, mais je ne vois pas comment faire



Tout ça n'est pas très clean. Quelqu'un pourrait-il m'aider à faire le ménage ?

Merci pour votre aide !

Sub essai()

' Déclaration des variables
Dim Vil As String
Dim Num As String

' Recherche des variables
'La cellule A2 est vide

Vil = Range("A1").End(xlDown)
Num = Range("A1").End(xlDown).Offset(0, 5)

'Zone de remplacement
Windows("Mag_brico.xls").Activate
Range("F2").Select
Range(Selection, Selection.End(xlDown)).Select

'Remplacement
For Each cell In Selection
cell.Value = Replace(cell, Vil, Num, 1)
Next cell

Windows("insee.xls").Activate
Range("A1").End(xlDown).Select
ActiveCell.ClearContents

Application.Run ("essai2")

End Sub


Sub essai2()

même chose puis

Application.Run ("essai")

End Sub
 

Paritec

XLDnaute Barbatruc
Re : VBA recherche et remplace

Bonjour jimmy25, le forum
Si tu nous mettais un petit bout de fichier avec ce que tu as et ce que tu souhaites obtenir avec quelques explications claire, on pourrait te faire cela sans soucis.
a+
papou :)
 

Staple1600

XLDnaute Barbatruc
Re : VBA recherche et remplace

Bonjour

Quelqu'un pourrait-il m'aider à faire le ménage ?
Je peux déjà t'aider à faire le dans ton message. ;)

Utilises s'il te plait les balises BBCODE pour formater ton code VBA
Voici pourquoi

Sans les balises
Sub Macro1()
Dim a As Sring
a="Bonjour
MsgBox a, vbOKOnly, "Titre"
End Sub

Avec les balises suivantes entourant ton code VBA
[noparse]
VB:
[/noparse]Sub Macro1()
Dim a As String
a="Bonjour"
MsgBox a, vbOKOnly, "Titre"
End Sub[noparse]
[/noparse]

Tu obtiendras le résultat ci-dessous

VB:
Sub Macro1()
Dim a As String
a="Bonjour"
MsgBox a, vbOKOnly, "Titre"
End Sub
 

Discussions similaires

Réponses
1
Affichages
195

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 951
dernier inscrit
Misterb