Re PB avec classeurDestination.Worksheets

kolivier

XLDnaute Occasionnel
Bonsoir le forum et à tous les ocurageux qui sont encore éveillés.

Je vou sexpose mon petit souci.

J'ouvre un premier classeur : 1.xls et je tape dans la cellule, par exemple, la valeur suivante TOTO15.

En cliquant sur un bouton, je souhaite ouvrir le classeur 2 et la feuille correspondante a la valeur tapée dans le classeur 1.xls.

Auriez, s'il vous plait une idée à me proposer, Merci mille fois d'avance car je dois rendre mon projet demain matin .

il ne fonctionne pas lorsque le fichier 2.xls est en affichage masqué.
C'est pourquoi j'ai fait une exemple (fichier joint):
2.xls est en affichage non masqué
3.xls est en affichage masqué.

Les fichiers 2.xls et 3.xls sont à copiers dans la racine C:


Merci de votre gentillesse [file name=3_20051121212310.zip size=23645]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/3_20051121212310.zip[/file]
 

Pièces jointes

  • 3_20051121212310.zip
    23.1 KB · Affichages: 14

kolivier

XLDnaute Occasionnel
Merci beaucoup pour ta réponse rapide, cependant j'ai deja un programme qui fonctionne trés bien malgrés l'affichage caché.

Mais depuis que je dois proposer beaucoup de feuille différentes je suis dans l'obligation de passer par cet autre programme qui lui bloque.

Mon ancien Programme :

Dim imat
imat = impFEUILLE.Range('IMAP')
If imat = NICOLAS Then
Workbooks.Open ('dossiers.xls')
Set classeurDestination = Workbooks('dossiers.xls')
Set feuilleDestination = classeurDestination.Worksheets('NICOLAS')
feuilleDestination.Activate

Mais je ne peut pas mettre ces lignes pour chaque prénom c'est pourquoi je souhaitait trouver un programme qui m'evite de personnaliser un peu comme

imat = impFEUILLE.Range('IMAP')
Workbooks.Open ('dossiers.xls')
Set classeurDestination = Workbooks('dossiers.xls')
Set feuilleDestination = classeurDestination.Worksheets('imat')
feuilleDestination.Activate

On m'a proposé trés gentiment ce programme :
Sub Bouton1_QuandClic()
'
Dim NomFeuille As String
'
NomFeuille = Range('D4').Value
Application.Workbooks.Open ('2.xls')
ActiveWorkbook.Sheets(NomFeuille).Select
End Sub

mais il bloque quand l'affichage est masqué.

Je reste toujours dans l'espoir de trouver une solution.

Je fais donc appel à toute votre generosité................
 

kolivier

XLDnaute Occasionnel
cette syntaxe parvient tout a fait a activier une feuille d'un classeur caché mais me limite considérablement car je dois reztapper toutes ces lignes pour chaque prenom.
..................................

Dim imat
imat = impFEUILLE.Range('IMAP')
If imat = NICOLAS Then
Workbooks.Open ('dossiers.xls')
Set classeurDestination = Workbooks('dossiers.xls')
Set feuilleDestination = classeurDestination.Worksheets('NICOLAS')
feuilleDestination.Activate
 

myDearFriend!

XLDnaute Barbatruc
Re,

Désolé kolivier, je pense que je ne vais pas pouvoir faire grand chose pour t'aider. J'avoue que ton morceau de code va au-delà de mon aptitude à comprendre...
Partant du principe que pour moi, 'activer' une feuille signifie la rendre active et donc l'afficher, là.... vouloir activer une feuille sans rendre visible le classeur auquel elle appartient, ça me laisse perplexe...

Cela dit, reste à savoir pourquoi tu souhaites l'activer... Si l'objectif est d'activer la feuille pour pouvoir agir sur ses objets Ranges (modifier des valeurs de cellules, changer le format, les bordures, etc...), sache tout de même que l'activation de feuille et sélection de cellules au préalable est inutile, voir même déconseillé en VBA.

Je veux dire par là que, le classeur étant masqué ou non, il est nettement préférable de faire :
Sheets(1).Range('A1').Value = 'Toto'

Plutôt que :
Sheets(1).Activate
Range('A1').Select
Selection.Value = 'Toto'

Je te souhaite bonne chance pour la suite et j'espère que quelqu'un d'autre aura une idée à te proposer...

Au besoin, si je suis 'à côté de la plaque', crée un nouveau fil de discussion afin que d'autres puissent se pencher sur ce problème.

Cordialement,
 

kolivier

XLDnaute Occasionnel
On est jamais a coté de la plaque quand on fait avancer les idées, et pour cela je t'en suis reconnaissant, car bien que je dispose d'un programme qui fonctionne avec unde demande d'activation d'une feuille cachée, saches que j'ai obtenu ce programme par des années d'autodidcate grace a différentes personnes comme toi qui apporte toujours quelques choses. Ta reflexion, il est possible, ne repond peut etre pas aujourd'hui a mon probleme actuel, mais répondra certainement a un probleme à venir.


T'inquiéte, je te remercie trés sincérement.
Bonne soirée.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 379
Messages
2 087 765
Membres
103 662
dernier inscrit
rterterert