tester si le classeur est actif ou pas

GHISLAIN

XLDnaute Impliqué
bonjour le forum,

Dans un classeur j'utilise des user showmodal sur false, du coup lorsque j'ouvre un autre excel , mon user s'affiche egalement sur le second excel , d'ou des erreurs

je cherche donc a connaitre si mon classeur ou j'ai besoin d'utiliser cet user est actif ou pas , pour ce faire j'utilise ce code qui ne fonctionne pas


If ActiveWorkbook.Name <> "gardes.xlsm" Then
MsgBox "VOUS N'ETES PAS SUR LE BON CLASSEUR ", vbCritical, "ERREUR CLASSEUR ACTIF"
Unload Me
Exit Sub
End If

merci de vos suggestions

amicalement

ghislain
 

GHISLAIN

XLDnaute Impliqué
Re : tester si le classeur est actif ou pas

bonjour gilbert_RGI ,

merci d'etre passer sur mon fil
j'ai du mal m'expliquer lors de mon post

je te retourne ta proposition avec ce que je souhaite , en espérant avoir été plus explicite dans mes propos .

en cliquant sur le bouton , je voudrais que ça écrive uniquement si le classeur garde est actif

amicalement

Ghislain
 

Pièces jointes

  • gardes (1).xlsm
    18.1 KB · Affichages: 29

GHISLAIN

XLDnaute Impliqué
Re : tester si le classeur est actif ou pas

bonjour Lone-Wolf,


merci également d'etre passer sur mon fil

If Workbook.Name <> "gardes" Then et If Workbook.Name <> "gardes.xlsm" Then

amicalement

ghislain


j'ai une erreur d'execution 424 object requis
 

gilbert_RGI

XLDnaute Barbatruc
Re : tester si le classeur est actif ou pas

Dans ma proposition

si tu lances uniquement la macro "test"

si le nom du classeur actif est "gardes.xlsm" l'userform est lancé
si ce n'est pas le cas la messagebox d'avertissement est lancée
pas besoin de modifier le bouton de l'user

bonjour gilbert_RGI ,

merci d'etre passer sur mon fil
j'ai du mal m'expliquer lors de mon post

je te retourne ta proposition avec ce que je souhaite , en espérant avoir été plus explicite dans mes propos .

en cliquant sur le bouton , je voudrais que ça écrive uniquement si le classeur garde est actif

amicalement

Ghislain
 

GHISLAIN

XLDnaute Impliqué
Re : tester si le classeur est actif ou pas

j'utilise mon fichier initial gardes.xlsm

lors de son utilisation mon user s'affiche pour diverses saisies
lors de la saisies je dois appeler d'autre classeur pour récupérer des données
mon classeur gardes.xlsm n'est plus actif , mais le classeur que j'appel oui
mon user étant modal , il reste affiché sur n'importe quel classeur actif , c'est ce que je souhaites (imperatf)
mon user sert egalement a la saisie sur divers classeur ...
il est donc nécessaire sur mon projet de vérifier lors de l'utilisation de mon user , que je sois bien sur le classeur gardes.xlsm pour des saisies

merci pour votre aide

cordialement
 

GHISLAIN

XLDnaute Impliqué
Re : tester si le classeur est actif ou pas

finalement je vais proceder d'une autre facon ,
je vais tester si une feuille existe dans le classeur si oui ok jecris , si non erreur de classeur


Dim i As Integer
For i = 1 To ActiveWorkbook.Sheets.Count
If Sheets(i).Name = "LISTE" Then

'si oui code
ActiveSheet.Unprotect
ActiveSheet.Range("v3") = ListBox2
ActiveSheet.Range("v5") = ListBox2
'
etc.....


Exit Sub
End If



Next

si non message
MsgBox "VOUS N'ETES PAS SUR LE BON CLASSEUR ", vbCritical, "ERREUR CLASSEUR ACTIF"


Exit Sub


merci a vous pour votre aide

cordialement

ghislain
 

Lone-wolf

XLDnaute Barbatruc
Re : tester si le classeur est actif ou pas

Re,

oubien c'est moi qui a bu oubien il y a un grooooooosss problème.

j'utilise mon fichier initial gardes.xlsm
lors de son utilisation mon user s'affiche pour diverses saisies

pour récupérer des données mon classeur gardes.xlsm n'est plus actif

mon user étant modal , il reste affiché sur n'importe quel classeur actif , c'est ce que je souhaites (imperatf)

Si l'user est dans "gardes" et que celui-ci est fermé. T'est un sacré champion si tu réussi à l'afficher.

GILBERT... COURT EN FUIANT!!! ;)




A+ :cool:
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : tester si le classeur est actif ou pas

Bonsoir à tous :)

ghislain si tu repasse par ici, prends les deux classeurs en PJ. Double clique dans "garde", ensuite ferme le classeur 2.


A+ :cool:
 

Pièces jointes

  • gardes.xlsm
    18.2 KB · Affichages: 19
  • gardes.xlsm
    18.2 KB · Affichages: 18
  • Classeur2.xls
    30.5 KB · Affichages: 26
  • Classeur2.xls
    30.5 KB · Affichages: 27

GHISLAIN

XLDnaute Impliqué
Re : tester si le classeur est actif ou pas

Bonjour Lone-wolf,bonjour le forum

Pour répondre a ta remarque , mon fichier gardes n'est pas fermé mais juste réduit ou deriere un autre fichier que j'utilise en même temps .
Du coup mon user qui est dans les propriétés "showmodal" sur false , pour me permettre de circuler dans diverses cellules en même temps que l'user est affiché , et également d’être présent lors d'ouverture d'autre classeur utilisable en paralelle avec le classeur gardes..

Si tu peux a l’occasion reprendre le fichier gardes (1).xlsm‎ que j'ai transmis et tester ma méthode

je l'ouvre et laisse l'user affiché a l’écran
sur ce classeur avec cette user affiché , je fais par le bouton office ,fichier ouvrir et je vais chercher un classeur excel
ce classeur devient actif ,donc par dessus le classeur gardes
mon user reste sur l’écran mal grès que le classeur garde ne soit pas actif
ci joint une capture d’écran

amicalement

Ghislain
 

Pièces jointes

  • User Dessus Gardes.jpg
    User Dessus Gardes.jpg
    39.9 KB · Affichages: 22

Dranreb

XLDnaute Barbatruc
Re : tester si le classeur est actif ou pas

Bonjour.
C'est curieux, chez moi en Excel 2016, c'est automatique: Un UserForm non modal semble associé à la fenêtre qui était active au moment du Show: il se masque quand on active un autre classeur ! Et ça m'embête bien ! Je vais avoir beaucoup plus de mal à reproduire un jour ou l'autre le comportement d'avant, qui m'arrangeait bien, avec une API SetWindowPos peut être…
Alors que si ça ne le fait pas, comme dans dans votre cas, c'est plus facile de faire en sorte que ça le fasse: déclarez une WithEvents ApEx as Excel.Application que vous initialiserez dans l'UserForm_Initialize et faites un Me.Show ou Me.Hide selon le cas dans une Sub ApEx_WorkbookActivate.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 210
Messages
2 107 303
Membres
109 798
dernier inscrit
NAJI2005