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 :

Probleme de si valeur tableau = 0 alors [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut Probleme de si valeur tableau = 0 alors
    Bonjour a tous !!

    J'ai un petit soucis en vba excel et je m'en remet donc a vous.

    Donc en gros j'ai un tableau tout simple avec un titre et des cellules..

    je voudrais crée une macro dynamique, qui s'adapte donc au tableau selon si il grandi ou rapetisse.

    Donc de la cellule B19 à B44 j'ai des nombres (initialisé a 0)
    et c'est l'utilisateur qui rentres des nombres si il le souhaite.

    et j'avais mis un "filtre" pour que le tableau ce réduise car j'ai environ 30 tableaux successif -_-

    j'avais mis la macro suivante sur un bouton (je l'avais copier coller pour tout mes tableaux, donc pas du tout dynamique ^^)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     With CommandButton5
                .BackColor = &H8000000F
                .Font.Size = 10
                .Font.Bold = True
        If Application.CountIf([B19:B44], 0) < 1 Then
                Rows("16:45").Select
                Selection.EntireRow.Hidden = True
            Else
                Rows("16:45").Select
                Selection.EntireRow.Hidden = False
        End If

    Le problème c'est que le bouton ne s'adapte pas au tableau si il bouge ( + ou - )
    et je voudrait que si il y a que des 0 dans le tableau alors, le tableau disparait.
    mais je n'y arrive pas malheureusement

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     With CommandButton5
                .BackColor = &H8000000F
                .Font.Size = 10
                .Font.Bold = True
        If Application.CountIf([B19:B44], "<>0") = 0 Then
                Rows("16:45").EntireRow.Hidden = True
            Else
                Rows("16:45").EntireRow.Hidden = False
        End If
    End With
    Maintenant, il faut que tu expliques comment on différencie les différents tableaux.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut Remerciement
    Bonjour

    Effectivement ce que tu m'as donné fonctionne très bien
    merci beaucoup !

    et mes tableaux ils on a peu prêt tous la même structure :

    il vont de la colonne B à L
    la colonne A et M sont des bande noir pour faire jolie ^^

    La premier ligne du tableau c'est le Titre générale
    La deuxième ligne c'est les Titres de chaque colonnes
    Ensuite c'est les composant
    et la dernière ligne c'est une bande noir pour faire jolie encore une fois

    Donc pour rendre ce que tu m'as donné dynamique on peut dire :

    Si la Sélection de B19 à "descendre jusqu'à une cellule vide" , etc..

    mais je ne sais pas comment l'écrire en VB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     With CommandButton5
                .BackColor = &H8000000F
                .Font.Size = 10
                .Font.Bold = True
        If Application.CountIf([Range("B19").(Selection, Selection.End(xlDown)).Select], "<>0") = 0 Then
    ' un truc du genre ca m'irais pas mal
                Rows("16:45").EntireRow.Hidden = True
            Else
                Rows("16:45").EntireRow.Hidden = False
        End If
    Mais après je me demande si dans le tableau 1, une ligne s'ajoute ca fait que les programmes des autres tableaux ne marcheront plus ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Mais après je me demande si dans le tableau 1, une ligne s'ajoute ca fait que les programmes des autres tableaux ne marcheront plus ?
    Il faudra ré-exécuter la macro.

    Est-ce que le titre général est le même pour tous les tableaux ? Si oui, quel est-il ?. Est-ce que les entêtes de colonnes sont les mêmes ? Si oui, quel est l'entête qui permette d'identifier le début du tableau (je préfère ne pas me fier aux couleurs).
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut
    et les fenêtres des colonnes sont pas identique non

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut
    alors Le titre de chaque tableau diffère par contre le titre de chaque colonne (en tout cas celle qu'on regarde si il y a 0 ou +) c'est NOMBRE

  7. #7
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    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
    Sub Tableaux()
        Dim C As Range, ResAdr As String, Deb As Range, Fin As Range
        With Sheets("Feuil2")
            .Rows.Hidden = False
            With .[B:B]
                Set C = .Find("NOMBRE", , , xlWhole)
                If Not C Is Nothing Then
                    ResAdr = C.Address
                    Do
                        Set Deb = C.Offset(1)
                        Set Fin = C.End(xlDown)
                        If Application.CountIf(Range(Deb, Fin), "<>0") = 0 Then
                            Range(Deb.Offset(-2), Fin).EntireRow.Hidden = True
                        End If
                        Set C = .FindNext(C)
                    Loop While C.Address <> ResAdr
                End If
            End With
        End With
    End Sub
    Regarde le classeur joint.
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Points : 116
    Points
    116
    Par défaut
    d'accord je te remercie grandement !
    Cela fonctionne
    c'est parfais

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. GLSL Probleme acceder aux valeurs d'un tableau
    Par tib0000 dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/01/2008, 14h21
  2. [Tableau]Problèmes avec copie de tableau
    Par Itachi-san dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 17h23
  3. Probleme de hauteur de tableau sous netscape
    Par teshub dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/08/2005, 16h00
  4. Problème avec une valeur decimale
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 12/07/2005, 11h00
  5. [langage]Problème de regXp et tableau :)
    Par dirthangel dans le forum Langage
    Réponses: 2
    Dernier message: 29/06/2005, 16h07

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