Ecrire une fonction dans une cellule à partir d'un code VBA

Bonjour,

Dans le cadre de mon travail je souhaiterais automatiser certains fichiers excel, cependant je suis une bille en langage VBA, je pioche quelques trucs sur internet et j'ai fait le code suivant :

Sub macro_exporter_resultat_creol()

'1 ou A = Nom du site
'26 ou Z = Débit
'27 ou AA = Type d'accès
'37 ou AK = Zone Tarifaire
'38 ou AL = Type de Tarification
'BH = Colonne avec fonction

'Ecrire la fonction dans la cellule
Sheets(4).Select
Range("BH3:BH" & Cells(Rows.Count, 2).End(xlUp).Row).Select
Selection.FormulaLocal = "=SI(SIERREUR(CHERCHE("travaux";DROITE(AO3;NBCAR(AO3)-CHERCHE(": 0";AO3)-12));SIERREUR(DROITE(GAUCHE(AM3;CHERCHE("possible";AM3)+7);NBCAR(GAUCHE(AM3;CHERCHE("possible";AM3)+7))-CHERCHE("=";GAUCHE(AM3;CHERCHE("possible";AM3)+7))-1);"Impossible"))=5;"Travaux commencés";SIERREUR(CHERCHE("travaux";DROITE(AO3;NBCAR(AO3)-CHERCHE(": 0";AO3)-12));SIERREUR(DROITE(GAUCHE(AM3;CHERCHE("possible";AM3)+7);NBCAR(GAUCHE(AM3;CHERCHE("possible";AM3)+7))-CHERCHE("=";GAUCHE(AM3;CHERCHE("possible";AM3)+7))-1);"Impossible")))"

'Copier colonne A et coller dans nouvelle feuille
Sheets(4).Select
Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Copy

Sheets.Add After:=Worksheets(Worksheets.Count())
Sheets(Worksheets.Count()).Select
Columns(1).Select
ActiveSheet.Paste

'Copier colonne Z et coller dans nouvelle feuille
Sheets(4).Select
Range("Z2:Z" & Cells(Rows.Count, 1).End(xlUp).Row).Copy

Sheets(Worksheets.Count()).Select
Columns(2).Select
ActiveSheet.Paste

'Copier colonne AA et coller dans nouvelle feuille
Sheets(4).Select
Range("AA2:AA" & Cells(Rows.Count, 1).End(xlUp).Row).Copy

Sheets(Worksheets.Count()).Select
Columns(3).Select
ActiveSheet.Paste

'Copier colonne AK et coller dans nouvelle feuille
Sheets(4).Select
Range("AK2:AK" & Cells(Rows.Count, 1).End(xlUp).Row).Copy

Sheets(Worksheets.Count()).Select
Columns(4).Select
ActiveSheet.Paste

'Copier colonne AL et coller dans nouvelle feuille
Sheets(4).Select
Range("AL2:AL" & Cells(Rows.Count, 1).End(xlUp).Row).Copy

Sheets(Worksheets.Count()).Select
Columns(5).Select
ActiveSheet.Paste

End Sub

J'aimerais bien ajouter une fonction Excel dans une cellule, cette fonction est connue et fonctionne dans les fichiers excel lorsque je la rentre à la main, ici dans le langage VBA il y a une erreur de syntaxe (à la ligne 12) et je ne vois pas pourquoi

Erreur de syntaxe et surligne en jaune la première ligne "Sub ...()"

et la ligne 12 dans laquelle j'introduit la formule est rouge

Pouvez-vous me dire pourquoi il y a une erreur svp

Merci d'avance

Bonjour,

Il faut doubler les guillemets dans la formule :

Selection.FormulaLocal = "=SI(SIERREUR(CHERCHE(""travaux"";DROITE(AO3;NBCAR(AO3)-CHERCHE("": 0"";AO3)-12));SIERREUR(DROITE(GAUCHE(AM3;CHERCHE(""possible"";AM3)+7);NBCAR(GAUCHE(AM3;CHERCHE(""possible"";AM3)+7))-CHERCHE(""="";GAUCHE(AM3;CHERCHE(""possible"";AM3)+7))-1);""Impossible""))=5;""Travaux commencés"";SIERREUR(CHERCHE(""travaux"";DROITE(AO3;NBCAR(AO3)-CHERCHE("": 0"";AO3)-12));SIERREUR(DROITE(GAUCHE(AM3;CHERCHE(""possible"";AM3)+7);NBCAR(GAUCHE(AM3;CHERCHE(""possible"";AM3)+7))-CHERCHE(""="";GAUCHE(AM3;CHERCHE(""possible"";AM3)+7))-1);""Impossible"")))"

Merci pour votre réponse rapide et extrêmement efficace !

Encore un grand merci

Très cordialement

Rechercher des sujets similaires à "ecrire fonction partir code vba"