Mes formules sont-elles correctes ?

swampsnake

XLDnaute Nouveau
Salut tout le monde,

J'ai un problème avec deux formules que j'aimerais appliquer à deux cellules.

Voici comment les choses doivent se passer : dans une boucle j'insère des lignes et je souhaiterais affecter une formule dans les cellules C et E de chaque nouvelle ligne. Malheureusement, ça n'a pas l'air de fonctionner.
Après moultes recherches sur le sujet et des tas de tests en modifiant les quotes et autres, je vous appelle au secours.

Pourriez-vous me dire si la syntaxe est correcte ?

Voici le code en question :

Code:
sht.Rows(cpt).Insert Shift:=xlDown
sht.Range("C" & cpt).Formula = "=IF(B" & cpt & "<>"""",(IF(AND(B" & cpt & ">Z" & cpt & ",B" & cpt & "<>""""),""""Sur-engagé"""",IF(AND(B" & cpt & "<Y" & cpt & ",B" & cpt & "<>""""),""""Sous-engagé"""",""""OK""""))),"""")"
sht.Range("E" & cpt).Formula = "=IF(AL" & cpt & "="""","""",AL" & cpt & ")"
 

kjin

XLDnaute Barbatruc
Re : Mes formules sont-elles correctes ?

Bonjour, salut MJ :),
J'ai du mal à cerner la logique de la première formule
Tu testes si B & cpt est non vide 3 fois !
Code:
sht.Range("C" & cpt).Formula = "=IF(B" & cpt & "="""","""",IF(B" & cpt & ">Z" & cpt & ",""Sur-engagé"",IF(B" & cpt & "<Y" & cpt & ",""Sous-engagé"",""OK"")))"
A+
kjin
 

swampsnake

XLDnaute Nouveau
Re : Mes formules sont-elles correctes ?

D'accord. Voici donc un fichier exemple qui reproduit exactement ce que je voudrais faire. Les cellules ne sont pas les mêmes, mais ça ne fait rien, le résultat est le même.

Merci de bien vouloir y jeter un coup d'œil.
 

Pièces jointes

  • Exemple.xls
    19.5 KB · Affichages: 77
  • Exemple.xls
    19.5 KB · Affichages: 83
  • Exemple.xls
    19.5 KB · Affichages: 80

kjin

XLDnaute Barbatruc
Re : Mes formules sont-elles correctes ?

re,
La macro complète
Code:
Sub Generer()
Dim cpt As Integer
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("Feuil1")
cpt = 1
While cpt < 20
    cpt = cpt + 1
    sht.Rows(cpt).Insert Shift:=xlDown
    sht.Range("C" & cpt).Formula = "=IF(B" & cpt & "="""","""",IF(B" & cpt & ">Z" & _
            cpt & ",""Sur-engagé"",IF(B" & cpt & "<Y" & cpt & ",""Sous-engagé"",""OK"")))"
    sht.Range("E" & cpt).Formula = "=IF(AL" & cpt & "="""","""",AL" & cpt & ")"
Wend

End Sub
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 731
Membres
110 553
dernier inscrit
loic55