Rechercher : dans
Par :

Remplacement de caractères dans une variable

Dernière réponse le 4 jan 2008 à 09:08:08 900CBR, le 27 déc 2007 à 17:17:02 
 Signaler ce message aux modérateurs

Bonjour à tous,

Voici mon problème:
J’ai une variable string où je souhaite remplacer les caractères« KV » (jamais identique en nombre de récurrence ni en position dans la formule) par des coordonnées d’une cellule excel :

Dim formule As string

formule = -0,285751 * KV ^ 6 + 2,462966 * KV ^ 5 + -7,536414 * KV ^ 4 + 9,37239 * KV ^ 3 + -3,6979 * KV ^ 2 + 2,0023 * KV + -0,267315

Comment procéder ?

Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « Remplacement de caractères dans une variable » dans :
Le remplacement de variables en shell Bash Voir =Le remplacement de variables= Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
LaTeX - Table de caractères VoirSymboles mathématiques Symboles fléchés Lettres grecques Note : certains caractères n'apparaissent pas sous certains navigateurs (notamment certaines versions de Internet Explorer), ils sont remplacés par un carré, la...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

900CBR, le 27 déc 2007 à 17:34:33

PS. J'ai oublié de préciser que le but est de retransformer cette formules modifié afin de pouvoir effectuer le calcul et que le lien avec la cellule dont on rentre les coordonnées se fasse bien.

Sub Test_modif_formule()

Dim formule As String
Dim formuleDef As String


'modification de la formule:
'Définir une variable string = à la formule précédente
formule = Range("F5").Value


'Faire une recherche de "KV" dans cette variable et le remplacer
formule = Replace(formule, "KV", "B10")

'Ajout des caractères=()
Range("G10").Formula ="=(" & formule & ")"

End Sub

Mon souci, le lien ne se fait pas avec la cellule "B10".

D'avance merci...

Répondre à 900CBR

2

ego, le 27 déc 2007 à 17:42:47

Dim i as integer, var as string, nvar as string

i=len(var) ca c est pour aller a donf
nvar = Replace(var, "KV", "VQ", 1, i, vbBinaryCompare) tu remplaces KV par VQ
et tu as ta nlle variable

Répondre à ego

3

ego, le 27 déc 2007 à 17:45:22

La cellule B10 est en dur. il faut mettre range("B10").value pour lire la cellule

Répondre à ego

4

900CBR, le 27 déc 2007 à 17:59:04

Merci ego de ta rapidité,

Je m'y prends sûrement mal, mais je n'arrive pas à faire marcher ta solution.
Peux tu encore m'éclairer ?


Sub Test_modif_formule()
Dim i As Integer
Dim var As String
Dim nvar As String

i = Len(var)

'Définir var = à la formule à modifier
var = Range("F5").Value


'Faire une recherche de "KV" dans cette variable et le remplacer (cellule"B10")
nvar = Replace(var, "KV", "B10", 1, i, vbBinaryCompare)

'Coller la formule modifiée dans la cellule
Range("G10").Formula = " =( " & nvar & " ) "

End Sub

Répondre à 900CBR

5

900CBR, le 28 déc 2007 à 10:37:08

Mon souci est de créer un lien excel entre la cellule "B10" et la formule qui est dans la cellule "G10" de manière à ce que la formule soit "autonome" et se réactualise toute seule sans macro.

Répondre à 900CBR

6

ego, le 28 déc 2007 à 14:11:17

C est quelle cellule qui contient les valeurs? c est laquelle qui contient la formule ? et ou tu veux afficher le resultat?

Répondre à ego

7

ego, le 28 déc 2007 à 14:23:59

Sub MaMacro()
Dim i As Integer, var As String, nvar As String, valeurG10 As Variant

i = Len(Range("B10")) 'ca c est pour aller a donf si la cellule B10 contient ta formule avec KV
valeurG10 = Range("G10").Value 'ici tu definis la valeur de G10
nvar = Replace(var, "KV", val, 1, i, vbBinaryCompare) 'tu remplaces KV par la valeur de G10 et tu as ta formule avec valeurG10 a la place de KV
ActiveCell.Value = nvar 'tu affiches le resultat sur la cellule que tu as surligné
'a la place de activecell, tu peux mettre range("A1") ou ce que tu veux.le changement de la valeur se ferait sur le changement de valeur de la cellule G10
'voila tu as de quoi avancer
End Sub

Répondre à ego

8

Cathy, le 3 jan 2008 à 17:03:12

Bonjour,



Vous étiez proche du résultat mais il faut utiliser FormulaLocal comme propriété

********

Sub Test_modif_formule()



Dim formule As String

Dim formuleDef As Variant



'Définir formule = à la formule à modifier récupérée en "F5"

formule = Range("F5").Value



'Faire une recherche de "KV" dans cette variable et le remplacer (cellule"B10")

formuleDef = Replace(Replace(formule, "KV", "B10"), " ", "")



'Coller la formule modifiée dans la cellule D15

Range("D15").FormulaLocal = "=" & formuleDef



End Sub

********



Cordialement

Répondre à Cathy

9

 900CBR, le 4 jan 2008 à 09:08:08

Merci beaucoup cathy,
Exactement ce que j'espérai faire...
Récap: On récupère une formule en tant que variable, on remplace des caractères de cette formule par une cellule Excel liée.
Solution par Cathy, le jeudi 3 janvier 2008 à 17:03:12
Merci à tous

Répondre à 900CBR