[vba-excel]copier résultats dans tableau

Résolu/Fermé
FabienG - 2 nov. 2011 à 13:33
 FabienG - 3 nov. 2011 à 19:52
Bonjour,

je découvre la toute puissance de la macro sous excel 2003, mais son écriture m'est encore trop difficile pour m'en sortir seul (heures déjà passées à l'appui...)

J'espère que cela retiendra votre attention, et je vous en remercie par avance...

Un fichier : « saisie.xls »
Deux feuilles : « saisie » et « résultats »

La feuille « saisie » contient des cellules non contigues :
Cellule B16 : nom d'élève (à partir d'un menu déroulant existant)
Cellules B20, B22, B24 : données correspondantes de l'élève sélectionné en B16

La feuille « résultats » contient une série de colonnes, dont la première (A) contient la liste des noms de la classe, et les colonnes suivantes les données correspondant à chacun d'eux (ex : pour l'élève écrit en A5, les données correspondantes sont sur la même ligne : B5, C5, D5).

L'idée : créer une macro pour copier les résultats individuels élève par élève à partir de la feuille « saisie », vers le tableau de résultats de classe (feuille « résultats »).


A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 302
Modifié par michel_m le 2/11/2011 à 17:33
Bonjour
je découvre la toute puissance de la macro sous excel 2003
Alors, Bienvenue à bord du Titanic :o)

Option Explicit 

Sub editer_resultats_classe() 
Dim eleve As String, note1 As Variant, Note2 As Variant, note3 As Variant 
Dim Lig As Byte 

With Sheets("saisie") 
     If .Range("B16") = "" Then GoTo erreur 
     eleve = .Range("B16") 
     note1 = IIf(.Range("B20") = "", "", .Range("B20")) 
     Note2 = IIf(.Range("B22") = "", "", .Range("B22")) 
     note3 = IIf(.Range("B24") = "", "", .Range("B24")) 
      
     With Sheets("Résultats") 
          Lig = .Columns(1).Find(eleve, .Range("A1"), xlValues).Row 
          .Cells(Lig, "B") = note1 
          .Cells(Lig, "C") = Note2 
          .Cells(Lig, "D") = note3 
     End With 

     MsgBox " les notes de " & eleve & " ont été transcrites dans la feuille ""résultats""" 
     .Range("B16,B20,B22,B24").ClearContents 

End With 
Exit Sub 

erreur: 
MsgBox " Choisir un élève !,vbcritical" 

End Sub 

maquette:
https://www.cjoint.com/?3KcrBFbBkSp
Michel
0
Merci beaucoup Michel, je suis le roi du monde !...(jusqu'au prochain iceberg?...)
Problème ciblé et résolu avec précision; bravo !
0