Grrrr de VBA, vais me remettre au tricot...

ya_v_ka Messages postés 28 Date d'inscription   Statut Membre -  
ya_v_ka Messages postés 28 Date d'inscription   Statut Membre -
salut tout le monde
je cherche à tester le nombre de feuilles actives lors d'une demande d'impression... mais c'est au dessus de mes forces.
si par hasard (ou pas !) un superpro pouvais me dépanner voici ou j'en suis:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Workbooks.Count = 1 Then 'c'est cette ligne qui coince !!
Beep
Msgbox "Ne sélectionner qu'un formulaire.", , "Limite d'impression !"
Cancel = True
Else
If ActiveSheet.Name = "CG" Then
ActiveSheet.Unprotect password:="blabla"
Rows("9:22").EntireRow.Hidden = False
Rows("29:42").EntireRow.Hidden = True
If [C9] = " " And [E9] = " " And [G9] = " " Then
etc...........

Merci d'avance pour tout bout de solution
et que vives les forum's
ya'v

7 réponses

  1. ya_v_ka Messages postés 28 Date d'inscription   Statut Membre
     
    oups la ligne qui coince est à:

    if WorkSheets.count >1 then


    ce que j'ai mis au dessus est déjà un autre essais... ;-)
    0
  2. Obeet
     
    Salut,
    Comment ca elle "coince?"

    . .  En raison de l'indifference generale
    \_/  Demain est annule
    0
    1. ya_v_ka Messages postés 28 Date d'inscription   Statut Membre
       
      salut ;-)
      merci de jeter un oeil...
      elle coince, c'est vrai que un peu vague...
      si je mets
      =1
      peu importe le nombre de feuilles ca ne prends pas en compte le if...
      si je mets
      >1
      peu importe le nombre de feuilles ca m'ouvre la msgbox et bloque l'impression...
      je souhaiterais que ca passe outre si une seule feuille est active...
      merci encore

      ya'v
      0
  3. Obeet
     
    Ca doit vouloir dire que ta variable n'est pas la bonne, elle te donne systematiquement quelque chose au dessus de un, fait la afficher dans une message box avant par exemple pour voir quelle valeur elle a, peut eter que Access a toujours une form par defaut et qu'il faut retirer un ou peut etre que ce n'est pas ce que tu crois comme variable...

    . .  En raison de l'indifference generale
    \_/  Demain est annule
    0
  4. ya_v_ka Messages postés 28 Date d'inscription   Statut Membre
     
    merci
    j'ai bien pensé que ca venait de qulque chose comme ca, mais mes maigres connaissances ne me permettent pas de trouver le truc

    pour l'idée d'afficher la variable, je note et vais m'y mettre, ca peut me permettre de comprendre, merci ;-)

    en passant, je suis sous excel, access me fait encore bien peur :-(

    et... si je me moqie aussi du lendemain... quel jour seront nous donc dem... euh après aujourd'hui ??? ;-))))
    merci encore et youplaBOUMM
    ya'v
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ya_v_ka Messages postés 28 Date d'inscription   Statut Membre
     
    Bravo et encore merci

    If Worksheets.Count > 1 Then
    ne fonctionne pas parce que la variable =32, c'est à dire toutes les feuilles du classeur, il ne me reste plus qu'a compter les feuilles actives !

    mais comment...

    merci pour cette énorme avancée
    ya'v
    0
  7. Obeet
     
    Bon c'est bien ce que je pensais...

    Tu n'as pas une propriete genre "Active" ou selected dans le parent de ton worksheet (desole je connais pas du tout le VBA de Excel...)

    . .  En raison de l'indifference generale
    \_/  Demain est annule
    0
  8. ya_v_ka Messages postés 28 Date d'inscription   Statut Membre
     
    merci ;-)
    la réponse m'est venue d'un autre forum (eh oui dommaaaage !)

    If ThisWorkbook.Windows(1).SelectedSheets.Count > 1 Then


    est la bonne solution, mais que fais cette fenetre(1) là au milieu ??? pas à moi qui faut le demander...

    en tous cas merci encore de t'y être interessé ;-)

    ya'v
    0