IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

copier des informations nominatives dans un tableau [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut copier des informations nominatives dans un tableau
    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 initialement la liste des noms de la classe; les colonnes suivantes devraient contenir les données correspondant à chacun d'eux (ex : pour l'élève écrit en A5, les données correspondantes seront 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 »).

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    En gros, la difficulté est ici de trouver le numéro de la ligne feuille "résultats" correspondant au nom saisi en feuille "saisie" cellule B16...

    On peux pour cela utiliser la méthode .find.
    Un exemple plus ou moins adapté de ta demande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub EssaiDeTransfert()
    'Déclaration des variables
        '- Lign = variable qui va stocker le numéro de la ligne
        '- NomEleve = variable qui va stocker la valeur saisie en saisie!B16
    Dim Lign As Long
    Dim NomEleve As String
     
    'Début de bloc With "dans la feuille saisie"
    With Sheets("saisie")
        'remplissage de la variable NomEleve 
        '!!!! au point avant Range ==> référence à la feuille du bloc With
        NomEleve = .Range("B16").Value
    'fin de bloc with
    End With
    'test si aucun nom n'a été saisi
    'pour éviter l'erreur avec la méthode find...
    If NomEleve = "" Then
        'si aucun nom de saisi en B16, message à l'utilisateur
        MsgBox "Aucun nom n'a été saisi en B16. Merci de corriger."
        'en cas de non-saisie ==> on sort de la procédure
        Exit Sub
    'fin du bloc If -- End If fin du test
    End If
    'début de bloc with "avec la feuille résultats"
    With Sheets("résultats")
        'on stocke le numéro de ligne dans la variable Lign
        Lign = .Columns(1).Cells.Find(NomEleve).Row
        'on affecte les valeurs saisies en feuille saisie
        'aux cellules de la feuille résultat Lign correspondante...
        .Cells(Lign, 2) = Sheets("saisie").Range("B20")
        .Cells(Lign, 3) = Sheets("saisie").Range("B22")
        .Cells(Lign, 4) = Sheets("saisie").Range("B24")
    'fin de bloc with
    End With
    'fin de procédure
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut merci pour cette réponse express !
    Encore merci; bravo pour la qualité de vos services !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Copier des informations dans un tableau selon une référence
    Par hvegung dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/06/2015, 12h14
  2. Java:Affichage des informations saisie dans un tableau
    Par oyarson dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 16/11/2010, 11h55
  3. [XL-2003] copier des informations d'un fichier xls dans un autre fichier xls
    Par ironfalcon dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 23/03/2010, 13h39
  4. Copier des informations d'un userforms à un tableau Excel
    Par Aeltith dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 30/07/2008, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo