En fonction de la cellule, rechercher sur la bonne feuille

Bonjour, ça faisait un petit moment , et j'espère que vous allez bien.

Voila aujourd'hui j'ai un souci très spécial.

Je cherche comment faire pour que selon le contenue de ma cellule, les données aillent se chercher dans la feuille nommé comme ma cellule automatiquement.

Voici un fichier d'exemple ci-joint. Si vous ne saisissez pas bien mon problème, n'hésitez pas a m'en demander plus, merci

Cordialement

https://www.excel-pratique.com/~files/doc/Exmple_pages.xls

Bonjour

Après avoir rajouté un s à Math sur les Feuilles, tu pourras utiliser la formule suivante:

=MOYENNE(DECALER(INDIRECT($C7&"!$E$6:$H$6");EQUIV(D$6;INDIRECT($C7&"!$D$7:$D$10");0);;))

en D7, et à incrémenter sur tout le tableau.

https://www.excel-pratique.com/~files/doc/Exemple_Retour.xls

Cordialement

Bonjour Amadeus. Désolé du retard dans ma réponse, mais j'ai du formater mon pc ^^

Merci beaucoup c'est ça je pense, je me remet sur mon dossiers.

Amicalement

leconverti a écrit :

Bonjour Amadeus. Désolé du retard dans ma réponse, mais j'ai du formater mon pc ^^

Merci beaucoup c'est ça je pense, je me remet sur mon dossiers.

Amicalement

EDIT:

J'aurais une autre question toujours dans le même rapport.

Comment faire pour qu'un page change de nom selon une cellule ?

Est-ce possible ?

Merci beaucoup,

cordialement

PS je me suis tromper, j'ai fais "citer" au lieu de "éditer", vous pouvez supprimer le post juste en haut, veuillez m'excusez

Bonjour

Oui, c'est faisable par VBA.

Donne un peu plus de précisions.

Quelle feuille veux-tu nommer? Quelle est la cellule? Comment veux-tu nommer la feuille?

Envoie un exemple, ce sera plus facile.

Un exemple

Le code renomme chacune des 3 feuilles à l'ouverture du classeur, selon la date du jour.

https://www.excel-pratique.com/~files/doc/NommerFeuille_Cellule.xls

Amadéus

Oui, c'est un peu comme ton exemple =)

On reprend le me exemple que j'ai joint plus haut.

Par exemple:

La cellule ou j'ai marqué Alfred, si je met a la place Tartempion, la feuille où il y'avait alfred va changer de nom et se nommera Tartempion =)

Dur dur ce que je demande =)

Merci pour ton aide, c'est très gentil.

Amicalement

PS : en gros une feuille attribuée pour chaque nom d'élève, si le nom de l'élève change, le nom de sa fiche aussi

Bonjour

Là, trop dur pour moi. Au secours les pros de VBA!!!

Amadéus a écrit :

Bonjour

Oui, c'est faisable par VBA.

Donne un peu plus de précisions.

Quelle feuille veux-tu nommer? Quelle est la cellule? Comment veux-tu nommer la feuille?

Envoie un exemple, ce sera plus facile.

Un exemple

Le code renomme chacune des 3 feuilles à l'ouverture du classeur, selon la date du jour.

https://www.excel-pratique.com/~files/doc/NommerFeuille_Cellule.xls

Amadéus

Par contre si dans ma cellule j'ai un nom comme "Jean Marie" et bien il ne recherche pas dans la feuille nommé "Jean Marie"

Cette erreur viens de l'espace entre Jean et Marie, comment faire pour y remédier ?sans mettre de tiret ^^

amicalement

Amadéus a écrit :

Bonjour

Là, trop dur pour moi. Au secours les pros de VBA!!!

Pas grave, je peux faire sans, il me faut juste une solution pour ce problème d'espace entre les deux prénoms =)

Merci pour tout

Bonjour

Si tu dois avoir des noms avec des espaces, tu dois modifier les formules de la façon suivante:

=MOYENNE(DECALER(INDIRECT("'"&$C7&"'!$E$6:$H$6");EQUIV(D$6;INDIRECT("'"&$C7&"'!$D$7:$D$10");0);;))

Car les noms contenant un espace doivent être séparés par des quotes ( ' )

Cordialement

Salut leconverti, voici en VBA ce que cela pourrait donner:

Sub test()
Dim i As Integer

For i = 1 To ThisWorkbook.Sheets.Count
    Sheets(i).Name = Sheets(i).Range("A1").Value

Next

Sheets(3).Select
Sheets(3).Range("b2").Value = Sheets(1).Range("B4").Value

End Sub

A toi de t'assurer que la cellule A1 n'est pas vide, que sa longueur est de 30 au maximum, etc ...

Tu déclenche ce code quand ca te tente A l'ouverture du fichier, au changement de feuille, au changement de cellule.

A+

Francois.

Bonjour,

pour renommer automatiquement ton ancien onglet avec le nouveau nom, tu peux faire comme ceci, attention toutefois qu'il n'y ait pas de doublons dans les noms d'élèves

dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("C7:C10"), Target) Is Nothing And Target.Count = 1 Then
    If Target <> [élève] Then nouveau = Target: Call renomme
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Range("C7:C10"), Target) Is Nothing And Target.Count = 1 Then
    ActiveWorkbook.Names.Add Name:="élève", RefersToR1C1:="=" & Chr(34) & Target.Formula & Chr(34)
  End If
