Quelle fonction?
Fermé
didijo44
-
17 févr. 2010 à 14:01
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 18 févr. 2010 à 06:49
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 18 févr. 2010 à 06:49
A voir également:
- Quelle fonction?
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
7 réponses
ndsaerith
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
28
17 févr. 2010 à 14:17
17 févr. 2010 à 14:17
Bonjour,
je ne pense pas que ça soit faisable via une fonction, mais par du code VBA. Si cela t'interesse dit le moi je t'en dirait plus ;)
@+++
je ne pense pas que ça soit faisable via une fonction, mais par du code VBA. Si cela t'interesse dit le moi je t'en dirait plus ;)
@+++
En effet cela pourrait m'intéresser, parce que le copier coller avec les filtres commence à me gaver!!!
Merci de ton aide
Merci de ton aide
ndsaerith
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
28
17 févr. 2010 à 14:26
17 févr. 2010 à 14:26
Tu connais un peu le développement? Sais tu comment on fait une macro dans excel? Quelle est ta version d'excel?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ndsaerith
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
28
17 févr. 2010 à 16:38
17 févr. 2010 à 16:38
D'abord fait une copie de ton fichier puis travail sur cette copie.
Alors voila un petit lien dans le site pour accéder aux pages de code :
https://www.commentcamarche.net/faq/8130-mise-a-jour-d-une-procedure-ou-d-une-fonction-en-vba
dans l'arborescence chois "this workbook"
dans la fenêtre qui s'ouvre, en haut, dans la 1er liste déroulante choisi "workbook"
le code suivant apparait :
entre ces lignes, copie le code ci-dessous puis initialise les 2 variables signalées par les commentaires et sauvegarde.
Puis ferme tout et ré ouvre le classeur (la copie hein ;) )
Normalement le tri est fait :)
@++++
Alors voila un petit lien dans le site pour accéder aux pages de code :
https://www.commentcamarche.net/faq/8130-mise-a-jour-d-une-procedure-ou-d-une-fonction-en-vba
dans l'arborescence chois "this workbook"
dans la fenêtre qui s'ouvre, en haut, dans la 1er liste déroulante choisi "workbook"
le code suivant apparait :
Private Sub Workbook_Open() End Sub
entre ces lignes, copie le code ci-dessous puis initialise les 2 variables signalées par les commentaires et sauvegarde.
Dim i As Integer Dim j As Integer Dim y As String Dim listedestinataires() As String Dim trouvedestinataires() As String Dim nbdest As Integer Dim VarTab As Variant nbdest = 1 j = 1 'initialiser ici la lettre de la colonne qui contient l'entête destinataire y = "A" i = 1 Do While Feuil1.Cells(i, y).Value <> "" trouvedestinataires = Filter(listedestinataires, "Destinataire " & (Feuil1.Cells(i, y).Value), True) On Error Resume Next VarTab = UBound(trouvedestinataires) On Error GoTo 0 If VarTab < 0 Or i = 1 Then Sheets.Add.Move After:=Sheets(Sheets.Count) ActiveSheet.Name = "Destinataire " & (Feuil1.Cells(i, y).Value) nbdest = nbdest + 1 ReDim Preserve listedestinataires(nbdest) listedestinataires(nbdest) = "Destinataire " & (Feuil1.Cells(i, y).Value) ActiveSheet.Cells("1", "A").Select Else Sheets("Destinataire " & (Feuil1.Cells(i, y).Value)).Activate j = 1 Do While Sheets("Destinataire " & (Feuil1.Cells(i, y).Value)).Cells(j, y).Value <> "" j = j + 1 Loop Sheets("Destinataire " & (Feuil1.Cells(i, y).Value)).Cells(j, "A").Select End If Feuil1.Cells(i, y).EntireRow.Copy Sheets("Destinataire " & (Feuil1.Cells(i, y).Value)).Paste i = i + 1 Loop 'on parcours les lignes ' si c 'est la première fois qu'on voit le code destinataire ' on crée une nouvelle feuille ' on se place dessus à la première ligne ' si le code destinataire a déjà été croisé ' on se place sur la feuille correspondante ' et sur la dernière ligne +1 ' On copie la ligne de la feuille 1 sur la feuille en cours End Sub
Puis ferme tout et ré ouvre le classeur (la copie hein ;) )
Normalement le tri est fait :)
@++++
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 411
17 févr. 2010 à 17:20
17 févr. 2010 à 17:20
Bonjour
Au modéle ci joint, une solution sans macro qui peut être, résoudra d'une autre façon votre problème.
http://www.cijoint.fr/cjlink.php?file=cj201002/cijezbO2EX.xls
Revenez si besoin d'explication
Crdlmnt
Au modéle ci joint, une solution sans macro qui peut être, résoudra d'une autre façon votre problème.
http://www.cijoint.fr/cjlink.php?file=cj201002/cijezbO2EX.xls
Revenez si besoin d'explication
Crdlmnt
Raymond PENTIER
Messages postés
58669
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
27 septembre 2024
17 203
18 févr. 2010 à 02:32
18 févr. 2010 à 02:32
Bien !
Je ne parviens pas à jongler ainsi avec INDEX et EQUIV ... donc j'apprécie d'autant mieux.
Je ne parviens pas à jongler ainsi avec INDEX et EQUIV ... donc j'apprécie d'autant mieux.
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 411
18 févr. 2010 à 06:49
18 févr. 2010 à 06:49
Bonjour mon ami Raymond
pas difficile, tu fais un esai en scindant les formules:
INDEX(CHAMP;3;2)
te renvoi la valeur du champ sur la 3° ligne de la 2° colonne du champ
si tu remplace le N° de ligne par EQUIV:
EQUIV(CELL;Colonne;0)
te renvoi le N° de ligne dans le champ ou se trouve la valeur cherchée(CELL).
Le;0) est le même principe que pour RECHERCHE
ensuite, pour éviter de rectifier les cellules en "ajustant" les références de colonnes cherchées, il suffit d'utiliser LIGNE() et COLONNE() , corrigés de + ou - pour renvoyer la bonne position dans le champ de recherche.
Bon soleil. Au plaisir
pas difficile, tu fais un esai en scindant les formules:
INDEX(CHAMP;3;2)
te renvoi la valeur du champ sur la 3° ligne de la 2° colonne du champ
si tu remplace le N° de ligne par EQUIV:
EQUIV(CELL;Colonne;0)
te renvoi le N° de ligne dans le champ ou se trouve la valeur cherchée(CELL).
Le;0) est le même principe que pour RECHERCHE
ensuite, pour éviter de rectifier les cellules en "ajustant" les références de colonnes cherchées, il suffit d'utiliser LIGNE() et COLONNE() , corrigés de + ou - pour renvoyer la bonne position dans le champ de recherche.
Bon soleil. Au plaisir