VBA Remplacer

fileofish

XLDnaute Occasionnel
Bonjour le forum,

J'ai un petit soucis sur une macro:
Supposons qu'en A1 j'ai le chiffre : 3
En A2 : 4


Je souhaiterais que le chiffre que j'ai en A1 suivi de "mois" soit remplacé par le chiffre que j'ai en A2 suivi de "mois"


Windows("Import Final.xlsx").Activate
Columns("C:C").Select
Selection.Replace What:="3 mois", Replacement:="4 mois", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("D6").Select


Je ne sais pas comment remplacer la valeur Fixe (3 mois et 4 mois) que j'ai dans le code par une variable (A1 & A2)

Si vous avez une solution ca serait super
Merci
Philippe
 

CPk

XLDnaute Impliqué
Re : VBA Remplacer

Bonjour la solution est (je pense) assez simple. Ce qui va aller en votre faveur c'est de nous joindre un fichier modèle pour que l'on puisse anticiper certaines problématiques. Moi j'irai au plus simple et j'aurai comme raisonnement A1 = A2 & " Mois". Mais nous ne connaissons pas le contexte du fichier donc il existe plusieurs possibilités à exploiter.
 

CPk

XLDnaute Impliqué
Re : VBA Remplacer

Bonjour gosselien, c'est pertinent dans les deux cas (vba/formule) pour l'utilisation futur de la donné.
Mais en VBA, j'ai un vague souvenir d'une fonction native qui permet de sélectionner que le chiffre
 

fileofish

XLDnaute Occasionnel
Re : VBA Remplacer

Bonjour,

En effet avec un fichier ce sera plus facile.
Dans la colonne D (Qui fait référence à un autre classeur) il y a à l'intérieur l'onglet 3 mois qui fait référence au fichier Pays 2016
Je souhaiterais pouvoir changer le fameux 3 mois par un autre mois
J'ai donc mis 2 cellules en M2 et N3

Ex : Si je mets en N2 5 , je souhaite que la colonne D il n'y est plus ...3 mois mais 5 mois.

Si je ne suis pas clair ce que je comprendrai au vu de ma piètre explication n'hésitez pas

Merci Philippe
 

Pièces jointes

  • Remplacer ED.xlsx
    10.4 KB · Affichages: 32

CPk

XLDnaute Impliqué
Re : VBA Remplacer

Bonjour, dans vos cellules jaunes vous mettez vos noms de feuilles comme elles sont dans les autres classeurs puis vous cliquez sur remplacer.

Je ne peux pas réellement tester mais les expressions ont l'air d'être juste.
 

Pièces jointes

  • Remplacer ED.xlsm
    16.6 KB · Affichages: 34

CPk

XLDnaute Impliqué
Re : VBA Remplacer

Essayez celle-ci à la place

Code:
Sub remplacer()
Dim trouve As Range, dl&

With Feuil1
dl = .Cells(Rows.Count, 1).End(xlUp).Row
Set trouve = Range(.Cells(1, 4), .Cells(dl, 4)).Find(.[M2], LookIn:=xlFormulas, lookat:=xlPart)
If Not trouve Is Nothing Then
fa = trouve.Row
Do
trouve.Formula = Replace(trouve.Formula, .[M2], .[N2], , , vbTextCompare)
Set trouve = .Columns(4).FindNext(trouve)
Loop While Not trouve Is Nothing And trouve.Row <> fa
End If
End With
End Sub
 

fileofish

XLDnaute Occasionnel
Re : VBA Remplacer

Bonjour CPK, Le forum

Même si on supprime les formules en (D2 : D11) et que l'on met en (D2 : D11) la valeur qui est en M2. Le changement s'opère avec la valeur qui est en N2 mais à la fin de la macro, il y a ce petit message d'erreur.

Merci encore
Philippe
 

fileofish

XLDnaute Occasionnel
Re : VBA Remplacer

Bonjour CPK, Le forum,


Dans le fichier joint j'ai enlevé toutes les formules.
J'ai simplement laissé du texte.

En lançant la macro le changement fonctionne bien (merci CPK) mais à la fin toujours ce message d'erreur

Encore merci
Philippe
 

Pièces jointes

  • Remplacer ED (1).xlsm
    17.4 KB · Affichages: 25

Discussions similaires

Réponses
1
Affichages
121

Statistiques des forums

Discussions
312 198
Messages
2 086 151
Membres
103 133
dernier inscrit
mtq