End Sub

et dans un module standard :

Public nouveau
Sub renomme()
For Each sh In Sheets
If sh.Name = [élève] Then sh.Name = nouveau: Exit For
Next sh
End Sub

Merci beaucoup pour m'avoir répondu sur ce sujet, qui en comportait finalement 2. Mais je ne voulais pas créer un autre topic

Je vais essayer de tout adapter sur mon fichier à présent, merci encore a tous

Je mettrais résolu quand j'aurais terminé. Bonne soirée a vous.

Cordialement

FrancoisM a écrit :

Salut leconverti, voici en VBA ce que cela pourrait donner:

Sub test()
Dim i As Integer

For i = 1 To ThisWorkbook.Sheets.Count
    Sheets(i).Name = Sheets(i).Range("A1").Value

Next

Sheets(3).Select
Sheets(3).Range("b2").Value = Sheets(1).Range("B4").Value

End Sub

A toi de t'assurer que la cellule A1 n'est pas vide, que sa longueur est de 30 au maximum, etc ...

Tu déclenche ce code quand ca te tente A l'ouverture du fichier, au changement de feuille, au changement de cellule.

A+

Francois.

Bonsoir François. Merci beaucoup pour ta réponse mais je suis très novice en VB donc j'ai pas compris

felix a écrit :

Bonjour,

pour renommer automatiquement ton ancien onglet avec le nouveau nom, tu peux faire comme ceci, attention toutefois qu'il n'y ait pas de doublons dans les noms d'élèves

dans le code de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("C7:C10"), Target) Is Nothing And Target.Count = 1 Then
    If Target <> [élève] Then nouveau = Target: Call renomme
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Range("C7:C10"), Target) Is Nothing And Target.Count = 1 Then
    ActiveWorkbook.Names.Add Name:="élève", RefersToR1C1:="=" & Chr(34) & Target.Formula & Chr(34)
  End If
End Sub

et dans un module standard :

Public nouveau
Sub renomme()
For Each sh In Sheets
If sh.Name = [élève] Then sh.Name = nouveau: Exit For
Next sh
End Sub

J'ai bien essayé exactement comme tu m'a dit mais je reçoit une erreur.

Merci beaucoup pour vos réponses, j'approche du but ^^.

Amadeus, par contre les guillemés et les apostrophe, c'est impeccable. Merci à toi.

Bonne soirée a vous.

Amicalement

Re-,

dans ta fenêtre VBE (celle que tu m'as montrée), regarde au niveau de Outils/Références s'il n'y a pas un MANQUANT (si oui, décoche la case correspondante)

Peut-être?

Oui impeccable ça fonctionne. Par contre, sur mon fichier de travail, au lieu du titre "élèves", et bien il reste vie. Et la ça ne marche plus, comment faire ? merci beaucoup de me faire avancer

Amicalement

Re-,

j'ai vu sur ton image, que tu utilisais elève, et non élève (un e à la place du é)

peut-être?

Regarde dans insertion/Nom/Définir, quel nom est présent, et sa valeur

1test.xlsx (11.92 Ko)

oui je voulais adapter, mais voila ce que j'ai comme soucis à présent, merci dpour ton aide

leconverti a écrit :

Oui impeccable ça fonctionne. Par contre, sur mon fichier de travail, au lieu du titre "élèves", et bien il reste vie. Et la ça ne marche plus, comment faire ? merci beaucoup de me faire avancer

Amicalement

Re,

  • au lieu du titre "élèves", et bien il reste vie

je ne comprends pas trop......tu veux dire vide?

Quelle valeur a le nom élève, comme posé dans mon précédent post?

As-tu bien défini la zone de tes élèves?

Sur mon exemple, il s'agissait de la zone Range("C7:C10"), il faut adapter à ton fichier dans les 2 procédures (Change et Selection_Change)

oui désolé

Tu m'a fait les vb etc avec le titre élèves, car le titre de ma colonne comportait Elève. Maintenant, sur mon fichier réel, il n'y a rien du tout. La cellule est vide, alors est-ce possible ?

J'aurais peut être du le dire avant, mais je pensais pouvoir adapter sans ce détail

Meric,

Amicalement

Re-,

oui, tout à fait...

lorsque tu sélectionnes une cellule, la valeur de la cellule est stockée sous forme de nom.

Si tu modifies la cellule, il y a alors une comparaison entre l'ancienne valeur et la nouvelle.

Si la valeur diffère, alors l'onglet recherché est l'onglet de l'ancienne valeur, et est renommé avec le nouveau nom de l'élève.

Donc pas besoin de titre

Définis bien la zone à surveiller comme dit précèdemment

Par contre, le code ne va pas créer de nouvel onglet, il faut que tous les onglets soient créés avant....

Rechercher des sujets similaires à "fonction rechercher bonne feuille"