Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

rechercher

D

Dgedge

Guest
Bonsoir à tous et toutes.

Je vous expose mon petit soucis de débutant :
j'ai un premier classeur dans lequel sont enregistrées des feuilles représentant des fiches ( la 1° feuille contient la liste des titres des fiches )

Dans un deuxième classeur sont enregistrées d'autres fiches toujours sous forme de feuilles ( la 1° feuille contient la liste des titres des fiches )

chaque fiche du deuxieme classeur fait référence à une seule du premier classeur ( meme titre )

Donc ce que je voudrait, c'est avec un Userform contenant un textbox qui reprend le titre d'une des fiches du classeur 1 ( ça c'est fait ), afficher la fiche du classeur 2 correspondante et la je n'y arrive pas.

Je pense qu'il faut faire une recherche dans la feuille 1 du classeur 2 colonne des titres jusqu'à ce que le titre contenu dans la textbox corresponde au titre de la fiche recherchée...

merci pour toute aide...
 
@

@+Thierry

Guest
Salut DgeDge,

Sub Welcome_to_xld ()

Il faut simplement, si tu t'y connais déjà bien en UserForms, qu'à chaque fois, dorénavant si tu travailles en Multi-Classeurs , tu t'efforce de TOUT déclarer dans tes instructions.

c'est un peu plus long et rigoureux !

Tes modules ressembleront à ça :

Option Explicit
Dim ActuelWkbk As Workbook
Dim WsBaseX As Worksheet

Dim OtherWkbk As Workbook
Dim WsBaseY As Worksheet


Private Sub UserForm_Initialize()

Set ActuelWkbk = ThisWorkbook
With ActuelWkbk
Set WsBaseX = .Worksheets("DatabaseX")
End With

Set OtherWkbk = Workbooks("Autre.xls")"
With OtherWkbk
Set WsBaseY = .Worksheets("DatabaseY")
End With

..............
etc etc


Ensuite il faut savoir travailler comme ça :

L = WsBaseY.Range("A65536").End(xlUp).Row
Plage = WsBaseY.Range("A2:C" & L).Address
ListBox1.RowSource = "DatabaseY!" & Plage

Je pense que c'est clair, car te faire une démo, c'est long et donc forcément multi classeur et on est limité à 50Ko sur le forum.

Mais si tu vas charger cette démo, j'utilise cette façon de travail pour un mono Classeur......... Contact Manager V2.01.zip (50k)

C'est en plus un travail commun fait dans ce forum...

Bonne Soirée
@+Thierry
 
D

Dgedge

Guest
Merci Thierry mais je ne suis pas assez balèze pour tout saisir...

En plus tu parle de listbox mais moi je n'en utilise pas...

Non, ce que je veux faire est je pense plus simple :
je suis dans le classeur 1- feuille 1, j'ai déja la liste des titres des feuilles contenues dans ce classeur.
J'en choisis une, la feuille sélectionnée apparait - elle s'appelle "Tartampion"
j'ai un bouton qui ouvre un Userform dans lequel un text box me redonne le titre de la fiche.
Quand je fais OK le classeur 2 s'ouvre ( jusque la ça marche )...

après : ce que j'aimerais avoir :

je reprends : le classeur 2 s'ouvre sur la feuille qui correspond à celle du classeur 1 ( elles ont le meme titre ). C'est tout.

C'est la recherche de la feuille du classeur 2 que je n'arrive pas à faire

merci
 
@

@+Thierry

Guest
re bonsoir....

je t'ai donné un exemple que ce soit une ListBox ou un simple CommandButton c'est Idem !

quand tu dis "La recherche de la feuille du classeur 2 que je n'arrive pas à faire" tu la fais bien depuis le Classeur 1 ? non ?

DonC in faut que VBA sache de quoi on parle de toute manière. Donc ce que je t'ai décrit au dessus ce n'est pas des blagues !! lol si tu veux faire des variableS sur des nomS de feuilles de différents classeurs, c'est le minimum que tu doit savoir faire.

Sinon tu vas soit avoir des plantages permanents, soit pointer sur la feuille du classeur actif.

Donc il faut déclarer les Noms de classeurs comme dans l'exemple... Tu pourras jouer avec une variable du style

Toto = ActiveSheet.Name

OtherWkbk.Sheets(Toto).activate

Bon Courage
@+Thierry
 

Discussions similaires

Réponses
8
Affichages
307
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…