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

Macros et VBA Excel Discussion :

Mon code pour masquer certaines cellules ne fonctionne pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut Mon code pour masquer certaines cellules ne fonctionne pas
    Bonsoir le forum

    Je sollicite de l'aide pour parfaire l'impression de mon ticket de caisse.
    Je souhaite que lorsqu'il y'a des cellules vides dans la plage B10:B20, que toutes les lignes correspondantes soient masquées.
    Le code ci-dessous a été conçu a cet effet mais je constate qu'il ne fonctionne pas totalement.
    En effet, il y'a impression mais pas de masque de ligne quand bien même les cellules de la condition sont vides.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Feuil8
        .Visible = True
        .Range("B10:B20").Cells.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
        .PrintOut
        .Range("B10:B20").EntireRow.Hidden = False
        .Visible = xlSheetVeryHidden
    End With

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Capi, bonjour le forum,

    Parfois des cellules qui semblent vides ne le sont pas... Elles contiennent un espace ou autre.

    Teste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil8.Range("B10:B20").Cells.SpecialCells(xlCellTypeBlanks).Select
    Ça donne quoi ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut
    Bonsoir Thautheme et le forum

    Je viens de tester et c'est l ligne 20 seulement qui est sélectionnée.
    Parfois des cellules qui semblent vides ne le sont pas... Elles contiennent un espace ou autre
    Je suis d'avis avec vous.
    Comment faire maintenant pour satisfaire mon besoin?
    merci

  4. #4
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, j'ai testé ce code, si les cellules sont réellement vides cela marche correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test()
    With Worksheets("Feuil1")  'a remplacer "Feuil1" par votre nom de feuille
        .Visible = True
        .Range("B10:B20").Cells.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
        .PrintOut
        .Range("B10:B20").EntireRow.Hidden = False
    End With
    End Sub
    Cordialement

  5. #5
    Membre éclairé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Par défaut
    Bonjour Transitoire , Thautheme et le forum

    Merci pour vos contributions.
    Il faut noter que la plage B10:E20 est alimenté par les données d'un usf dans l'ordre suivant
    Combobox (pour le choix du produit), Textbox_Qte, Textbox_Prix et Textbox_Montant
    IL y'a 10 combobox, 10 Textbox_Qte, 10 Textbox_prix et 10 Textbox_Montant
    Lors de la facturation, certains controls de mon usf peuvent ne pas comporter des données, donc à la validation, la plage B10:E20 est alimenté par les données des controls.
    Est-ce que le fait que certeins controls soient vides peut impacter la plage (absence de vide réellement)?
    Au lieu de considerer toutes la plage B10:E20, je me suis dis que si B10:B20 comporte du vide ca permettra d'atteindre l'objectif visé c'est à dire masquer les lignes vides de la plage considérée.
    Comment faire pour pouvoir masquer les lignes de la plage B10:B20 qui ne contiennent uniquement que des produits facturés?
    Autrement dit comment arriver à faire masquer les lignes fictives (contenant des données invisible à l'oeil nu sauf par test)?

    Cordialement

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonjour...

    En feuil8(Feuil8), le ‘ticket’ est un Tableau (LitObjects), n’imprimer que ses lignes totalement remplies :
    Nom : Tableau Impression.jpg
Affichages : 219
Taille : 24,3 Ko
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub ip()
      With Feuil8
        .Visible = 1
        [Ticket].Item(1, 5).FormulaR1C1 = "=COUNTIF(Ticket[@[Titre1]:[Titre4]],"""")"
        [Ticket].AutoFilter 5, 0
        [Ticket].Item(-1, 1).Resize([Ticket].Rows.Count + 1, 4).PrintPreview '.PrintOut
        [Ticket].Columns(5).Delete
        .Visible = 2
      End With
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2007] Code pour selection de cellules qui ne fonctionne pas avec la fonction "Locked"
    Par coco.on.off dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2014, 18h01
  2. Réponses: 5
    Dernier message: 22/03/2013, 05h09
  3. Réponses: 7
    Dernier message: 25/07/2007, 13h14
  4. [Tableaux] probleme avec mon code pour faire un parseur !
    Par Joe-La-Boule dans le forum Langage
    Réponses: 10
    Dernier message: 11/10/2006, 15h35

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