Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2012, 11h46   #1
Invité régulier
 
Homme
SAS automation
Inscription : juin 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : SAS automation
Secteur : Distribution

Informations forums :
Inscription : juin 2011
Messages : 49
Points : 7
Points : 7
Par défaut convertir formule en texte

Bonjour à tous,

J'espère être au bon endroit.
J'ai une petite question j'ai dans une cellule Excel un formule et j'aimerais convertir cette formule en texte afin de garder une trace de cette formule et pouvoir l'afficher en entière comme étant du texte.
J'ai essayé de rajouter " ' " mais ensuite j'ai besoin de me resservir de cette formule, avec une macro.
Code :
Range("ANALYSE_POLES").Formula = Range("FORMULAS_POLES").Value
Est ce que vous avez une piste ?
Merci
Elcocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 12h34   #2
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Bonjour,

Pour l'affichage de la formule au format texte :
Code :
Range("ANALYSE_POLES").Value = "'" & Range("ANALYSE_POLES").Formula
Pour la conversion de la formule (au format texte) en formule active :
Code :
Range("ANALYSE_POLES").Formula = Range("ANALYSE_POLES").Formula
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/01/2012, 13h33   #3
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
Bonjour,

Dans la même idée que BlueMonkey, mais sans l'apostrophe.

Code :
1
2
3
 
Range("ANALYSE_POLES").NumberFormatLocal = "@"
Range("ANALYSE_POLES").Value = Range("ANALYSE_POLES").FormulaLocal
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/01/2012, 16h05   #4
Invité régulier
 
Homme
SAS automation
Inscription : juin 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : SAS automation
Secteur : Distribution

Informations forums :
Inscription : juin 2011
Messages : 49
Points : 7
Points : 7
Bonjour,

malheureusement je viens d'essayer vos codes mais j'ai un message d'erreur Type mismatch.

Pourtant sur un nouvelle Excel dela marche sans soucis.
Elcocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 19h51   #5
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Bonsoir,

Pour reproduire le problème peux-tu poster la forumle se trouvant en Range("ANALYSE_POLES") stp.

Citation:
J'ai un message d'erreur Type mismatch.
Sur cette ligne ?
Code :
Range("ANALYSE_POLES").Value = "'" & Range("ANALYSE_POLES").Formula
ou bien celle-là ?
Code :
Range("ANALYSE_POLES").Formula = Range("ANALYSE_POLES").Formula
ou bien encore sur l'exemple de Jfontaine ?
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 20h11   #6
Invité régulier
 
Homme
SAS automation
Inscription : juin 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : SAS automation
Secteur : Distribution

Informations forums :
Inscription : juin 2011
Messages : 49
Points : 7
Points : 7
L'erreur venait lorsque j'ai écris cette formule

Code :
Range("FORMULAS_POLES").Value = "'" & Range("ANALYSE_POLES").Formula
mais aussi celle là
Code :
Range("ANALYSE_POLES").Value = "'" & Range("ANALYSE_POLES").Formula
et celle de Jfontaine.
Elcocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 20h48   #7
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Ok.

Et quel est le texte (ou la formule) qui se trouve sous Excel (pas l'editeur de code VBA) dans la plage désignée par le nom ANALYSE_POLES ?
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 20h59   #8
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
Je percute seulement maintenant que tu utilises une plage nommée.

Essais de faire la manipulation pour chaque cellules de la plage

Code :
1
2
3
4
Dim rg As Range
For Each rg In Range("FORMULAS_POLES")
    rg.Value = "'" & rg.Formula
Next rg
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/02/2012, 09h07   #9
Invité régulier
 
Homme
SAS automation
Inscription : juin 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : SAS automation
Secteur : Distribution

Informations forums :
Inscription : juin 2011
Messages : 49
Points : 7
Points : 7
La formule est un peu compliquée car c'est une somme de somme si.

Je vais tester la dernière méthode et je vous tiendrais au courant.

encore Merci pour vos réponses

merci pour tous je viens d'essayer la nouvelle version et tout est ok.

Voici ma version finale

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub copy_formules()
 
Range("TEXTE") = FTEXT(Range("FORMULE"))
 
End Sub
 
Function FTEXT(f As Range)
    Dim rg As Range
For Each rg In f
    If rg.HasFormula Then
        FTEXT = "'" & rg.Formula
    Else: FTEXT = rg
    End If
    Next rg
End Function
Elcocco est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h14.


 
 
 
 
Partenaires

Hébergement Web