Microsoft 365 Comment copier 2 colonnes d'une ligne en fonction d'un mot dans une autre feuille

lilicorail46

XLDnaute Nouveau
Bonjour à tous,

Je créée cette discussion car j'ai vu que je n'étais pas seule dans ce cas là, mais même en regardant les réponses apportées : je ne comprends rien ... Je crois que je n'ai même pas atteint le niveau "débutant" ou alors le niveau "débutant enfant".

Voilà ce que je voudrais réaliser :

Dans mon classeur Excel, je souhaite copier les colonnes B et C de la feuille "Grille audit" vers les colonnes B et C de la feuille "Plan d'action" seulement quand le résultat en colonne C de la feuille "Grille audit" est "M" ou "NS".

Il faut savoir que les colonnes C, D et E représentent des dates de passages. C : 1er passage; D : 2ème passage et E : 3ème passage.
Quand je devrais saisir la colonne D pour le 2ème passage, il faudrait que ce soit cette colonne qui apparaissent sur ma feuille "Plan d'action" mais plus la C même si celle-ci sera déjà remplie avec les notations du 1er passage.

Je sais pas si je suis assez explicites dans mes explications. Je me débrouille sur Excel comme je peux mais je n'ai jamais fait de macro.

Je joint en copie mon fichier Excel afin que cela soit plus compréhensible pour vous.

J'ai vraiment besoin d'aide car là je suis dans une impasse.

Merci d'avance pour vos retours.
 

Pièces jointes

  • TEST TRAME Audit VIERGE - Cuisine Centrale.xlsx
    51.6 KB · Affichages: 10

lilicorail46

XLDnaute Nouveau
Bonjour Sylvanu,

J'ai à nouveau besoin d'aide.
J'ai ajouté une colonne "coef." à ma "grille d'audit". En fonction du résultat en colonne "D", je souhaite que ça effectue une décote de la note par chapitre (de 1 à 9) avec un résultat en % en "Page de garde". Comme le système de notation est en lettre et non en chiffre, je ne peux pas effectuer la fonction =MOYENNE (enfin je pense).

Coef. 1 : si en colonne "D", j'ai un "S", la note reste inchangée, si j'ai un "M" on perd 0.5 point et si j'ai "NS" on perd 1 point.
Coef. 5 : si en colonne "D", j'ai un "S", la note reste inchangée, si j'ai un "M" on perd 2.5 points et si j'ai "NS" on perd 5 points.
Coef. 10 : si en colonne "D", j'ai un "S", la note reste inchangée, si j'ai un "M" on perd 5 points et si j'ai "NS" on perd 10 points.

Pour cette grille, j'ai un total de 506 points.

Ensuite en "Page de garde", je comptais faire la moyenne des résultats du bilan détaillé en utilisant la fonction =MOYENNE.

Qu'en pensez-vous? Pouvez-vous m'aider?

Bonne soirée

Lilicorail46
 

Pièces jointes

  • NEW TEST TRAME Audit VIERGE - Cuisine Centrale.xlsm
    71 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Lilicorail,
Un essai en PJ avec :
VB:
Option Explicit: Option Base 1
'Calcul de la décote :
'Coef. 1 : "S" 0, "M" -0.5,"NS" -1
'Coef. 5 : "S" 0, "M" -2.5 ,"NS"-5
'Coef. 10 :"S" 0,"M" -5,"NS" -10
'Ou encore : "S" +Coef, "M" +Coef/2,"NS" +0
Sub Worksheet_Activate()
    Dim DL%, i%, j%, T, T2, Num, Decote
    Application.ScreenUpdating = False
    DL = Sheets("Grille audit").Range("A65500").End(xlUp).Row
    T = Sheets("Grille audit").Range("A3:F" & DL)   ' Tableau des valeurs colonnes A à F
    ReDim T2(9, 2)                                  ' T2 tableau résultat, 1 total coef, 2 total notes
    For i = 1 To UBound(T)
        If T(i, 3) <> "" Then
            Num = Val(Split(T(i, 1), ".")(0))
            T2(Num, 1) = T2(Num, 1) + T(i, 3)
            ' Si "S" on ajoute le Coef, Si "M" on ajoute Coef/2, Si "NS" on ne rajoute rien
            Select Case T(i, 4)
                Case "S": T2(Num, 2) = T2(Num, 2) + T(i, 3)
                Case "M": T2(Num, 2) = T2(Num, 2) + T(i, 3) / 2
            End Select
        End If
    Next i
    ' Restitution des résultats
    If T2(1, 1) <> 0 Then [C27] = T2(1, 2) / T2(1, 1)
    If T2(2, 1) <> 0 Then [C28] = T2(2, 2) / T2(2, 1)
    If T2(3, 1) <> 0 Then [C29] = T2(3, 2) / T2(3, 1)
    If T2(4, 1) <> 0 Then [C30] = T2(4, 2) / T2(4, 1)
    If T2(5, 1) <> 0 Then [G27] = T2(5, 2) / T2(5, 1)
    If T2(6, 1) <> 0 Then [G28] = T2(6, 2) / T2(6, 1)
    If T2(7, 1) <> 0 Then [G29] = T2(7, 2) / T2(7, 1)
    If T2(8, 1) <> 0 Then [G30] = T2(8, 2) / T2(8, 1)
    If T2(9, 1) <> 0 Then [C31] = T2(9, 2) / T2(9, 1)
