Erreur sur l'affection d'une valeur à une cellule

Bonjour,

Je souhaite affecté une formule à une cellule excel à partir du contenu d'une autre cellule et d'une chaine de caractère. Pour cela, j'ai utilisé cette commande :

ActiveCell.FormulaR1C1 = "=" & Cells(3, 3) & "str"

Sauf que j'ai une erreur d'exécution (1004) lorsque le format de la cellule est au format standard, la seule façon de ne pas avoir de problème est de mettre la cellule au format texte. Cependant la valeur que je donne à cette cellule est une formule et j'aimerai donc avoir le résultat.

Pouvez-vous m'aider ?

Je vous remercie grandement pour votre aide !

AL

bonjour,

que contient cells(3,3) ? quel est alors la formule attendue dans activecell ?

Bonjour,

Je viens de modifier mon message car j'ai résolu ce problème là, la cellule Cells(3,3) contient une chaine de caractère mais le format de la cellule était standard et au format texte cela fonctionne. Mais du coup est apparu un second problème qui est maintenant dans mon message actuel.

Je vous remercie vraiment pour votre réponse !

AL

Bonjour,

peux-tu mettre un classeur représentatif de ce que tu veux faire ? J'ai pas tout compris, à vrai dire rien du tout.

Bonjour,

Si tu veux écrire une formule dans la cellule active qui reprend le contenu de la cellule C3 (coordonnées 3,3) avec concaténation d'une chaîne de caractères (ajout du mot "Bonjour" dans l'exemple, je te propose 2 solutions:

1 : ActiveCell.FormulaR1C1 = "=RC[-2] & "" Bonjour """

petit problème les coordonnées sont relatives (ici je suis positionné en E2)

2: ActiveCell.FormulaR1C1 = "=INDIRECT(ADDRESS(3,3)) & "" Bonjour"""

Là ça fonctionne en coordonnées absolues

Les guillemets à l'intérieur des guillemets c'est normal !!! (syntaxe un peu barbare)

Cordialement,

Merci à vous deux !

Alors voilà en pièce jointe un exemple de ce que je veux faire. Les données que je traite sont confidentielles donc j'ai beaucoup simplifié, j'espère que ce sera suffisant clair. J'ai commenté dans le script vba ce que je veux faire.

GNIN, la deuxième formule (qui m'intéresse le plus) ne marche pas chez moi..

1yxz-xz-forum.xlsx (10.62 Ko)

bonjour,

ceci fonctionne chez moi, j'ai mis le format de la cellule en "général"

Sub Recuperation_des_donnees()
'
    Dim basededonnees
    Dim casearemplir
    Dim grilleaudit
    Dim cheminaccesgrille As String
    Dim cheminacces
    Dim ligne
    Dim colonne
    Dim i
    Dim lgcheminacces
    basededonnees = "chemin d'accès du fichier base de données"
    'la cellule prend la valeur du chemin d'accès du fichier grille d'audit YYZ_XY_forum
    Range("A3") = Application.GetOpenFilename
    cheminaccesgrille = Range("A3")
    lgcheminacces = Len(cheminaccesgrille)
    'MsgBox cheminaccesgrille
    'la cellule prend la valeur du chemin d'accès du dossier contenant le fichier grille d'audit
    Range("C3") = Left(cheminaccesgrille, InStrRev(cheminaccesgrille, "\"))
    'la cellule prend la valeur du nom du fichier grille d'audit
    Range("B3") = Mid(cheminaccesgrille, InStrRev(cheminaccesgrille, "\") + 1)
    ligne = 3
    colonne = 4

    'cette commande est censée faire le lien entre la cellule D4 de l'onglet FERTI de la grille d'audit et
    'la cellule D2 de la base de données mais comme cela renvoie une chaine de caractère, cela ne calcule pas la formule
   Cells(ligne, colonne).Formula = "='" & Cells(3, 3) & "[" & Cells(3, 2).Value & "]FERTI'!$D$4"

End Sub

Merci beaucoup, cela marche chez moi aussi ! Vous venez de m'enlever une belle épine du pied, et de me gagner un temps précieux pour la suite de mon stage !

Bonne journée à vous

Anne-Lise

J'ai un nouveau problème, je voulais ajouter deux cellules dans la commande mais cela ne marche pas. J'ai essayé ces deux formulations mais aucune ne marche.

addition deux cellules
Merci pour votre aide !
AL
addition deux cellules
Merci pour votre aide !
AL

bonjour,

il manque une indication de colonne et un ' pdans la référence $$52, donc remplace "+" par "+'" et mettre la colonne en les 2 $$. A l'avenir, merci de ne pas mettre de photo ou d'image mais un fichier ou à minima le code sous forme de texte.

Merci beaucoup cela fonctionne parfaitement ! J'ai (j'espère) une dernière question, est ce que l'on peut intégrer une fonction SI à cette commande, je vous ai mis un exemple de ce que je souhaite faire dans la macro du fichier "base_de_donnees_forum". Le second fichier est le même que dans les commentaires précédents mais si au cas ou vous en avez besoin je vous le remet.

Merci encore !

0yxz-xz-forum.xlsx (10.62 Ko)

re-bonjour,

voici

Cells(ligne, colonne).Formula = "=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]Exploitation'!$C$54="""",""non"",""oui"")"
        

Merci beaucoup pour votre aide, il me reste une dernière question, cette commande ne marche pas et je pense que c'est parce que je n'ai pas compris le rôle des guillemets à l'intérieur de guillemets (par exemple pour l'écriture de la condition de la fonction IF).

Merci d'avance !

Cells(ligne, colonne).Formula = "=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$30=""1"",""bga"",""=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$31=""1"",""corpen"",""apparent"")"")

bonjour,

pour mettre un guillemet dans une variable string, il faut dédoubler le guillemet.

Cells(ligne, colonne).Formula = "=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$30=""1"",""bga"",IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$31=""1"",""corpen"",""apparent""))"

Ok super merci beaucoup, c'était l'information qu'il me manquait !

Le code que vous m'avez envoyé ne fonctionne pas, le logiciel met automatiquement un guillemet à la fin :

'Ce que vous avez envoyé :
Cells(ligne, colonne).Formula = "=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$30=""1"",""bga"",""=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$31=""1"",""corpen"",""apparent"")"")
'Ce que Excel met automatiquement : 
Cells(ligne, colonne).Formula = "=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$30=""1"",""bga"",""=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$31=""1"",""corpen"",""apparent"")"")"

Merci encore

Anne-Lise

Bonjour,

ce que j'ai envoyé c'est ceci (c'est sur une seule ligne !) et cela fonctionne bien pour autant que ligne, colonne et les cellules(B3 et C3) contiennent les valeurs qui conviennent.

Cells(ligne, colonne).Formula = "=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$30=""1"",""bga"",IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$31=""1"",""corpen"",""apparent""))"

donc pas ceci comme tu l'écris erronément.

'Ce que vous avez envoyé :
Cells(ligne, colonne).Formula = "=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$30=""1"",""bga"",""=IF('" & Cells(3, 3) & "[" & Cells(3, 2) & "]FERTI'!$B$31=""1"",""corpen"",""apparent"")"")

Ah effectivement je me suis trompée en copiant le code !

Merci beaucoup, désolée pour cette erreur.

Anne-Lise

Rechercher des sujets similaires à "erreur affection valeur"