Remplacement de caractères dans une variable

Résolu
900CBR -  
900CBR Messages postés 6 Statut Membre -
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

9 réponses

  1. 900CBR
     
    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...
    0
  2. ego
     
    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
    0
  3. ego
     
    la cellule B10 est en dur. il faut mettre range("B10").value pour lire la cellule
    0
  4. 900CBR Messages postés 6 Statut Membre
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 900CBR Messages postés 6 Statut Membre
     
    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.
    0
  7. ego
     
    c est quelle cellule qui contient les valeurs? c est laquelle qui contient la formule ? et ou tu veux afficher le resultat?
    0
  8. ego
     
    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
    0
  9. Cathy
     
    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
    0
  10. 900CBR Messages postés 6 Statut Membre
     
    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
    0