Demande aide syntaxe recalcitrante [Résolu]

Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 6 janv. 2012 à 00:08 - Dernière réponse :
Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 9 janv. 2012 à 12:39
Bonjour à toutes et à tous,

Je travaille sur un fichier dont la formule d'une cellule est renseignée par une macro.

Le fonctionnement est le suivant, sur une sheet j'ai une case à cocher, j'ai affecté a une cellule ( DFPP_VIERGE!I15) l’état de cette case (cochée vrai/ décochée Faux)
Dans une autre cellule (DFPP_VIERGE!G12) , figure un commentaire.


je veux, en fonction de l'état de la case a cocher, placer dans une tierce cellule le contenu de DFPP_VIERGE!G12 en y intégrant en fonction de l'état de la case à cocher l'information texte "décentrage".



La formule de la tierce cellule renseignée hors macro (et qui fonctionne ) est :

SI(DFPP_VIERGE!I15VRAI;"decentré " & DFPP_VIERGE!G12;DFPP_VIERGE!G12)



Ma question est, quelle syntaxe dois-je utiliser pour faire écrire cette formule par la macro dans la cellule en question?
Pour information, la sheet DFPP_VIERGE sera identifiée dans la macro par la variable : nomnouvelledfpp???


J'ai fait différents tests mais le texte "decentré" me pose problème (à cause des guillemets qui polluent la syntaxe)

Merci de votre aide.
Afficher la suite 

Votre réponse

31 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 6 janv. 2012 à 01:12
3
Merci
ou encore (pareil) genre :

 With Worksheets("Feuil1")
    Worksheets("Feuil2").Range("A1").Value IIf(.Range("A2") True, "decentré " & .Range("A3").Value, .Range("A3").Value)
  End With


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 6 janv. 2012 à 06:57
3
Merci
Ecrire la formule par macro ?

Range(...).Formula = "=IF(DFPP_VIERGE!I15, "decentré ") & DFPP_VIERGE!G12


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de Renfield
Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 9 janv. 2012 à 08:19
3
Merci
"""

tu as une guillemet de trop

la concaténation doit faire partie de la formule

activecell.formula="=IF(B4, ""décentrage "" & C4, C4)"

et non

activecell.formula="=IF(B4, ""décentrage """ & C4", C4)"

donc, dans ton cas :

"=IF(" & nomnouvelledfpp & "!I15, ""Décentrage "" & " & nomnouvelledfpp & "!G12, " & nomnouvelledfpp & "!G12)"



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 6 janv. 2012 à 00:11
0
Merci
Ah, j'oubliais,

La cellule que rempli la macro n'est pas sur la même sheet que les deux autres cellules :
DFPP_VIERGE!I15
DFPP_VIERGE!IG12

qui elles appartiennet a la même sheet.

Voila, merci de votre aide.
Commenter la réponse de ZEFRAM28
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 6 janv. 2012 à 00:44
0
Merci
Bonjour,

Montre donc le code de ta macro !

