Erreur de programmation

Bonjour

je ne comprend pas un souci.

Lorsque je saisi une valeur dans la cellule D4 de l'onglet MSP la cellule B4 et B5 devrait e compléter mais cela me met un message d'erreur.

De plus j'ai créé une macro pour les c15 à C18 de la même feuille cependant je ne vois pas pourquoi elle ne marche pas non plus. Je voulais que lorsque l'on clique dessus cela passe de Non évalué à très insuffisant puis insuffisant ...

Je ne vois pas mon erreur.

A l'aide

7eval2.xlsm (116.59 Ko)

Merci par avance

Bonjour,

Pour la liste déroulante, il faut nommer la liste des prénoms du tableau Stagiaire pour quelle s'adapte au fur et à mesure et utiliser le nom dans la validation de données.

Cordialement.

Edit :

Macro mise à jour

7eval2.xlsm (118.06 Ko)

Bonjour,

Pour la première question: en D4: il y a la formule "=AUJOURDHUI()", je ne pense pas que ce soit celle-ci!

Pour la deuxième question: Vous avez voulu créer une autre macro évèmentielle "Worksheet_SelectionChange" que vous avez renommé "Worksheet_SelectionChange2", on ne peut pas créer 2 ou plusieurs macros évènementielles avec le même nom, c'est pour cela que vous avez ajouter ce 2 à la fin du nom de la macro mais, ce petit 2 ajouté empêche l'exécution de la macro.

Si vous voulez conserver les 2 macros, il ne faut en faire qu'une seule, comme ceci:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    'Ici la colonne d soit la 4ième colonne.
    'Changer la valeur si choix d'une autre colonne pour les boutons.
    If Not Intersect(Target, Range("D24:D35,D37:D39")) Is Nothing Then
        cel = Target.Value
        Rg = Target.Address
        Select Case cel
            Case "Non évalué", ""
                C = vbGreen
                T = "Acquis"
            Case "Acquis"
                C = RGB(255, 165, 0)  ' orange
                T = "En cours d'acquisition"
            Case "En cours d'acquisition"
                C = vbRed
                T = "Non Acquis"
            Case "Non Acquis"
                C = RGB(211, 211, 211)  ' Gris clair
                T = "Non évalué"
            Case Else
            T = ""
        End Select

        'Ici la colonne c soit la 3ième colonne.
        'Changer la valeur si choix d'une autre colonne pour les boutons.
    ElseIf Not Intersect(Target, Range("C24:C35,C37:C39")) Is Nothing Then
        cel = Target.Value
        Rg = Target.Address
        Select Case cel
            Case "Non évalué", ""
                C = vbGreen
                T = "Très insuffisant"
            Case "Très insuffisant"
                C = vbGreen
                T = "Insuffisant"
            Case "Insuffisant"
                C = vbGreen
                T = "Passable"
            Case "Passable"
                C = vbGreen
                T = "Assez bien"
            Case "Assez bien"
                C = vbGreen
                T = "Bien"
            Case "Bien"
                C = vbGreen
                T = "Très bien"
            Case "Très bien"
                C = RGB(211, 211, 211)  ' Gris clair
                T = "Non évalué"
            Case Else
            T = ""
        End Select
    End If
    If T <> "" Then
        Range(Rg).Interior.Color = C
        Range(Rg) = T
    End If
    Range(Rg).Offset(0, -1).Activate
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Edit :

Ah zut , j"avais pas rafraîchit l'affichage, Rebulon2 avait déjà répondu? Désolé.

bonjour

Pour la cellule D4,il y a pas de formule mais je viens de trouver une solution. (je la metterai avec le fichier final)

J'ai copier coller la macro, elle ne fonctionne pas

Cordialement

Pour la cellule D4,il y a pas de formule

Oui, je me suis trompé de cellule

la formule à mettre en B4:

=SI(ESTVIDE(D4);"";INDEX(Stagiaire;EQUIV($D$4;Stagiaire[PRENOM];0);1))

Cdlt

@corbin,

Pas de retour ?

Cordialement

@Zebulon2 désolé ça marche nickel hormis une inversion sur les contenus de la colonne C et D (que j'ai modifié).

Par contre je souhaiterai la macro Evaluation (module 1) lorsque toute les cellules D24 à 40 hors 35 et 36 sont sur non évalué. (il faut au moins 4 cellules qui soit avec une valeur autre que Non évalué) pour que la macro se fasse.

Si moins de 4 cellule autre que évalué faire apparaitre une fenêtre : veuillez évaluer le candidat

Cordialement

Bonjour,

Pas tout compris, mais un test pour voir si cela peut fonctionner pour activer la macro.

Sub test()
Dim control As String
control = Evaluate("=IF(COUNTIF(D24:D34,""Non évalué"")+COUNTIF(D37:D39,""Non évalué"")<=4,""Veuillez évaluer le candidat"","""")")
MsgBox control
End Sub

Je ne suis pas un pro du VBA, cela peut certainement être amélioré.

Cordialement

re,

par exemple avec la valeur "iControl" ....

Sub Evaluation()                             ' nouvelle evaluation
     Dim lig   As Integer
     Dim plage As Range, cel As Range
     Dim nomfichier As String
     Dim iControl As Integer

     With Feuil5
          iControl = WorksheetFunction.CountIf(.Range("D24:D34"), "Non évalué") + WorksheetFunction.CountIf(Range("D37:D39"), "Non évalué")     'à utiliser plus tard ...
          Set plage = .Range("D4,D6")
          etc

Au final j'ai fais ça

' --- Contrôle des "Non évalué" dans D25:D40 ---

compteur = 0

For Each cel In Feuil5.Range("D25:D40")

If cel.Value = "Non évalué" Then

compteur = compteur + 1

End If

Next cel

If compteur > 7 Then 'maximun 7 critere non évaluer

MsgBox "Veuillez évaluer le candidat", vbExclamation

Exit Sub

End If

' --- Fin du contrôle ---

shit, il manquait un point devant le 2ième "range", erreur stupide ...

iControl = WorksheetFunction.CountIf(.Range("D24:D34"), "Non évalué") + WorksheetFunction.CountIf(.Range("D37:D39"), "Non évalué") 'à utiliser plus tard ...

Rechercher des sujets similaires à "erreur programmation"