Se connecter avec
S'enregistrer | Connectez-vous

Guillemets dans macro excel

Dernière réponse : dans Programmation

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

Autres pages sur : guillemets macro excel

Lassé par la pub ? Créez un compte

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

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

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 '.

  1. Private Sub Worksheet_Activate()
  2. Range("A1" ).Value = "=texte(""" & "pierre" & """)"
  3. Range("A2" ).Value = "=texte('" & "pierre" & "')"
  4. End Sub


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

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.
Lassé par la pub ? Créez un compte