S"il s'agit de faire figurer les guillemets, il faut y écrire """decentré""" et non "decentré", comme dans cet exemple :
MsgBox """decentré""" & vbCrLf & "decentré"


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 6 janv. 2012 à 01:01
0
Merci
Salut

Regarde la fonction If-Then-Else
If Sheets("DFPP_VIERGE").Range("I15").Value = True Then
    Sheets("L'autre feuille").Range("A1").Value = _
         "décentré " & Sheets("DFPP_VIERGE").Range("G12").Value
Else
    Sheets("L'autre feuille").Range("A1").Value = _
         Sheets("DFPP_VIERGE").Range("G12").Value
End If

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 6 janv. 2012 à 09:58
0
Merci
Bonjour à tous,

Merci pour vos propositions, cela fonctionne maintenant.

Bravo aussi @ VBFRANCE.COM, un site d'utilité publique

ZEFRAM28
Commenter la réponse de ZEFRAM28
Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 6 janv. 2012 à 14:51
0
Merci
Oups,

Désolé d'avoir crié victoire trop tôt.

je dois preciser que je suis en Excel 2003 SP2 / VBA V6.3



ci-dessous la partie de code que je reprends :

With Sheets.item(nomfeuille)
ancienne ligne ne prennant pas en compte la case cochée / décochée
.Cells(numligne, 16).Formula = "=" & nomnouvelledfpp & "!G12" 'Solution
Nouvelle ligne prennant en compte la case cochée / décochée
.Cells(numligne, 16).Formula = "=si(" & nomnouvelledfpp & "!I15=vrai;Décentrage " & nomnouvelledfpp & "!G12;" & nomnouvelledfpp & "!G12)" 'Solution
End With

Je n'ai plus d'érreur mais la formule ne s'ecrit pas dans la cells(numligne,16)


Question :

1 - La syntaxe vous semble t'elle correcte?
2 - une idée sur le fait que la formule ne soit pas écrite?

Merci.
Commenter la réponse de ZEFRAM28
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 6 janv. 2012 à 15:31
0
Merci
pas confondre IF et SI ...

Formula n'equivaut pas FormulaLocal

regarde le code que je t'ai passé, il est international...


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 6 janv. 2012 à 16:43
0
Merci
si ===>> IF
Décentrage " ===>> ""Décentrage """ === >> ( je t'en avais pourtant parlé !)
tous tes ; ===>> ,

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 6 janv. 2012 à 17:13
0
Merci
Bonjour Renfeild,

Mon objecit est de retrouver à terme dans la cellule .Cells(numligne, 16). la formule suivante :

SI(DFPP_xx!I15VRAI;"decentré " & DFPP_xx!G12;DFPP_xx!G12)

Cette formule tapée à la main dans la cellule (numligne, 16) fonctionne parfaitement.

je rappelle que DFPP_xx est géré par la variable nomnouvelledfpp
(ce nom étant incrémenté au fure et a mesure de l'ajout de feuilles dans le classeur)


Votre proposition ne correspond pas vraiment à ma demande.

il faut tester le critère .Cells(numligne, 16).Formula = "=si(" & nomnouvelledfpp & "!I15=vrai;.....

Deux possibilités :

1 - soit la condition n'est pas validée (Vrai = faux)
alors .Cells(numligne, 16) prends la valeur de DFPP_xx!G12".

2 - soit soit la condition est validée (Vrai = vrai)
Alors idem mais on fait précéder le resultat par le texte décentrage


Je n'arrives pas à faire ecrire cette fonction :
=SI(DFPP_xx!I15=VRAI;"decentré " & DFPP_xx!G12;DFPP_xx!G12)
dans la cellule en question par la macro VBA

j'en suis ici pour le moment mais cette ligne ne semble pas fonctionner (extrait de la macro):

With Sheets.item(nomfeuille)
.Cells(numligne, 16).Formula = "=si(" & nomnouvelledfpp & "!I15=vrai;Décentrage " & nomnouvelledfpp & "!G12;" & nomnouvelledfpp & "!G12)" 'Solution
End With

Merci du temps que vous voulez bien m'accorder.
Commenter la réponse de ZEFRAM28
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 6 janv. 2012 à 17:22
0
Merci
Relis le message de Renfield, ainsi que mon dernier message, auquel j'ajoute :
vrai ===>> TRUE


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 6 janv. 2012 à 17:25
0
Merci
Puis va constater comment cela est finalement écrit ! (en français) !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 6 janv. 2012 à 17:28
0
Merci
@ ucfoutu:

désolé, je n'avais pas compris ton poste.

j'ai testé cette ligne de commande :

.Cells(numligne, 16).Formula = "=si(" & nomnouvelledfpp & "!I15=vrai,""Décentrage """ & nomnouvelledfpp & "!G12," & nomnouvelledfpp & "!G12)" 'Solution clotaire


elle ne fonctionne pas plus (rien d'inscrit dans la cellule ou devrait se trouver la formule).


Je vous poste l'integralité de la sub au poste suivant.
Commenter la réponse de ZEFRAM28
Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 6 janv. 2012 à 17:28
0
Merci
Sub new_DFPP()

Application.StatusBar = "En cours de travail"
ActiveWorkbook.DisplayDrawingObjects = xlHide

Dim lettre, var, var0, projet, designation, reference, mat, epais, animtech, _
nomnouvelledfpp, NomFDR As String
Dim numligne, XHG, YHG, XBD, YBD, CADRANT, lignelimite, num_FDR, num_dfpp, aficheligne, i, j, DerniereCellule As Integer

On Error Resume Next


projet = ActiveSheet.UsedRange.Cells(1, 6).Value
num_FDR = ActiveSheet.UsedRange.Cells(1, 13).Value
num_dfpp = ActiveSheet.UsedRange.Cells(5, 31).Value
NomFDR = "Fiche_de_vie" & num_FDR

ActiveSheet.Unprotect


'num_dfpp = ActiveSheet.UsedRange.Cells(5, 31).Value
'BE = ActiveSheet.UsedRange.Cells(7, 22).Value

If num_dfpp = 0 Then
MsgBox "Vous ne pouvez plus créer de DFPP à partir de cette " & _
"fiche de vie." & Chr(10) & "Veuillez aller à la plus récente" & _
"des fiches de vie."
ActiveWorkbook.DisplayDrawingObjects = xlAll
Application.StatusBar = "Prêt"
Exit Sub
End If

numligne = ActiveCell.Row

If numligne < 36 Or numligne > 136 And ActiveSheet.Range("A1").Value <> "Fiche de Risques Emboutissage" Then 'UsedRange.Cells(1, 1)
MsgBox "Veuillez utiliser ce menu uniquement dans la zone jaune d'une fiche de vie"
ActiveWorkbook.DisplayDrawingObjects = xlAll
Application.StatusBar = "Prêt"
Exit Sub
End If

Dim nomfeuille As String
nomfeuille = ActiveSheet.Name

Dim test As Boolean
test = Selection.EntireRow.Hidden

'test pour savoir quel est la derniere ligne cachée de la ligne 12 à 29
For t = 14 To 31

test = ActiveSheet.UsedRange.Cells(t, 1).EntireRow.Hidden

If test = True Then
lignelimite = t - 1
Exit For
End If
lignelimite = t
Next

numligne = ActiveCell.Row

If ActiveSheet.UsedRange.Cells(numligne, 2).Value = "" Then
Else
MsgBox "une DFPP a déja été créée à cette ligne" & Chr(10) & _
" veuillez selectionner une autre ligne"
ActiveWorkbook.DisplayDrawingObjects = xlAll
Application.StatusBar = "Prêt"
Exit Sub

End If

var = ActiveSheet.UsedRange.Cells(numligne, 4).Value

If var = "" Then
MsgBox "Veuillez choisir un carreau compris entre A1 et U" & lignelimite
ActiveWorkbook.DisplayDrawingObjects = xlAll
Application.StatusBar = "Prêt"
Exit Sub
End If

'test pour savoir quel est la derniere ligne cachée de la ligne 36 à 136
For t = 36 To 136

test = ActiveSheet.UsedRange.Cells(t, 1).EntireRow.Hidden

If test = True Then
aficheligne = t
Exit For
End If
If t 136 And numligne 136 Then
MsgBox "Vous ne pourrez plus ajouter de nouvelle DFPP dans cette Fiche de vie" _
& Chr(10) & "Nous vous conseillons de créer une nouvelle Fiche de vie" _
& Chr(10) & "(Bouton en haut de cette page)"
End If
Next

For i = 1 To 21

lettre = Chr(i + 64)

For j = 1 To lignelimite

var0 = lettre & j

If var0 = var Then

CADRANT = numero_cadrant(i, j)

With Sheets(nomfeuille).UsedRange
.Cells(numligne, 3).Value = num_dfpp
.Cells(numligne, 26).Value = "Cré"
.Cells(numligne, 29).Value = 1
.Cells(aficheligne, 1).EntireRow.Hidden = False
.Cells(5, 6).Value = Date
End With

Sheets.item(nomfeuille).Cells(5, 31).Value = num_dfpp + 1
Sheets.item(nomfeuille).Cells(numligne, 3).Select

nomnouvelledfpp = "DFPP_" & num_dfpp

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
nomnouvelledfpp & "!D12"
Selection.Font.Size = 10

'ProtegerFeuilleDeRISQUE (nomfeuille)=> NE pas proteger ici , debut ecriture feuille de risque à partir dfpp




Sheets("DFPP_VIERGE").Visible = True
Sheets("DFPP_VIERGE").Copy after:=Sheets(nomfeuille)
ActiveSheet.Name = nomnouvelledfpp
Sheets("DFPP_VIERGE").Visible = False

ActiveWorkbook.Sheets(nomnouvelledfpp).Tab.ColorIndex = 42 'bleu
ActiveWorkbook.Sheets(nomnouvelledfpp).Cells(1, 15).Value = num_dfpp
With Sheets.item(nomfeuille)
.Cells(numligne, 1).Formula = "=" & nomnouvelledfpp & "!B7" 'Reference
.Cells(numligne, 2).Formula = "=" & nomnouvelledfpp & "!K4" 'METIER
.Cells(numligne, 9).Formula = "=" & nomnouvelledfpp & "!B12" 'date demande
.Cells(numligne, 5).Formula = "=" & nomnouvelledfpp & "!L7" 'GFE
.Cells(numligne, 8).Formula = "=" & nomnouvelledfpp & "!M14" 'K+Prob
.Cells(numligne, 6).Formula = "=" & nomnouvelledfpp & "!B13" & _
" & " & Chr(34) & " / " & Chr(34) & " & " & nomnouvelledfpp & "!B14" 'jalon de DT
.Cells(numligne, 11).Formula = "=" & nomnouvelledfpp & "!D12" 'probleme
.Cells(numligne, 16).Formula = "=" & nomnouvelledfpp & "!G12" 'Solution
' .Cells(numligne, 16).Formula = "=si(" & nomnouvelledfpp & "!I15=vrai,""Décentrage """ & nomnouvelledfpp & "!G12," & nomnouvelledfpp & "!G12)" 'Solution clotaire
.Cells(numligne, 24).Formula = "=" & nomnouvelledfpp & "!F34" 'jalon application
'.Cells(numligne, 19).Formula = "=" & nomnouvelledfpp & "!I39" 'responsable
.Cells(numligne, 31).Formula = "=" & nomnouvelledfpp & "!C34" 'date réponse
.Cells(numligne, 26).Formula = "=" & nomnouvelledfpp & "!K3" 'état

' If .Cells(7, 31).Value < 2 Then "Suppression katty : pavé permettant de choisir piece dans dffp selon liste à partir de fiche de risque"
Sheets(nomnouvelledfpp).Cells(7, 2).Formula = "=" & NomFDR & "!E7" 'reference
Sheets(nomnouvelledfpp).Cells(7, 5).Formula = "=" & NomFDR & "!H7" 'designation
Sheets(nomnouvelledfpp).Cells(8, 2).Formula = "=" & NomFDR & "!O7" 'MATIERE
Sheets(nomnouvelledfpp).Cells(8, 5).Formula = "=" & NomFDR & "!Q7" 'PROTECTION
Sheets(nomnouvelledfpp).Cells(8, 7).Formula = "=" & NomFDR & "!S7" 'EPAISSEUR
Sheets(nomnouvelledfpp).Cells(7, 9).Formula = "=" & NomFDR & "!V7" 'IDENTIFIANT
Sheets(nomnouvelledfpp).Cells(7, 12).Formula = "=" & NomFDR & "!Y7" 'GFE
Sheets(nomnouvelledfpp).Cells(8, 9).Formula = "=" & NomFDR & "!AA7" 'NO EMBALAGE

'"Suppression katty :pavé permettant de choisir piece dans dffp selon liste à partir de fiche de risque"
'Sheets(nomnouvelledfpp).Cells(2, 11).Value = num_dfpp 'NO DFPP

' Else
' Sheets(nomnouvelledfpp).Cells(7, 2).Select
' Selection.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
' xlBetween, Formula1:="=ListeRef"
' End If

End With

With Sheets.item("LISTES")
DerniereCellule = Sheets("LISTES").Range("AA65536").End(xlUp).Row
.Cells(DerniereCellule + 1, 27).Formula = "=" & nomnouvelledfpp & "!B10"
.Cells(DerniereCellule + 1, 28).Formula = "=" & nomnouvelledfpp & "!C10"
.Cells(DerniereCellule + 1, 29).Formula = "=" & nomnouvelledfpp & "!D10"
.Cells(DerniereCellule + 1, 30).Formula = "=" & nomnouvelledfpp & "!E10"
.Cells(DerniereCellule + 1, 31).Formula = "=" & nomnouvelledfpp & "!F10"
.Cells(DerniereCellule + 1, 32).Formula = "=" & nomnouvelledfpp & "!G10"
.Cells(DerniereCellule + 1, 33).Formula = "=" & nomnouvelledfpp & "!H10"
.Cells(DerniereCellule + 1, 34).Formula = "=" & nomnouvelledfpp & "!I10"

End With

Sheets("LISTES").Cells(DerniereCellule + 1, 26).Value = num_dfpp


Sheets.item(nomnouvelledfpp).Select

With ActiveSheet
.Cells(13, 12).Value = var
.Cells(3, 1).Value = projet
.Cells(5, 12).Value = num_dfpp
.Cells(5, 11).Value = num_FDR
.Cells(3, 11).Value = "Cré"
.Cells(13, 12).Formula = "='" & nomfeuille & "'!D" & numligne
'.Cells(2, 11).Value = num_dfpp
'.Cells(1, 11).Value = num_FDR
End With

ActiveSheet.UsedRange.Cells(14, 14).Value = CADRANT
ActiveWorkbook.DisplayDrawingObjects = xlAll
'Application.Run "contour_cache"
'Application.Run "contour_affiche"
'Application.Run "maj_image"
Application.StatusBar = "Prêt"

ProtegerFeuilleDeRISQUE (nomfeuille)

' Sheets(nomfeuille).Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
' False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
' AllowFormattingRows:=True, AllowInsertingHyperlinks:=True, AllowSorting:= _
' True, AllowFiltering:=True, AllowUsingPivotTables:=True


Exit Sub
End If
Next

Next
MsgBox "Veuillez choisir un carreau compris entre 11 et U" & lignelimite
ActiveWorkbook.DisplayDrawingObjects = xlAll
Application.StatusBar = "Prêt"

ProtegerFeuilleDeRISQUE (nomfeuille)

'Sheets(nomfeuille).Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
' False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
' AllowFormattingRows:=True, AllowInsertingHyperlinks:=True, AllowSorting:= _
' True, AllowFiltering:=True, AllowUsingPivotTables:=True





End Sub
Commenter la réponse de ZEFRAM28
Messages postés
15
Date d'inscription
jeudi 29 septembre 2011
Dernière intervention
9 janvier 2012
- 6 janv. 2012 à 17:33
0
Merci
@ Ucfoutu :

en répons a tes deux precedents posts :

Relis le message de Renfield, ainsi que mon dernier message, auquel j'ajoute :
vrai ===>> TRUE
Puis va constater comment cela est finalement écrit ! (en français) !

meme réponse.

entre temps j'ai posté la sub concernée afin de vous permettre d'avoir une vision plus globale.

j'ai la pretention de croire que seule le bout que je vous ai fourni doit etre repris mais bon, je ne suis vraiment pas un specialiste, tout juste un bidouilleur qui essaie de s'en sortir.
Commenter la réponse de ZEFRAM28
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 6 janv. 2012 à 17:41
0
Merci
1) Veux-tu_ bien corriger comme nous te l'avons demandé ?
2) ce ne sera pas l'ensemble d'un code (de surcroît non indenté et non mis entre balises, que nous allons analyser). Nous ne traitons ici que la manière d'utiliser Formula
3) si tout ceci te semble curieux, c'est que tu as besoin d'ouvrir ton aide VBA sur le mot Formula (nettement préférable en utilisation) et sur le mot FormulaLocal (et comprendre les différences)
4) ce qui m'inquiète un peu, par contre, est que tu as dit plus haut que "la formule ne s'écrivait pas" (ne pas s'écrire est différent de "s'écrire de manière non attendue"!
J'espère que tu ne cherches pas à écrire dans une cellule protégée (mais ce serait là un tout autre problème, n'ayant rien à voir avec celui de la syntaxe pour Formula).
Bonne chance

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 6 janv. 2012 à 17:46
0
Merci
ouh...

