Rechercher une feuille par son nom

Petronie

XLDnaute Occasionnel
Salut le Forum.
J'ai un problème qui ne va pas être simple à expliquer.
J'ai un classeur avec des USF, qui reprennent entre autre, des n° de travailleur.
J'aimerais que à partir du n° de travailleur qui est dans mon USF, je puisse retrouver une feuille dans un autre classeur, qui porte comme nom, le N° de travailleur.

J'ai déjà le même principe pour retrouver le travailleur mais dans une feuille bien déterminée et là, je voudrais qu'il retrouve la feuille portant le nom du n° de trvailleur.
Pour cela, j'utilise une fonction du type:

NumNTRAVAILLEUR = Val(NTRAVAILLEUR)' NTRAVAILLEUR correspond à la TextBox

Range('A7').Select
Trouve = False
Do Until ActiveCell.Value = ''

If ActiveCell.Value = NumNTRAVAILLEUR Then
Trouve = True
With AF
NOM = ActiveCell.Offset(0, 1)
PRENOM = ActiveCell.Offset(0, 2)
Regime.Value = ActiveCell.Offset(0, 4)

End With
Exit Do



Je suis pas certaine que ce soit très clair et, en plus, je ne sais pas joindre le fichier, il est beaucoup trop gros.
Je ne sais pas si quelqu'un qui comprend ce que je voudrais peut m'aider.
merci d'avance.
Pétronie
 
H

henri

Guest
Bonjour,
je te joint un fichier que j'ai trouvé sur le forum.Ca peut d'aider dans un premier temps. [file name=onglet_20060430135345.zip size=6915]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/onglet_20060430135345.zip[/file]
 

Pièces jointes

  • onglet_20060430135345.zip
    6.8 KB · Affichages: 29

Petronie

XLDnaute Occasionnel
Merci Henry,
ça doit être quelque chose comme ça, je pense qu'il me faudrait mais je ne comprends pas comment je dois m'y prendre parce que, je ne démarre pas d'une cellule mais d'une TextBox. (Et, je n'arrive pas bien à comprendre comment elles fonctionnent ces formules.)
Ce qu'il y a de bien, c'est qu'au départ, il n'y a pas besoin de connaitre quelle feuille tu vas sélectionner et c'est exactement mon cas.
Je ne sais pas dire avant quelle feuille va être sélectionnée et en plus, dans mon cas, j'ai rajouté un bout de code qui dit que s'il ne trouve pas le n° de Travailleur, il doit ajouter une feuille au classeur avec comme nom, le n° de trvailleur. Et ça, ça fonctionne. Le problème est qu'il ne trouve jamais donc, il rajoute tout le temps une feuille et comme il met le n° de travailleur comme nom, il se plante puisqu'il recréé des feuilles qui existent déjà et il me dit qu'il ne peut pas redonner le même nom qu'une autre feuille à une nouvelle.

Message édité par: Pétronie, à: 30/04/2006 16:39
 

Petronie

XLDnaute Occasionnel
Salut Moustache et les autres.
Oui, je crois que c'est quelque chose comme ça mais je ne sais pas comment le mettre dans mon code. J'ai déjà essayé plusieurs façons de faire mais ça ne va pas.
Je vais encore recommencer avec ton code et je vais voir si ça fonctionne ou pas.
Je te remercie.
Pétronie.
 

Petronie

XLDnaute Occasionnel
Bon ben, ça marche pas, je comprends pas comment je dois faire.

Il ne retrouve pas la feuille avec comme nom le n° de trvaialleur et donc à chaque fois, il m'en rajoute une mais forcément si elle existe déjà, il se plante.
Comment je pourrais lui dire que si la feuille existe déjà, qu'il la sélectionne?

Est-ce que quelqu'un peut m'aider?
Merci d'avance,
Pétronie.
 

moustache

XLDnaute Nouveau
Si je comprends bien, ce que je te proposais ne marche pas ?

Même si ton fichier est trop gros, tu pourrais peut-être envoyer le code que tu as écris pour qu'on essaie de comprendre un peu mieux ce que tu fais ?

Courage, on va y arriver ! ;)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Petronie, Moustache, Henri, le Forum


Voici un exemple avec une Fonction toute bête qui retourne une Boolean 'Vrai' / 'Faux' si la Feuille existe déjà...


