Renvoie de données dans Excel

Fermé
cyberMJC - 19 mars 2005 à 08:43
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 - 22 mars 2005 à 09:03
Dans EXCEL : en feuille 1, J'ai une liste de noms en cellule B3 B4 B5 et une liste de prénoms en cellule C3 C4 C5 ; en cellule D3 j'ai une activité à choisir, exemple: le foot… Toujours, dans la feuille 1 la personne en cellule B5 et C5 fait un choix d'activité en cellule D5. En feuille 2 qui est la feuille qui recense l'activité Foot, je veux renvoyer la personne qui se trouve en cellule B5 de la feuille 1 à la cellule B3, si la personne qui se trouve en cellule B3 de la feuille 1 a fait un autre choix ????
A voir également:

1 réponse

Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
19 mars 2005 à 18:01
Hello CyberMJC,

La petite macro ci-dessous est à mettre dans le code de chacune de tes feuilles "sport".

J'ai compris que :
- tu as une feuille globale qui contient des adhérents (nom, prénom) avec pour chacun le choix d'une discipline
- tu as pour chacune de ces disciplines une feuille qui porte le nom de cette discipline
- dans toutes tes feuilles, les listes commencent en ligne 3, à cause des entêtes en lignes 1 et 2

Il est nécessaire que les disciplines qui figurent après chaque adhérent dans la feuille globale aient les mêmes noms que les feuilles par discipline.

J'ai appelé "Liste" la feuille globale : adapte le nom dans la macro.

Chaque fois qu'on active une feuille "sport", sa liste est recalculée automatiquement.

Private Sub Worksheet_Activate()
    
    Application.ScreenUpdating = False

    Dim I       As Integer   ' pour boucle For...
    Dim Ind     As Integer   ' pour remplissage feuille sport
    Dim NbLis   As Integer   ' nb de lignes liste globale
    Dim NbMe    As Integer   ' nb lignes feuille sport
    Dim FF      As Worksheet ' alias feuille liste globale

    Set FF = Sheets("Liste") ' adapter le nom de la feuille
    NbLis = FF.Cells(3, 2).CurrentRegion.Rows.Count
    NbMe = Me.Cells(3, 2).End(xlDown).Row
    
    ' effacement de la liste du sport de la feuille
    Me.Range(Cells(3, 2), Cells(NbMe, 3)).ClearContents
    Ind = 2
    
    ' reconstruction de la liste du sport de la feuille
    For I = 3 To NbLis
        If UCase(FF.Cells(I, 4).Value) = UCase(Me.Name) Then
            Ind = Ind + 1
            Me.Cells(Ind, 2).Value = FF.Cells(I, 2).Value
            Me.Cells(Ind, 3).Value = FF.Cells(I, 3).Value
        End If
    Next
    
    Application.ScreenUpdating = True

End Sub
0
cyber centre
22 mars 2005 à 08:49
Merci pour cette macro, je vais tenter de la mettre en oeuvre. Je me demendais s'il était possible de renvoyer les données à partir d'une condition comme par exemple : =SI(..........) ? Dès que j'aurai mis en place la macro je vous donne des nouvelles de son fonctionnement. Si jamais je n'y arrive pas est il possible d'envoyer mon fichier excel pour me le faire ?

Encore merci pour ce coup de main, bonne journée
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528 > cyber centre
22 mars 2005 à 09:03
Oui, bien sûr, en cas de PB tu peux...
Mon mail c'est mon pseudo en minuscules, et j'habite chez free.fr.

Armojax.
0