ne pas faire :

.Cells(numligne, 16).Formula = "=si(" & nomnouvelledfpp & "!I15=vrai,""Décentrage """ & nomnouvelledfpp & "!G12," & nomnouvelledfpp & "!G12)" 'Solution clotaire

mais

.Cells(numligne, 16).FormulaLocal = "=si(" & nomnouvelledfpp & "!I15;""Décentrage """ & nomnouvelledfpp & "!G12;" & nomnouvelledfpp & "!G12)" 'Solution clotaire


Comme je te l'ai dit plus haut...

sinon, faire :

.Cells(numligne, 16).Formula = "=IF(" & nomnouvelledfpp & "!I15,""Décentrage """ & nomnouvelledfpp & "!G12," & nomnouvelledfpp & "!G12)" 'Solution clotaire



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 6 janv. 2012 à 17:47
0
Merci
FormulaLocal appelle les separateurs de liste definis dans les regional settings (, ou ;) et le nom des fonctions en Francais (ou Allemand, etc.)

pour ca que je lui prefere la version internationale, puisqu'elle fonctionnera partout

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 6 janv. 2012 à 17:52
0
Merci
+1

Surtout qu'en plus, la formule avec Formula sur la feuille sera "transposée" dans la langue locale de toutes manières

Petite preuve/test à 5 sous
Sheets("Feuil1").Range("A1").Formula = "=IF(A1=TRUE,""c'est vrai"",""c'est pas vrai"")"



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.