Option Explicit

Sub TheWorkSheetActiver()
Dim WSnameInput As String
Dim WSNew As Worksheet

   
'Pour faire un test, mais ce serait ta Variable de 'n° de travailleur'
    WSnameInput = 'Feuil1'
   
   
If Not TheWorkSheetChecker(WSnameInput) Then
     
       
With ThisWorkbook
          .Worksheets.Add After:=.Sheets(.Sheets.Count)
         
Set WSNew = .Sheets(.Sheets.Count)
            WSNew.Name = WSnameInput
       
End With
   
End If
   
    ThisWorkbook.Worksheets(WSnameInput).Activate

End Sub
 
 
 
 
Function TheWorkSheetChecker(WSName As String) As Boolean
Dim WS As Worksheet

   
For Each WS In ThisWorkbook.Worksheets
       
If WS.Name = WSName Then TheWorkSheetChecker = True
   
Next

End Function
 


Bonne Soirée
[ol]@+Thierry[/ol]
 

Petronie

XLDnaute Occasionnel
Merci à vous tou.
Alors, voilà, en fichier joint, une petite partie du code que j'utlise.
Ce code, je l'ai déjà utilisé pour retrouver des trvailleurs dans une feuille bien précise, du classeur actif. Mais maintenant, je voudrais qu'il retrouve les feuilles qui portent le n° de trvailleur entré dans l'USF, et ceci, dans un autre classeur appelé 'FicheIndivAF'.
C'est pas facile à expliquer.
Bref, je vous laisse jeter un coup d'oeil.
Merci.
Pétronie. [file name=RecherDsFichInd.zip size=10404]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RecherDsFichInd.zip[/file]
 

Pièces jointes

  • RecherDsFichInd.zip
    10.2 KB · Affichages: 21

Petronie

XLDnaute Occasionnel
Ou alors, mon idée de départ n'était pas de retrouver la feuille à partir de son nom mais de retrouver la feuille à partir du n° de travailleur qui se trouve sur chacune des feuilles en case 'B1'.
Mais je ne sais pas comment le faire chercher dans toutes les feuilles du classeur.
 

Petronie

XLDnaute Occasionnel
Voici encore en fichier joint mon autre classeur qui s'appelle 'FicheIndivAF'.
C'est dans ce classeur là que je voudrais retrouver les feuilles pour pouvoir y entrer des données qui se trouve dans mon USF (que je n'ai pas mis dans l'exmple joint avant). [file name=FicheIndivAF.zip size=16123]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/FicheIndivAF.zip[/file]

Message édité par: Pétronie, à: 30/04/2006 21:22
 

Pièces jointes

  • FicheIndivAF.zip
    15.7 KB · Affichages: 27

moustache

XLDnaute Nouveau
Bonsoir Petronie, Thierry, henri, le forum

Je crois que ton pb vient d'un mélange entre texte et nombre ; le nom d'une feuille est du texte.
Donc il faut empêcher ton code de se mélanger les pinceaux entre le numéro des feuilles et leur nom

Regarde ça, pour moi ça marche, je ne sais pas ce que ça donnera une fois remis dans ton appli ? [file name=RecherDsFichInd2.zip size=12757]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RecherDsFichInd2.zip[/file]
 

Pièces jointes

  • RecherDsFichInd2.zip
    12.5 KB · Affichages: 27

Petronie

XLDnaute Occasionnel
Ho la, la, merci Moustache, c'est d'action!!
Maintenant, je vais le mettre avec mon code et je te tiens au courant. En tous cas, c'est tout à fait ce que je voulais.
Mille lerci à vous tous.
Je test et je vous redis si ça fonctionne dans mon code.
Pétronie.
 

Petronie

XLDnaute Occasionnel
J'ai testé, ça à l'air de fonctionner ... mais pas toujours.
Ben oui, il y a quelque chose qui m'échappe. Des fois il retrouve bien la feuille et inscrit bien les données que je veux dedans mais de temps en temps, il inscrit les données dans une autre feuille et puis il sélectionne bien la feuille que je voulais.
Mais mis à part ça, c'est tout à fait ce que je voulais.

Bon, là, je vais vous laisser.
Je vais me coucher et je regarderai de plus près à tout cela demain.
Bonne soirée, à demain et encore merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 919
Membres
104 307
dernier inscrit
Diet