IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Discussion :

Protection des formules


Sujet :

Conception

  1. #1
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 21
    Points
    21
    Par défaut Protection des formules
    Bonjour,
    J'ai besoin de protéger mes formules sans utiliser le verrouillage. Le code suivant entre en conflit avec le code d'impression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Code de verrouillage
        If Not Intersect(Range("A3:J2038"), Target) Is Nothing Then
           Target.Offset(0, 1).Select
        End If
    End Sub
     
    ' code d'impression
     
    Private Sub Imprimer_Click()
    ' Imprimer les données
     
       Set champ = Range("$A$1:$J$2000")
       champ.Find("*", , , , xlByRows, xlPrevious).Offset(1, 0).Select
       n = champ.Columns.Count
       champ.Cells(65000, 1).End(xlUp).Offset(1, 0).Select
       For i = 1 To champ.Rows.Count
         k = 0
         For Each c In champ.Cells(i, 1).Resize(1, n)
           If c <> 0 And c <> "" Then k = k + 1
         Next c
         If k = 0 Then Union(Selection, champ.Cells(i, 1)).Select
       Next i
       Selection.EntireRow.Hidden = True
       ActiveSheet.PageSetup.PrintArea = champ.Address
       ActiveWindow.SelectedSheets.PrintPreview
       Cells.EntireRow.Hidden = False
    End Sub
    Est-ce que vous avez une suggestion?

    Merci!
    Aimey

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,

    Il faut déjà ne pas utiliser les "Select"

    Que cherches-tu avec ces lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .......
    champ.Find("*", , , , xlByRows, xlPrevious).Offset(1, 0).Select
     n = champ.Columns.Count
    ........
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 21
    Points
    21
    Par défaut Réponse
    Je cherche les cellules contenant des valeurs car je veux imprimer seulement des valeurs et omettre les zéros.

    Merci

    Citation Envoyé par casefayere Voir le message
    Bonsoir,

    Il faut déjà ne pas utiliser les "Select"

    Que cherches-tu avec ces lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .......
    champ.Find("*", , , , xlByRows, xlPrevious).Offset(1, 0).Select
     n = champ.Columns.Count
    ........

  4. #4
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Effectivement, ce n'est pas ce que je recherche. Je ne sais vraiment pas qui faire. Est-ce que vous avez quelques choses à me proposer.

    Merci

  5. #5
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    ton code me parais effectivement bien confus, comment est constituée ta plage (champ), tu as des cellules vides ? des vides et des 0 ? pas de vides mais des 0 ? des formules ?

    De toutes façon, vu ton code précédent, ne pas utiliser de "Select" qui ne servent à rien
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Normalement, ton code pour imprimer ne devrait faire qu'une chose: imprimer. Si tu dois d'abord préparer les données à imprimer, alors, crée une procédure qui prépare et une procédure qui imprime.

    Je rejoins Casefaeyre sur le fait de ne pas devoir sélectionner (ce qui éviterait le conflit). Mais si tu dois sélectionner, alors, tu aurais intérêt à désactiver la gestion des évènements en début de macro et à la réactiver en fin de traitement (avec une gestion d'erreur pour être certaine de repasser en gestion 'ON').
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sub Print()
      on error goto endhandler
     
      application.enableevents = false
      ...
      ...
      range("...").select ' ne lève pas l'évènement
      ...
     
    endhandler:
      application.enableevents = true
      if err<>0 then msgbox ...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 21
    Points
    21
    Par défaut Suite
    J'ai des zéros et des valeurs.

    Merci



    Citation Envoyé par casefayere Voir le message
    ton code me parais effectivement bien confus, comment est constituée ta plage (champ), tu as des cellules vides ? des vides et des 0 ? pas de vides mais des 0 ? des formules ?

    De toutes façon, vu ton code précédent, ne pas utiliser de "Select" qui ne servent à rien

  8. #8
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    j'essayerai de te guider surtout avec les conseils de Pierre, j'ai bien dit "guider", mais pas avant demain après-midi
    Je pense que les "Select" pourront être évités
    bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    La lecture de ton code ne me permet pas de comprendre ce que doit faire la procédure d'impression.
    Pourrais-tu nous dire, en français (pas en code VBA) ce que tu dois faire pour préparer tes données pour l'impression?
    • Déplacer les cellules <>0 dans une autre feuille?
    • Masquer ou supprimer la ligne d'une cellule qui contient 0?
    • ...?
    • ...?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    Suite à ce dernier message de Pierre, je confirme car je viens d'essayer de deviner ce que tu veux faire mais je me pose trop de questions alors, plutot que de préparer un code au pif, expliques clairement ce que tu veux faire
    -les données égales à 0, se situent t'elles dans toute la plage (de A à J) ?
    -n'importe ou ?
    si oui aux 2 questions, impossible de passer par un masquage de lignes ou de colonnes

    ......... !
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  11. #11
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 21
    Points
    21
    Par défaut Nouvelle précision
    Bonjour,
    Désolé de ce long délais, une hospitalisation. J'ai besoin d'imprimer les données d'une feuille qui ont des valeurs plus grande que 0 et je peux avoir jusqu'à environ 3000 lignes. Mais, à la fin je dois aussi afficher un sommaire de toutes ces lignes. Je ne veux pas avoir de pages blanches entre la liste et le sommaire. Je ne vois pas comment faire.

    Merci de votre aide.
    Aimey

Discussions similaires

  1. [XL-2013] Protection des formules et insertion de lignes
    Par Galope dans le forum Excel
    Réponses: 4
    Dernier message: 08/03/2016, 14h41
  2. Réponses: 7
    Dernier message: 23/10/2005, 21h52
  3. Désactiver la protection des fichiers systéme
    Par cartonis dans le forum Sécurité
    Réponses: 6
    Dernier message: 13/08/2005, 19h17
  4. Utiliser un parser pour extraire des formules
    Par EpOnYmE187 dans le forum C++
    Réponses: 2
    Dernier message: 15/03/2005, 23h55
  5. [CR 9] Utilisation des formules
    Par Joleroy dans le forum Formules
    Réponses: 9
    Dernier message: 13/09/2004, 08h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo