Renvoie de données dans Excel
cyberMJC
-
Armojax Messages postés 1863 Date d'inscription Statut Membre Dernière intervention -
Armojax Messages postés 1863 Date d'inscription Statut Membre Dernière intervention -
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 ????
1 réponse
-
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-
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
-