[vba-excel]copier résultats dans tableau

Résolu
FabienG -  
 FabienG -
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 »).

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. FabienG
       
      Merci beaucoup Michel, je suis le roi du monde !...(jusqu'au prochain iceberg?...)
      Problème ciblé et résolu avec précision; bravo !
      0