Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Petite procédure pour éviter le démarrage d'une macro si ?

12 réponses
Avatar
DC
Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe son
noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est nécéssaire pour le
bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC

10 réponses

1 2
Avatar
R1
DC wrote:

Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe son
noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est nécéssaire pour
le bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC


Au début de la macro, tester le nombre de classeurs ouverts.
Si >=2, continuer
Sinon sortir?
R1

Avatar
JB
Bonjour,

If Workbooks.Count>1 Then

End if

JB

On 7 avr, 13:47, "DC" wrote:
Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d' une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut imp orte son
noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est néc éssaire pour le
bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC


Avatar
DC
Bonjour, R1 et JB

Merci de vos 2 réponses,

je ne suis vraiment pas doué, car avec moi çà ne fonctionne pas, ni l'une ni
l'autre, pourtant j'ai l'impression que vous avez bien compris le problème,

Celle de RI ouvre une fenêtre : Erreur de compilation / Erreur de syntaxe
Celle de JB se comporte comme si elle n'existat pas,

Peut-être l'emplacement, ou autre chose, je ne sais pas !

Merci de ne pas me laisser tomber ! Un grand MERCI d'avance !

Cordialement ! DC





"R1" a écrit dans le message de news:

DC wrote:

Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe son
noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est nécéssaire pour
le bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC


Au début de la macro, tester le nombre de classeurs ouverts.
Si >=2, continuer
Sinon sortir?
R1



Avatar
JB
Sub essai()
If Workbooks.Count > 1 Then
MsgBox "Il y a " & Workbooks.Count & " Classeurs ouverts"
'.... la macro
'.....
End If
End Sub

http://cjoint.com/?ehrnu7Yflq

JB

On 7 avr, 16:49, "DC" wrote:
Bonjour, R1 et JB

Merci de vos 2 réponses,

je ne suis vraiment pas doué, car avec moi çà ne fonctionne pas, ni l'une ni
l'autre, pourtant j'ai l'impression que vous avez bien compris le probl ème,

Celle de RI ouvre une fenêtre : Erreur de compilation / Erreur de synta xe
Celle de JB se comporte comme si elle n'existat pas,

Peut-être l'emplacement, ou autre chose, je ne sais pas !

Merci de ne pas me laisser tomber ! Un grand MERCI d'avance !

Cordialement ! DC

"R1" a écrit dans le message de news:




DC wrote:

Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe son
noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est né céssaire pour
le bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC


Au début de la macro, tester le nombre de classeurs ouverts.
Si >=2, continuer
Sinon sortir?
R1- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -




Avatar
R1
DC wrote:

Bonjour, R1 et JB

Merci de vos 2 réponses,

je ne suis vraiment pas doué, car avec moi çà ne fonctionne pas, ni l'une
ni l'autre, pourtant j'ai l'impression que vous avez bien compris le
problème,

Celle de RI ouvre une fenêtre : Erreur de compilation / Erreur de syntaxe
Ma réponse n'était pas un code VBA, juste la description de la méthode. JB

lui a donné le code correspondant.
Reste à mettre la macro au bon endroit, éventuellement avec un MsgBox dans
le Else pour avertir de l'erreur.

Celle de JB se comporte comme si elle n'existat pas,

Peut-être l'emplacement, ou autre chose, je ne sais pas !

Merci de ne pas me laisser tomber ! Un grand MERCI d'avance !

Cordialement ! DC
Bonne continuation

R1

Avatar
DC
Bonjour, JB et R1 et bonnes Fêtes de
Pâques,

Merci de vos réponses rapides et positives !

Je pense avoir enfin compris et la preuve c'est que çà fonctionne à
merveille, exactement comme je l'espérais,

Un très grand MERCI à vous deux Messieurs, j'apprécie !

Cordialement ! DC

"JB" a écrit dans le message de news:

Bonjour,

If Workbooks.Count>1 Then

End if

JB

