fonction replace en VBA

clempic

XLDnaute Nouveau
Bonjour à tous,

Je viens vous demander un petit coup de main :
J’ai un tableau de bord sur lequel j’ai fait des formules somme si à plusieurs conditions.
Les formules dans mon tableau sont du type : accolade =SUM((VolumeJuillet)*(Num_Produit=$A18)) accolade

Je voudrais créer une zone de liste modifiable, à laquelle j’associerai un code me permettant de remplacer Juillet dans la formule de matrice par un autre mois, pour changer à ma guise les chiffres, par ceux d’un autre mois.

Voici mon code, associé à la combobox, qui me renvoit une erreur (j’ai pourtant enregistré la macro en automatique et ai récupéré le code, en y insérant juste des variables) :

Private Sub cmbmois_change()


Dim mois_nouveau As String

Dim mois_ancien As String

Range("j20:j200").Select

Selection.Replace What:=mois_ancien, Replacement:=mois_nouveau, LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

End Sub



Le message d’erreur est : « expected function or variable » (le mot selection dans les code est surligné )

J'espère avoir été claire.
Merci beaucoup de votre aide,
Bien à vous
Clémence
 

JNP

XLDnaute Barbatruc
Re : fonction replace en VBA

Bonjour Clempic et bienvenue :),
C'est pas le tout de déclarer des variables, il faut peut-être aussi songer à les remplir :p...
Code:
Private Sub cmbmois_change()
Dim mois_nouveau As String
Dim mois_ancien As String
mois_nouveau = cmbmois_change.Value
mois_ancien = [B][COLOR=red]???[/COLOR][/B]
Range("j20:j200").Select
Selection.Replace What:=mois_ancien, Replacement:=mois_nouveau, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
a plus de chance de marcher :D.
Pour les 3 ???, il faudrait voir à récupérer la valeur dans une cellule.
Bon courage :cool:
 

clempic

XLDnaute Nouveau
Re : fonction replace en VBA

oui pardon, j'ai copié le mauvais code :

voici le "bon", qui ne marche pas non plus..
Du coup, je me demande : est ce que c'est possible de mettre des variables dans la fonction replace en VBA?

Private Sub cmbmois_change()

Dim mois_nouveau As String
Dim mois_ancien As String

mois_nouveau = Range("c1").Value
mois_ancien = Range("c3").Value

Range("j20:j200").Select
selection.Replace What:=mois_ancien, Replacement:=mois_nouveau, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Merci beaucoup pour cette réponse éclair!!
 

JNP

XLDnaute Barbatruc
Re : fonction replace en VBA

Re :),
Je viens de faire des tests, il n'y a aucun problème pour utiliser des variables. Je pensais que ça venait des formules matricielles, mais même avec un mixte matricielle/normale, ça fonctionne chez moi.
Le plus simple serait que tu postes ton fichier (sans données confidentielles) :rolleyes:.
Bon courage :cool:
 

clempic

XLDnaute Nouveau
Re : fonction replace en VBA

Re:)
Voici le fichier
Les fonctions matrice sont dans les colonnes "estimé"
Mon but est de commander à l'aide de la combobox en haut à gauche, le mois.
Ainsi je pourrai visualiser suivant mes besoins, les chiffres du mois choisi.
Merci beaucoup de votre aide précieuse!!
Clémence
 

JNP

XLDnaute Barbatruc
Re : fonction replace en VBA

Re :),
Et voilà le travail :p...
Code:
Private Sub cmbmois_change()
Dim mois_nouveau As String
Dim mois_ancien As String
mois_nouveau = Range("c1").Value
mois_ancien = Range("c3").Value
Range[B][COLOR=red]("j14[/COLOR][/B]:j79").Replace What:=mois_ancien, Replacement:=mois_nouveau, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
[COLOR=red][B]Range("c3").Value = mois_nouveau[/B][/COLOR]
End Sub
J'ai eu du mal àtrouver pourquoi j'avais une erreur avec le selection, jusqu'à ce que je trouve une Sub selection() dans le Module1 :eek:. Ne JAMAIS utiliser de mots réservés par la syntaxe VBA pour des Sub ou des variables :rolleyes:... Donc pense à supprimer cette Sub.
J'ai corrigé les cellules et ajouté la modification de l'ancien mois ;).
Bon courage :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 167
Messages
2 085 901
Membres
103 027
dernier inscrit
Dridi Ahmed