Copie d'une formule avec guillemets dans une cellule

Bonjour,

Je cale sur un bug totalement idiot depuis plusieurs heures. Auriez vous 2 minutes ?

Je crée une feuille où je dois écrire dans la case A2 : =SI(Feuil1!A1<$A$1;"n";"o") puis recopier sur la colonne.

Avec un texte court, ça marche très bien ! Mais avec le texte complet ça refuse de se copier dans la cellule.

J'ai fait un programme test avec juste le problème :

Sub Test()
Dim letexte As String
'
letexte = Chr(34) & "test" & Chr(34)
Cells(3, 1) = letexte ' j'obtiens bien "test" dans la cellule
'
letexte = "=SI(Feuil1!A1<$A$2;" & Chr(34) & "n" & Chr(34) & ";" & Chr(34) & "o" & Chr(34) & ")"

' ça bloque ici avec comme message "Erreur définie par l'application ou par l'objet"

' la variable letexte contient bien =SI(Feuil1!A1<$A$1;"n";"o")

Cells(2, 1) = letexte
Stop
End Sub

Merci

Bonsoir,

Je vois que ça ne passionne personne ... Pour vous essayer de motiver quelqu'un (s'il vous plaiiiiit ) La boite tourne avec toute une architecture de fichiers Excel : tous les matins on ouvre et fait calculer des fichiers qui calculent les composants nécessaires aux commandes, combien il nous reste de composants en stock en fonction ce qu'on a utilisé la veille et on regarde quelles commandes on peut compléter avec les composants en stock. L'atelier voudrait un fichier qui dit chaque matin quelle commande on peut faire avec les composants qu'on a. Je dois créer un nouveau fichier avec des infos d'un nombre variable de fichiers (les commandes) qui donne la liste des commande faisables (histoire que l'atelier ne soit plus encombré de trucs à moitié faits qui piquent des composants nécessaires à d'autres commandes).

Les calculs se font essentiellement au niveau Excel pour que n'importe qui puisse voir d'où vient un blocage. Donc on a peu de VBA, j'en utilise peu et je comprends bien que ma question est idiote pour des rois de VBA.

Le test que je mettrai dedans prend 3 lignes : c'est pas juste "si plus grand alors "o" sinon "n" ". Mais je n'arrive même pas à copier un test de base. Ok je suis une brêle en VBA. Mais s'il vous plaît, aidez nous ...

Bonsoir,

afin que le guillemet soit interprété comme un guillemet au sein d'une chaine de caractère sous VBA, il suffit d'ajouter un guillemet avant, donc pour écrire :
"=SI(Feuil1!A1<$A$1;"n";"o")", il faut sous VBA écrire : "=SI(Feuil1!A1<$A$1;""n"";""o"")", un guillemet supplémentaire avant chaque guillemet à écrire. Et quelque fois vous pouvez en avoir trois qui se suivent, par exemple si le n est issue d'une variable VBA : "=SI(Feuil1!A1<$A$1;"" " & n & " "";"o")"
en souligné bleu on a bien un guillemet de coupure de chaine un concatener, la variable N, un concatener un guillemet d'ouverture de chaine et avant et après on a les doubles guillemet afin que celui qui entoure la valeur de la variable dans la cellule soient considérés comme un guillemet, bref, il faut mettre un guillemet devant un guillemet afin qu'il soit considéré comme un guillemet et non pas comme une coupure de chaine.

Suis je assez clair ?

@ bientôt

LouReeD

Bonsoir,

Vous avez été très clair mais ça ne marche malheureusement pas. J'ai toujours le même problème : votre expression donne la bonne chaine de caractères dans une variable mais ne se recopie pas correctement ou n'est pas utilisable dans une cellule. J'ai toujours le m^me message d'erreur.

Voici le programme testé :

Sub Test8et1()
Dim letext1 As String
' Texte voulu dans la case Feuil2!A2 ( très simplifié) : "=SI(Feuil1!A1<$A$1;"n"; "o")"
'
letext1 = "=SI(Feuil1!A1<$A$1;""n"";""o"")"
Cells(2, 1).Formula = "=SI(Feuil1!A1<$A$1;""n"";""o"")"
Stop
End Sub

Merci beaucoup quand même pour votre réponse.

Bonjour,

j'ai oubliais l'essentielle, c'est une formule que vous voulez mettre dans une cellule, il faut donc le dire à VBA !

ActiveCell.FormulaLocal = "=SI(Feuil1!A1<$A$1;""n"";""o"")"
Si vous ne mettez pas local alors il faut écrire "IF" et non pas "SI"

enfin je pense, bon courage !

@ bientôt

LouReeD

Bonjour,

Ca marche ! Merci.

J'avais raté cette instruction dans la doc ...

Bonsoir,

on fini par y arriver ! Merci de votre retour et remerciement !

@ bientôt

LouReeD

Rechercher des sujets similaires à "copie formule guillemets"