On 7 avr, 13:47, "DC" wrote:
Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe son
noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est nécéssaire pour
le
bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC


Avatar
DC
Re Bonjour Messieurs,

Jamais content ce DC, à fusiller !.............

Après fonctionnement, je trouve un petit inconvénient, l'apparition de la
fenêtre se fait au mauvais moment,
C'est à dire qu'il faudrait qu'elle apparaisse quand il maque le 2ème
Classeur, et non pas quand tout est en place pour fonctionner,
Si la chose vous paraît logique, Merci d'y penser !

Cordialement ! Merci d'avance DC

"DC" a écrit dans le message de news:
4618a0df$0$25939$
Bonjour, JB et R1 et bonnes Fêtes de
Pâques,

Merci de vos réponses rapides et positives !

Je pense avoir enfin compris et la preuve c'est que çà fonctionne à
merveille, exactement comme je l'espérais,

Un très grand MERCI à vous deux Messieurs, j'apprécie !

Cordialement ! DC

"JB" a écrit dans le message de news:

Bonjour,

If Workbooks.Count>1 Then

End if

JB

On 7 avr, 13:47, "DC" wrote:
Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe son
noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est nécéssaire pour
le
bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC







Avatar
jps
bonjour DC
peut-être que :

If Workbooks.Count = 1 Then
MsgBox "Il y a " & Workbooks.Count & " un seul classeur ouvert et c'est
la chienlit ; ramasse ta pelle et ton petit seau et va ouvrir le classeur,
tête de linotte"
Exit Sub
If Workbooks.Count > 1 Then
MsgBox "Il y a " & Workbooks.Count & " Classeurs ouverts"

attendons quand même la réaction de JB car je prends ce fil en marche et ma
tête est trop lourde ce matin pour que je joue au funambule

