Tri de données sur plusieurs feuilles
Bonjour à tous,
Je ne sais pas si mon titre est vraiment adapté à mon problème que j'ai du mal à formaliser :
J'ai un classeur excel de plusieurs pages avec des données communes entre chaque page et d'autres différentes.
Pour ne pas à avoir à remplir plusieurs fois les mêmes données j'ai mis des équivalences entre feuil1 et feuil2 (ex : la cellule a2 de la feuil2 =feuil1!a2). Cela me permet de rentrer les données en feuil1 et ceci rempli aussi la feuil2.
Ensuite je dois remplir d'autres données en feuil2 seulement (ex: l'âge des participants).
Mon problème est que quand je trie les données en feuil1 (par groupe par exemple), cela retrie également les données correspondantes en feuil2 et les cellules différentes ne correspondent plus à la bonne ligne (dans l'exemple, l'âge des personnes n'est plus le bon).
Je ne sais si cela est très clair, je joins une feuille test pour faciliter la compréhension.
Merci beaucoup.
Salut et bienvenue sur le Forum,
Dans le fichier ci-joint, les données en place sur la feuille 2 ne dépendent pas d'une formule, elles sont simplement inscrites.
Lorsque tu sélectionnes la feuille 2, un contrôle est effectué - sur la base de la colonne A de chacune des feuilles 1 et 2 - et toutes les données de la feuille 1 qui ne sont pas déjà inscrites sur la feuille 2 sont inscrites à la suite des données déjà en place.
Afin de faire un essai, tu sélectionnes la feuille 2, tu effaces les deux dernières lignes, tu sélectionnes une feuille quelconque et tu sélectionnes à nouveau la feuille 2.
Est-ce un début d'idée ? Si oui, on pourra voir s'il faut trier la feuille 2 selon le tri effectué sur la feuille 1, ou simplement effectuer un tri indépendant de la feuille 2 ou je ne sais quoi de plus.
A te relire.
Merci pour le bienvenue et ta réponse,
A priori cela réalise exactement ce que je souhaitais. L'ajout d'une personne dans la feuil1 la rajoute aussi dans la feuil2 et je peux trier les deux feuilles à ma guise sans que cela ne dérange l'autre.
Je pense que le tri indépendant comme il l'est déjà me convient mieux qu'un tri commun.
En revanche peux-tu me dire comment tu as fait (le classeur joint était juste un test) ? Et surtout s'il n'existe pas une méthode sans macros (que je ne maîtrise absolument pas) ?
Merci.
Re,
J'ai placé la macro ci-dessous sur le code de la feuille 2 du fichier retourné :
Option Explicit
Private Sub Worksheet_Activate()
Dim i As Integer, j As Integer
Application.ScreenUpdating = False
With Sheets("Feuil1")
For i = 2 To .Range("A1048576").End(xlUp).Row
For j = 2 To Range("A1048576").End(xlUp).Row
If .Cells(i, 1) = Cells(j, 1) Then GoTo Etiquette
Next j
Cells(j, 1) = .Cells(i, 1)
Cells(j, 2) = .Cells(i, 2)
Etiquette:
Next i
End With
End SubTu peux essayer de placer ces lignes dans le code de la feuille 2 de ton fichier et voir si ça fonctionne. Pour cela tu cliques à droite sur l'onglet de la feuille et tu choisis l'option "Visualisé le code". Avant il faut peut-être aller voir comment se présente ce code dans mon fichier.
Je dis : "et voir si ça fonctionne" car si la structure de ta feuille réelle n'est pas exactement celle que tu m'as fourni, tu risques bien d'avoir des surprises
Autrement, si tu ne t'en sors pas, il faudrait me fournir le fichier réel (seules quelques lignes représentatives sont nécessaires et tu peux les rendres anonymes si nécessaire). Dans le pire des cas, tu pourrais me fournir ton fichier en courriel privé.
Cordialement.
Ouh là oui en effet.
Et c'est vraiment impossible sans macros ? Parce que j'aimerais pouvoir le faire sur d'autres fichiers plus tard (et j'aime bien comprendre comment ça marche
Désolé, je ne sais pas le faire sans macro.
Indique éventuellement ce fil comme résolu - peu de membre s'intéressant encore à un fil déjà entamé - et recommence-en un autre en précisant bien que tu veux absolument une solution sans macro.
Mais si tu n'obtiens pas de réponse, reviens sur ce fil
Cordialement.
Je vais faire exactement ça !
Merci pour tout et peut-être à très bientôt alors !