Guillemets dans macro excel

figatelix2B

Nouveau membre
Bonjour à tous
je voulais écrire au moyen d'une macro dans une cellule de ma feuille la formule suivante :
=ChLettres(Caisse!B13;"F")&" ("&Caisse!B13&" €) dans l'encaisse du traitement de table,"

J'ai donc écrit ceci :
Range("L25").Value = "=ChLettres(Caisse!B13;" & Chr$(34) & "F" & Chr$(34) & ")&" & Chr$(34) & " (&" & Chr$(34) & "&Caisse!B13&" & Chr$(34) & " €) dans l'encaisse du traitement de table,"

Hélas, le débogueur me donne une erreur d'excécution '1004'

Si quelqu'un a la solution (surement évidente, sauf pour moi) merci par avance
 

job3_14

Nouveau membre
Essaie ça....


Range("a1").Value = Worksheets("Caisse").Cells(13, 2).Value


cells(ligne,colonne)

ligne =13
colonne =2


Mais je ne sais toujours pas ce que représente CHLETTRES
 

figatelix2B

Nouveau membre
ChLettres est unne macro complémentaire qui transforme un nombre en chiffres en nombre en lettres.

La formule : =ChLettres('Caisse IV'!B13;"F")&" ("&'Caisse IV'!B13&" €) dans l'encaisse de l'indemnité de vivres,"
fonctionne très bien dans ma feuille.

Moi, je voudrais que cette formule soit réécrite grace à une macro chaque fois que la feuille est activée.
Mon script actuel (qui bug) est le suivant :

Private Sub Worksheet_Activate()
Range("L26").Value = "=ChLettres('Caisse IV'!B13;" + Chr$(34) + "F" + Chr$(34) + ")&" + Chr$(34) + " (" + Chr$(34) + "&'Caisse IV'!B13&" + Chr$(34) + " €) dans l'encaisse de l'indemnité de vivres,"
End Sub
 

figatelix2B

Nouveau membre
Mon problème doit venir du fait que la formule que je veux écrire grace à une macro contient des guillemets, d'où les chr$(34)
Mais j'ai du merder quelque part
 

figatelix2B

Nouveau membre
Bizarre !
La même macro sans le signe = avant ChLettres ne génère pas d'erreur (et si dans la feuille, je rajoute le signe = pour signaler qu'il s'agit d'une formule ça marche.)
Mais si je laisse le signe = dans la macro, ça bug
Au secours
 

figatelix2B

Nouveau membre
Exemple plus simple de mon problème.

Je veux écrire grace à une macro la fonction suivante dans la cellule A1 :

=TEXTE("pierre";)

qui affiche pierre.

Ma macro est écrite comme ceci mais donne un message d'erreur :

Private Sub Worksheet_Activate()
Range("A1").Value = "=texte(" + Chr$(34) + "pierre" + Chr$(34) + ";)"
End Sub

J'ai essayé de remplacer Value par Formula ; pareil

Sans le signe = en rouge dans l'exemple ça passe

si je remplace le signe = par Chr$(61) ça coince aussi
 

Freeman23

Expert
Salut,

Déjà avant de pouvoir faire ce genre de manipulation il faut trouver la correspondance entre le nom de la fonction Excel et celui de la fonction VBA équivalente.
Le VBA s'écrit toujours en anglais. par exemple la fonction somme doit s'écrire SUM()...
L'opérateur de concaténation de chaine de caractères est le &.
Si tu veux mettre un " dans une chaine de caractères il faut le doubler à l'intérieur de ta chaine ou mettre un '.

Code:
Private Sub Worksheet_Activate() 
    Range("A1" ).Value = "=texte(""" & "pierre" & """)" 
    Range("A2" ).Value = "=texte('" & "pierre" & "')" 
End Sub

Si tu cherches à associer à une cellule une formule il faut passer par la propriété .formula de l'objet Range.
 

zeb

Modérateur
Non. Des explications claires et en français doivent suffire. Ce site est un forum libre accessible par des gens biens comme vous qui aidez les autres, mais aussi par des salauds qui n'hésiteraient pas à en profiter si l'échange de fichiers potentiellement dangereux se généralisait. L'échange de fichiers Excel est donc à proscrire.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 064
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut