XL 2021 BESOIN D'aide macro

NAEY

XLDnaute Nouveau
bonjour
je suis une prof de dessin

j'ai une fiche éduc nat à remplir
pour chaque élève de Terminale BAC, elle se compose de 3 tableaux de 5 , 5 et 3 lignes
je dois mettre des croix comme des -, =, + et leur "donner un total sur 6, puis 8 et 8.
Mais en fait , les croix ont une valeur masquée puis que leur addition finale est sur ... 20

j'ai demandé à chat GPT de m'écrire la "macro" mais je ne sais pas la mettre en oeuvre - je comprends un peu le code et je crois avoir bien expliqué mais je ne sais pas finaliser

voilà la discut avec la machine

ma question

sous excel, quelle macro me permet d'attribuer des valeurs à des cases si je les coche avec un x

et j'ai besoin d'avoir des valeurs différentes en fonction des colonnes
car j'ai 3 tableaux différents

en outre, ensuite, je dois dupliquer la feuille par le nombre d'élèves dont j'ai la liste excel ( NOM+prénom dans la même case

euh, je sais séparer, inclus qd les noms sont double ou triples ( noms portugais pas ex)

j'aimerais 1 - que les feuilles aient les noms de la liste

et que
la case fusionnée C-DEF se remplisse automatiquement avec le NOM prénom de l'élève
de la feuille 1 du fichier


voila la réponse

Si vous souhaitez attribuer des valeurs différentes en fonction des colonnes, vous pouvez utiliser une approche similaire en ajustant la macro VBA. Voici un exemple de code qui illustre cette situation :

vbaCopy code
Sub AttribuerValeurs()
Dim cell As Range

For Each cell In Selection
If cell.Value = "x" Then ' Vérifie si la cellule contient "x"
' Attribue la valeur en fonction de la colonne
Select Case cell.Column
Case 1 ' Colonne A
cell.Offset(0, 1).Value = "Valeur Colonne A"
Case 2 ' Colonne B
cell.Offset(0, 1).Value = "Valeur Colonne B"
Case 3 ' Colonne C
cell.Offset(0, 1).Value = "Valeur Colonne C"
' Ajoutez des cas supplémentaires pour d'autres colonnes si nécessaire
Case Else
cell.Offset(0, 1).Value = "" ' Réinitialise la valeur de la cellule
End Select
Else
cell.Offset(0, 1).Value = "" ' Réinitialise la valeur de la cellule
End If
Next cell
End Sub


Dans cet exemple, nous utilisons l'instruction Select Case pour attribuer différentes valeurs en fonction de la colonne où se trouve la cellule cochée. Vous pouvez ajuster les valeurs attribuées en modifiant les lignes correspondant à chaque cas (Case).
Assurez-vous de sélectionner la plage de cellules appropriée avant d'exécuter la macro, et que vous avez activé l'onglet "Développeur" et l'éditeur VBA comme indiqué dans ma réponse précédente.

j'ai une page de 30 ligne de prénom une page excel à remplir pour chaque ligne dupliquer une page excel pour chaque ligne de nom+ prénom,

Sub DupliquerPages()
Dim wsSource As Worksheet
Dim wsNew As Worksheet
Dim rngNames As Range
Dim cell As Range
Dim newName As String
Dim lastRow As Long

' Définir la feuille source contenant les prénoms
Set wsSource = ThisWorkbook.Sheets("Feuil1") ' Remplacez "Feuil1" par le nom de votre feuille source

' Définir la plage de cellules contenant les prénoms
lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row ' Colonne A pour les prénoms
Set rngNames = wsSource.Range("A1:A" & lastRow)

' Boucler à travers chaque prénom et dupliquer la page Excel
For Each cell In rngNames
' Créer une nouvelle feuille
Set wsNew = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))

' Renommer la nouvelle feuille avec le prénom
newName = cell.Value ' Utilisez la colonne appropriée pour les prénoms si nécessaire
wsNew.Name = newName

' Copier la page source sur la nouvelle feuille
wsSource.Copy Before:=wsNew
Next cell

End Sub

et la manip où je suis perdue


j'ai trouvé les tuto en pièces détachées mais je ne sais pas les rattacher
  1. Ouvrez votre fichier Excel contenant la feuille avec les prénoms.
  2. Appuyez sur "ALT + F11" pour ouvrir l'éditeur VBA.
  3. Insérez le code ci-dessus dans une nouvelle feuille de module VBA.
  4. Modifiez la ligne Set wsSource = ThisWorkbook.Sheets("Feuil1") en remplaçant "Feuil1" par le nom de votre feuille source contenant les prénoms.
ETC

voilà - en violet à côté , les valeurs réelles des cases

1684353507974.png

en pj , le fichier


et ma tentative ))

1684353627263.png


si vous pouviez m'aider ?
 

Pièces jointes

  • 1 pge GRILLE CCF .xlsx
    258.3 KB · Affichages: 2

Gégé-45550

XLDnaute Accro
bonjour
je suis une prof de dessin

j'ai une fiche éduc nat à remplir
pour chaque élève de Terminale BAC, elle se compose de 3 tableaux de 5 , 5 et 3 lignes
je dois mettre des croix comme des -, =, + et leur "donner un total sur 6, puis 8 et 8.
Mais en fait , les croix ont une valeur masquée puis que leur addition finale est sur ... 20

j'ai demandé à chat GPT de m'écrire la "macro" mais je ne sais pas la mettre en oeuvre - je comprends un peu le code et je crois avoir bien expliqué mais je ne sais pas finaliser

voilà la discut avec la machine

ma question

sous excel, quelle macro me permet d'attribuer des valeurs à des cases si je les coche avec un x

et j'ai besoin d'avoir des valeurs différentes en fonction des colonnes
car j'ai 3 tableaux différents

en outre, ensuite, je dois dupliquer la feuille par le nombre d'élèves dont j'ai la liste excel ( NOM+prénom dans la même case

euh, je sais séparer, inclus qd les noms sont double ou triples ( noms portugais pas ex)

j'aimerais 1 - que les feuilles aient les noms de la liste

et que
la case fusionnée C-DEF se remplisse automatiquement avec le NOM prénom de l'élève
de la feuille 1 du fichier


voila la réponse

Si vous souhaitez attribuer des valeurs différentes en fonction des colonnes, vous pouvez utiliser une approche similaire en ajustant la macro VBA. Voici un exemple de code qui illustre cette situation :

vbaCopy code
Sub AttribuerValeurs()
Dim cell As Range

For Each cell In Selection
If cell.Value = "x" Then ' Vérifie si la cellule contient "x"
' Attribue la valeur en fonction de la colonne
Select Case cell.Column
Case 1 ' Colonne A
cell.Offset(0, 1).Value = "Valeur Colonne A"
Case 2 ' Colonne B
cell.Offset(0, 1).Value = "Valeur Colonne B"
Case 3 ' Colonne C
cell.Offset(0, 1).Value = "Valeur Colonne C"
' Ajoutez des cas supplémentaires pour d'autres colonnes si nécessaire
Case Else
cell.Offset(0, 1).Value = "" ' Réinitialise la valeur de la cellule
End Select
Else
cell.Offset(0, 1).Value = "" ' Réinitialise la valeur de la cellule
End If
Next cell
End Sub


Dans cet exemple, nous utilisons l'instruction Select Case pour attribuer différentes valeurs en fonction de la colonne où se trouve la cellule cochée. Vous pouvez ajuster les valeurs attribuées en modifiant les lignes correspondant à chaque cas (Case).
Assurez-vous de sélectionner la plage de cellules appropriée avant d'exécuter la macro, et que vous avez activé l'onglet "Développeur" et l'éditeur VBA comme indiqué dans ma réponse précédente.

j'ai une page de 30 ligne de prénom une page excel à remplir pour chaque ligne dupliquer une page excel pour chaque ligne de nom+ prénom,

Sub DupliquerPages()
Dim wsSource As Worksheet
Dim wsNew As Worksheet
Dim rngNames As Range
Dim cell As Range
Dim newName As String
Dim lastRow As Long

' Définir la feuille source contenant les prénoms
Set wsSource = ThisWorkbook.Sheets("Feuil1") ' Remplacez "Feuil1" par le nom de votre feuille source

' Définir la plage de cellules contenant les prénoms
lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row ' Colonne A pour les prénoms
Set rngNames = wsSource.Range("A1:A" & lastRow)

' Boucler à travers chaque prénom et dupliquer la page Excel
For Each cell In rngNames
' Créer une nouvelle feuille
Set wsNew = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))

' Renommer la nouvelle feuille avec le prénom
newName = cell.Value ' Utilisez la colonne appropriée pour les prénoms si nécessaire
wsNew.Name = newName

' Copier la page source sur la nouvelle feuille
wsSource.Copy Before:=wsNew
Next cell

End Sub

et la manip où je suis perdue

j'ai trouvé les tuto en pièces détachées mais je ne sais pas les rattacher

  1. Ouvrez votre fichier Excel contenant la feuille avec les prénoms.
  2. Appuyez sur "ALT + F11" pour ouvrir l'éditeur VBA.
  3. Insérez le code ci-dessus dans une nouvelle feuille de module VBA.
  4. Modifiez la ligne Set wsSource = ThisWorkbook.Sheets("Feuil1") en remplaçant "Feuil1" par le nom de votre feuille source contenant les prénoms.
ETC

voilà - en violet à côté , les valeurs réelles des cases

Regarde la pièce jointe 1170402
en pj , le fichier


et ma tentative ))

Regarde la pièce jointe 1170404


si vous pouviez m'aider ?
Bonsoir,
avant d'aller sur la macro pour créer autant de feuilles que d'élèves, il convient, me semble-t-il, d'évaluer la valeur des croix pour aboutir à une note sur 6 (ou 8 selon le cas).
On peut, me semble-t-il, imaginer que pour une situation d'évaluation donnée, on obtient la note maximale s'il y a une croix dans toutes les cellules de la colonne '+', on obtient la moyenne s'il y a une croix dans toutes les cellules de la colonne "=" et on obtient 0 (zéro) s'il y a une croix dans toutes les cellules de la colonne "-".
Cela signifie que, par exemple pour la troisième situation d'évaluation, qui comporte 3 critères, chaque croix dans la colonne "-" vaut 0 (zéro), - ce qui serait vrai aussi pour toutes les autres situations - , chaque croix dans la colonne "=" vaut la moitié de la note max, soit 4 (8/2) divisée par le nombre de critères (3), c'est-à-dire 4/3 et enfin que chaque croix dans la colonne "+" vaut 8/3.
C'est ce raisonnement que j'ai mis en œuvre dans les cellules D17 à F17, D27 à F27, D35 à F35 du fichier joint.
Validez-vous cette approche ?
Cordialement,
 

Pièces jointes

  • 1 pge GRILLE CCF _ 1.xlsx
    264.6 KB · Affichages: 2

NAEY

XLDnaute Nouveau
oh, bravo, vous êtes logique et rationnel mais... c'est l'éducation nationale et là, ça fait un moment que rien n'est plus logique ou rationnel..

donc - je suis confuse, votre raisonnement est parfait mais
- on n'a plus le droit de blesser les jeune depuis des années mais depuis 2/3 ans - covid et dernier ministre, on touche des sommets : pour mettre un zéro il faut une copie blanche mais signée et conservée à titre de preuve...
donc les cases "nulles "ont des valeurs -pauvres mais des valeurs.

dans ce cadre, la moyenne est 12 et non pas 10

est-ce que ce tableau est débile ?
oui,
est-ce que c'est une perte de temps ? je corrige mes élèves, que je suis depuis 3 ans, je situe leur niveau les yeux fermés, j'ai surveillé et aidé leur épreuve - remplir les cases est vain - je m'y astreins par... politesse ?

et donc, je recours à excel pour éviter de ... je n'ai plus de mots - quand les croix font des chiffres mais on ne met pas des chiffres....
j'ai joué de plusieurs manières depuis cette invention.
Cette année, j'ai dit flûte... ou peut-être un mot plus fort que je vous épargne , si vous pouvez m'aider et comprendre les hiatus, c'est juste magique

merci de votre concours


voilà les valeurs définitives

le tableau 3 ne colle pas tout à fait mais la note est arrondie ( ça je sais faire)

1684363311943.png

j'ai réfléchi et il est tard mais encore merci pour demain si vous êtes allé dormir
 

Gégé-45550

XLDnaute Accro
oh, bravo, vous êtes logique et rationnel mais... c'est l'éducation nationale et là, ça fait un moment que rien n'est plus logique ou rationnel..

donc - je suis confuse, votre raisonnement est parfait mais
- on n'a plus le droit de blesser les jeune depuis des années mais depuis 2/3 ans - covid et dernier ministre, on touche des sommets : pour mettre un zéro il faut une copie blanche mais signée et conservée à titre de preuve...
donc les cases "nulles "ont des valeurs -pauvres mais des valeurs.

dans ce cadre, la moyenne est 12 et non pas 10

est-ce que ce tableau est débile ?
oui,
est-ce que c'est une perte de temps ? je corrige mes élèves, que je suis depuis 3 ans, je situe leur niveau les yeux fermés, j'ai surveillé et aidé leur épreuve - remplir les cases est vain - je m'y astreins par... politesse ?

et donc, je recours à excel pour éviter de ... je n'ai plus de mots - quand les croix font des chiffres mais on ne met pas des chiffres....
j'ai joué de plusieurs manières depuis cette invention.
Cette année, j'ai dit flûte... ou peut-être un mot plus fort que je vous épargne , si vous pouvez m'aider et comprendre les hiatus, c'est juste magique

merci de votre concours


voilà les valeurs définitives

le tableau 3 ne colle pas tout à fait mais la note est arrondie ( ça je sais faire)

Regarde la pièce jointe 1170411
j'ai réfléchi et il est tard mais encore merci pour demain si vous êtes allé dormir
Bonsoir,
Ok, au moins, on a des valeurs.
Je corrigerai les formules et on se reparlera demain.
Bonne nuit !
 

Gégé-45550

XLDnaute Accro
oh, bravo, vous êtes logique et rationnel mais... c'est l'éducation nationale et là, ça fait un moment que rien n'est plus logique ou rationnel..

donc - je suis confuse, votre raisonnement est parfait mais
- on n'a plus le droit de blesser les jeune depuis des années mais depuis 2/3 ans - covid et dernier ministre, on touche des sommets : pour mettre un zéro il faut une copie blanche mais signée et conservée à titre de preuve...
donc les cases "nulles "ont des valeurs -pauvres mais des valeurs.

dans ce cadre, la moyenne est 12 et non pas 10

est-ce que ce tableau est débile ?
oui,
est-ce que c'est une perte de temps ? je corrige mes élèves, que je suis depuis 3 ans, je situe leur niveau les yeux fermés, j'ai surveillé et aidé leur épreuve - remplir les cases est vain - je m'y astreins par... politesse ?

et donc, je recours à excel pour éviter de ... je n'ai plus de mots - quand les croix font des chiffres mais on ne met pas des chiffres....
j'ai joué de plusieurs manières depuis cette invention.
Cette année, j'ai dit flûte... ou peut-être un mot plus fort que je vous épargne , si vous pouvez m'aider et comprendre les hiatus, c'est juste magique

merci de votre concours


voilà les valeurs définitives

le tableau 3 ne colle pas tout à fait mais la note est arrondie ( ça je sais faire)

Regarde la pièce jointe 1170411
j'ai réfléchi et il est tard mais encore merci pour demain si vous êtes allé dormir
Bon, vite fait avant d'aller au lit, les formules actualisées avec vos valeurs.
À demain.
 

Pièces jointes

  • 1 pge GRILLE CCF _ 2.xlsx
    264.3 KB · Affichages: 3

NAEY

XLDnaute Nouveau
hou, j'étais dans les choux car le 3 eme tableau est sur 6, pas sur 8, sinon le total est faux 6+8+8 = 22

voilà les dernières valeurs

désoléee, j'ai expédié les corvées avant de rallumer

merci de votre indulgence et de votre concours - il faut que j'apprenne le code ( je connais déjà allemand, anglais, italien, chinois et grec moderne) donc j'aime apprendre...

bonne journée


1684397397599.png
 

NAEY

XLDnaute Nouveau
hou, j'étais dans les choux car le 3 eme tableau est sur 6, pas sur 8, sinon le total est faux 6+8+8 = 22

voilà les dernières valeurs

désoléee, j'ai expédié les corvées avant de rallumer

merci de votre indulgence et de votre concours - il faut que j'apprenne le code ( je connais déjà allemand, anglais, italien, chinois et grec moderne) donc j'aime apprendre...

bonne journée


Regarde la pièce jointe 1170426
et aussi, j'ai déjà utilisé les formules de tri et de création - c'est pourquoi je pense que j'ai moyen d'automatiser la création des feuilles en fonction de ma liste d'élèves ?
 

Gégé-45550

XLDnaute Accro
Bonjour,
Voilà pour apprendre (en français seulement ;)) :
  • la formule =
    VB:
    NB.SI(D12:D16;"x")*0,3
    en D17 se décompose en 2 parties
    • Code:
      NB.SI(D12:D16;"x")
      qui compte le nombre de "x" contenus dans le champ
      Code:
      D12:D16
      [/CODE]
    • puis ce comptage est multiplié par la valeur que vous donnez au "x"
  • Je vous laisse donc corriger vous-même les trois formules en D35, E35 et F35 ; il suffit de remplacer en D35 "*0,8" par "*0,5", en E35 "*1,7" par "*1,2" et en F35 "*2,65" par "*2"
Si j'ai bien compris, vous êtes en capacité de créer vous-même les onglets pour chaque élève et d'y recopier ces tableaux.
Sinon, n'hésitez pas à me solliciter.
Cordialement,
 
Dernière édition:

Discussions similaires

Réponses
49
Affichages
1 K
Réponses
2
Affichages
320

Membres actuellement en ligne

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83