jps (qui prépare le peloton d'exécution)

"DC" a écrit dans le message de news:
4619e178$0$25924$
Re Bonjour Messieurs,

Jamais content ce DC, à fusiller !.............

Après fonctionnement, je trouve un petit inconvénient, l'apparition de la
fenêtre se fait au mauvais moment,
C'est à dire qu'il faudrait qu'elle apparaisse quand il maque le 2ème
Classeur, et non pas quand tout est en place pour fonctionner,
Si la chose vous paraît logique, Merci d'y penser !

Cordialement ! Merci d'avance DC

"DC" a écrit dans le message de news:
4618a0df$0$25939$
Bonjour, JB et R1 et bonnes Fêtes de
Pâques,

Merci de vos réponses rapides et positives !

Je pense avoir enfin compris et la preuve c'est que çà fonctionne à
merveille, exactement comme je l'espérais,

Un très grand MERCI à vous deux Messieurs, j'apprécie !

Cordialement ! DC

"JB" a écrit dans le message de news:

Bonjour,

If Workbooks.Count>1 Then

End if

JB

On 7 avr, 13:47, "DC" wrote:
Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe
son
noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est nécéssaire
pour le
bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC











Avatar
R1
DC wrote:

Re Bonjour Messieurs,

Jamais content ce DC, à fusiller !.............

Après fonctionnement, je trouve un petit inconvénient, l'apparition de la
fenêtre se fait au mauvais moment,
C'est à dire qu'il faudrait qu'elle apparaisse quand il maque le 2ème
Classeur, et non pas quand tout est en place pour fonctionner,
Si la chose vous paraît logique, Merci d'y penser !

Cordialement ! Merci d'avance DC

"DC" a écrit dans le message de news:
4618a0df$0$25939$
Bonjour, JB et R1 et bonnes Fêtes de
Pâques,

Merci de vos réponses rapides et positives !

Je pense avoir enfin compris et la preuve c'est que çà fonctionne à
merveille, exactement comme je l'espérais,

Un très grand MERCI à vous deux Messieurs, j'apprécie !

Cordialement ! DC

"JB" a écrit dans le message de news:

Bonjour,

If Workbooks.Count>1 Then

End if

JB

On 7 avr, 13:47, "DC" wrote:
Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe
son noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est nécéssaire
pour le
bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC





C'est 'simple': il faut faire
If  Workbooks.Count>1 Then
' Toutes mes actions normales puisqu'il y a plusieurs classeurs ouverts
Else
Msgbox "Il n'y a qu'un classeur d'ouvert: Arrêt"
End if

A noter que dans cette démarche, les instructions normales seront exécutées
dès que 2 classeurs sont ouverts, que ce soit des classeurs vides (Ouverts
par Fichier/Nouveau) ou d'autres classeurs qui n'ont rien à voir avec la
macro fonction (Interdis-tu aux utilisateurs d'ouvrir d'autres fichiers
Excels que 'les tiens')?
Pour éviter cela, si le nom du second classeur à avoir est connu, il est
envisageable de le vérifier avant de continuer
R1



Avatar
DC
Bonjour, jps et RI et JB

Merci pour vos réponses positives et qui fonctionnent très bien,

J'ai la préférence pour la dernière de RI, qui me parâit être la plus simple
et je n'ai rajouté que le " Exib Sub" pour être parfaite dans son
fonctionnement, ( voir ci-dessous )

Un grand Merci à vous trois, au plaisir de vous revoir !

'--------------------------------------------------------
Sub Ligne_Seule()

On Error GoTo Sortie

If Workbooks.Count > 2 Then
MsgBox "Il n'y a qu'un classeur d'ouvert: ( Arrêt )"
Exit Sub
End If
Application.Run "'PERSO.xls'!Bis_Ligne_Seule"

Sortie:
End Sub
'----------------------------------------------

Cordialement ! DC

"R1" a écrit dans le message de news:

DC wrote:

Re Bonjour Messieurs,

Jamais content ce DC, à fusiller !.............

Après fonctionnement, je trouve un petit inconvénient, l'apparition de la
fenêtre se fait au mauvais moment,
C'est à dire qu'il faudrait qu'elle apparaisse quand il maque le 2ème
Classeur, et non pas quand tout est en place pour fonctionner,
Si la chose vous paraît logique, Merci d'y penser !

Cordialement ! Merci d'avance DC

"DC" a écrit dans le message de news:
4618a0df$0$25939$
Bonjour, JB et R1 et bonnes Fêtes de
Pâques,

Merci de vos réponses rapides et positives !

Je pense avoir enfin compris et la preuve c'est que çà fonctionne à
merveille, exactement comme je l'espérais,

Un très grand MERCI à vous deux Messieurs, j'apprécie !

Cordialement ! DC

"JB" a écrit dans le message de news:

Bonjour,

If Workbooks.Count>1 Then

End if

JB

On 7 avr, 13:47, "DC" wrote:
Bonjour,

Est-il possible avec une petite procédure, d'éviter le démarrage d'une
macro, si le 2ème classeur n'est pas chargé à l'écran, ( peut importe
son noms ) du fait de sa variabilité ?
En fait la présence de 2 classeurs chargés à l'écran, est nécéssaire
pour le
bon fonctionnement de la macro!
Merci d'y penser ! Merci d'avance de votre aide !

Cordialement ! DC





C'est 'simple': il faut faire
If Workbooks.Count>1 Then
' Toutes mes actions normales puisqu'il y a plusieurs classeurs ouverts
Else
Msgbox "Il n'y a qu'un classeur d'ouvert: Arrêt"
End if

A noter que dans cette démarche, les instructions normales seront
exécutées
dès que 2 classeurs sont ouverts, que ce soit des classeurs vides (Ouverts
par Fichier/Nouveau) ou d'autres classeurs qui n'ont rien à voir avec la
macro fonction (Interdis-tu aux utilisateurs d'ouvrir d'autres fichiers
Excels que 'les tiens')?
Pour éviter cela, si le nom du second classeur à avoir est connu, il est
envisageable de le vérifier avant de continuer
R1






1 2