End Sub
L'actualisation est automatique quand on sélectionne la page "Page de garde"
 

Pièces jointes

  • NEW TEST TRAME Audit VIERGE - Cuisine Centrale (3).xlsm
    72 KB · Affichages: 2

lilicorail46

XLDnaute Nouveau
Bonjour Lilicorail,
Un essai en PJ avec :
VB:
Option Explicit: Option Base 1
'Calcul de la décote :
'Coef. 1 : "S" 0, "M" -0.5,"NS" -1
'Coef. 5 : "S" 0, "M" -2.5 ,"NS"-5
'Coef. 10 :"S" 0,"M" -5,"NS" -10
'Ou encore : "S" +Coef, "M" +Coef/2,"NS" +0
Sub Worksheet_Activate()
    Dim DL%, i%, j%, T, T2, Num, Decote
    Application.ScreenUpdating = False
    DL = Sheets("Grille audit").Range("A65500").End(xlUp).Row
    T = Sheets("Grille audit").Range("A3:F" & DL)   ' Tableau des valeurs colonnes A à F
    ReDim T2(9, 2)                                  ' T2 tableau résultat, 1 total coef, 2 total notes
    For i = 1 To UBound(T)
        If T(i, 3) <> "" Then
            Num = Val(Split(T(i, 1), ".")(0))
            T2(Num, 1) = T2(Num, 1) + T(i, 3)
            ' Si "S" on ajoute le Coef, Si "M" on ajoute Coef/2, Si "NS" on ne rajoute rien
            Select Case T(i, 4)
                Case "S": T2(Num, 2) = T2(Num, 2) + T(i, 3)
                Case "M": T2(Num, 2) = T2(Num, 2) + T(i, 3) / 2
            End Select
        End If
    Next i
    ' Restitution des résultats
    If T2(1, 1) <> 0 Then [C27] = T2(1, 2) / T2(1, 1)
    If T2(2, 1) <> 0 Then [C28] = T2(2, 2) / T2(2, 1)
    If T2(3, 1) <> 0 Then [C29] = T2(3, 2) / T2(3, 1)
    If T2(4, 1) <> 0 Then [C30] = T2(4, 2) / T2(4, 1)
    If T2(5, 1) <> 0 Then [G27] = T2(5, 2) / T2(5, 1)
    If T2(6, 1) <> 0 Then [G28] = T2(6, 2) / T2(6, 1)
    If T2(7, 1) <> 0 Then [G29] = T2(7, 2) / T2(7, 1)
    If T2(8, 1) <> 0 Then [G30] = T2(8, 2) / T2(8, 1)
    If T2(9, 1) <> 0 Then [C31] = T2(9, 2) / T2(9, 1)
End Sub
L'actualisation est automatique quand on sélectionne la page "Page de garde"
Bonjour Sylvanu,

C'est super ça fonctionne très bien !
Par contre je viens de m'apercevoir que si je note NE (non-évalué) ça effectue une décote. J'avais oublié cette notation là. Comment je peux faire?

Bonne journée

Lilicorail46
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
que si je note NE (non-évalué) ça effectue une décote.
Il suffit de rajouter :
VB:
Case "NE": T2(Num, 2) = T2(Num, 2) + T(i, 3)

Si tout est ok, pensez à mettre ce post en résolu ( Lien ) car il commence à avoir pas mal de PJ sur ce post, et ça aidera le futur lecteur à aller directement à la solution.
 

Pièces jointes

  • NEW TEST TRAME Audit VIERGE - Cuisine Centrale (4).xlsm
    72.3 KB · Affichages: 4

lilicorail46

XLDnaute Nouveau
Bonjour Sylvanu,

Je reviens vers vous car j'ai un bug que je n'arrive pas à résoudre.
J'ai modifié la présentation de la page de garde et depuis j'ai une ligne dans la macro qui ne fonctionne pas :
T2(Num, 1) = T2(Num, 1) + T(i, 3)
Dans la restitution des résultats, j'ai bien modifié le numéro des cellules mais pour ce bug là je sèche.

Merci pour votre aide.

Lilicorail46
 

Pièces jointes

  • NEW TEST TRAME Audit VIERGE - Cuisine Autonome.xlsm
    73.9 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Avant celle ligne vous avez :
VB:
            Num = Val(Split(T(i, 1), ".")(0))
            T2(Num, 1) = T2(Num, 1) + T(i, 3)
Le Split sépare la chaine à partir du séparateur point.
L'erreur se situe pour i=22.
Or en page Grille audit ligne 25 ( soit i=22 ) le N° est "P" et non 1.2.3.
Soit vous rectifiez ce "P" en 1.2.3 et cela semble marcher, ou "P" est correct et dans ce cas il faut reprendre le code.
A vous lire pour le résultat.
 

lilicorail46

XLDnaute Nouveau
Bonjour,

Merci beaucoup pour votre retour, je n'avais pas vu ce "p". J'ai eu plusieurs "p" qui s'était glissé sur les feuilles de calcul mais je n'avais pas vu celui-ci.

Forcément ça fonctionne mieux. Je vais chercher comment bloquer certaines cellules pour qu'elles ne soient pas modifiées par erreur.

Bonne journée

Lilicorail46
 

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 535
Membres
112 771
dernier inscrit
mikadu49