Résolu Résolu [VBA] Remplacer cellule par résultat formule qui y fait référence

Anthonymctm

XLDnaute Occasionnel
Bonjour le Forum ! :)

Je cherche à appliquer une formule à toutes les lignes d'une colonne et si possible à la place de la colonne dont elle fait référence.
Le résultat de la formule sera sous format texte (pas en formule)

La formule : =SI(GAUCHE(B1;4)="TEST";"TEST";GAUCHE(B1;9))

Dans l'exemple c'est B1 mais pour la ligne 2 ce sera B2 et ainsi de suite.
Résultat à afficher en texte en B1, puis à répéter sur toutes les lignes tant que les cellules B ne sont pas vides.

Voilà, ça parait simple mais je n'y suis pas parvenu :confused:
 
Ce fil a été résolu! Aller à la solution…

jmfmarques

XLDnaute Accro
Je sais bien c'est pour ça qu'il faudrait que le résultat initale en B1 soit sotcké temporairement puis remplacer par le nouveau résultat ^^
Tu voudras bien m'expliquer ce "machin"-là ? (pas à pas, s'il te plait)
 

Anthonymctm

XLDnaute Occasionnel
Tu voudras bien m'expliquer ce "machin"-là ? (pas à pas, s'il te plait)
Bah non je sais pas justement, mais je sais que c'est possible j'ai déjà bu des choses similaires ^^
Des trucs du style je calcul la valeur de la formule et ensuite je la colle en tant que texte
La ya pas de références circulaires puisqu'à aucun moment on a collé la formule on a uniquement collé le résultat ^^'
 

jmfmarques

XLDnaute Accro
Bah non je sais pas justement, mais je sais que c'est possible j'ai déjà bu des choses similaires
et "bu" chaud ou froid ?
pour rester sérieux : impossible, sauf à accepter de perdre la formule elle-même et utiliser en plus VBA.
Tu as beaucoup de chance de ne pas savoir comment, mais de savoir que c'est possible .
Je n'ai pas cette chance-là et sais que je ne l'aurai jamais (et pour cause)
Bonne continuation
 

Anthonymctm

XLDnaute Occasionnel
et "bu" chaud ou froid ?
pour rester sérieux : impossible, sauf à accepter de perdre la formule elle-même et utiliser en plus VBA.
Tu as beaucoup de chance de ne pas savoir comment, mais de savoir que c'est possible .
Je n'ai pas cette chance-là et sais que je ne l'aurai jamais (et pour cause)
Bonne continuation
Oui, après c'est dans le titre de mon post, je ne demande une aide que sur du VBA ^^
Si tu savais, a force de persévérance j'ai imbriqué des macros qui initialement semblaient impossible.
Ce forum est une mine d'or pour réussir à faire des choses complexes, mais la pour le coup on est sur une complexité minime je pense ^^'
 

jmfmarques

XLDnaute Accro
Ah !
mais puisque par vba, que viendrait alors faire la formule que tu as montrée ??

supprime-la donc de là où tu l'as mise et traite directement par VBA (non ?)

VB:
For Each c In Columns(2).SpecialCells(xlConstants)
  If Left(c.Value, 4) = "TEST" Then
    c.Value = Left(c.Value, 4)
  Else
    c.Value = Left(c.Value, 9)
  End If
Next
 
Ce message a été identifié comme étant une solution!

Anthonymctm

XLDnaute Occasionnel
Ah !
mais puisque par vba, que viendrait alors faire la formule que tu as montrée ??

supprime-la donc de là où tu l'as mise et traite directement par VBA (non ?)

VB:
For Each c In Columns(2).SpecialCells(xlConstants)
  If Left(c.Value, 4) = "TEST" Then
    c.Value = Left(c.Value, 4)
  Else
    c.Value = Left(c.Value, 9)
  End If
Next
Je l'ai mise parce que je sais la faire sous format normal, je sais pas comment retranscrire ça en vba ^^
Ça fonctionne niquel !

En fait je pensais qu'on pouvait écrire en vba la formule telle qu'on l'appliquerait directement sur la feuille, peut-être la convertir en anglais mais la convertir carément en VBA
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas