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 :

renvoie adresse case vide


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 56
    Points
    56
    Par défaut renvoie adresse case vide
    Bonjour,

    voila j'ai une feuille de paillasse (de chimie) ou toutes les données doivent absolument aparaitre dans les colonnes B C H et I.
    Dans la colonne L j'ai un filtre sur le nom de l'analyse.
    Ce qu'il me faudrai :
    => a chaque fois que je change le filtre, je regarde la plage filtrée et si une des colonnes citées ci-dessus est vide un message d'aletre doit apparaitre avec l'adresse de la cellule à remplir (par exemple B12).

    On m'a donné ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Plage = Cells.SpecialCells(xlCellTypeVisible).Address
    pour recuperer la plage visible. Mais je ne sais absolument pas comment l'utiliser.

    Merci pour votre aide...

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ce que tu dois faire, pour une colonne, c'est tester si la cellule de la première ligne de ta colonne est vide.
    Je suppose que des données se trouvent normalement des colonnes 1 à 10
    Si je veux tester ces colonnes, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim ok as boolean
    ok = True
    For NoCol = 1 to 10
        Ok = Ok and (Cells(Columns(NoCol).Cells.Count, NoCol).End(xlUp).Row <> 1 or _
          Cells(Columns(NoCol).Cells.Count, NoCol).End(xlUp).Row = 1 and Cells(1, NoCol) <> "")
        if not ok then
             Msgbox "Colonne " & NoCol & " vide"
             Exit for
        endif
    Next
    Tu peux également créer un tableau des colonnes vides
    Tu dis
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 56
    Points
    56
    Par défaut
    mais comment je peux liée les deux?
    La plage recuperée et la recherche dans les colonnes comme tu viens de me mettre?

    Et oui quand on est pas douée comme moi la vie est pas facile en VBA

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour récupérer la plage de données, tu dois connaître la dernière colonne de ta plage et la dernière ligne de ta plage.
    Comme ta plage est filtrée, tu ne dois prendre que les cellules visibles
    Ce qui donne, avec un filtre sur la colonne L,
    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
    Sub Test()
    Dim NoCol As Integer, ok As Boolean
    Dim Col As Range, TabCol As Variant
        NoCol = 12
        DerniereLigne = Cells(Columns(NoCol).Cells.Count, NoCol).End(xlUp).Row
        DerniereColonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column
        TabCol = Array(2, 3, 8, 9)
        With Cells.SpecialCells(xlCellTypeVisible)
            For NoCol = 0 To UBound(TabCol)
                ok = Cells(Columns(TabCol(NoCol)).Cells.Count, TabCol(NoCol)).End(xlUp).Row <> 1 Or _
                    (Cells(Columns(TabCol(NoCol)).Cells.Count, TabCol(NoCol)).End(xlUp).Row = 1 And _
                    Cells(1, TabCol(NoCol)) <> "")
                If Not ok Then _
                MsgBox "Colonne " & TabCol(NoCol) & " vide"
             Next
        End With
    End Sub
    Mais j'ai l'impression que tu veux quelque chose de plus...
    Précise ta demande
    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 56
    Points
    56
    Par défaut
    merci
    je suis en réunion toute la journée aujourd'hui mais je test dès que j'ai 5 minutes...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 56
    Points
    56
    Par défaut
    desolée mais je suis partie en formation JAVA docn j'ai pu regarder comment ça marchait que ce matin.
    Merci c'est nickel

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

Discussions similaires

  1. Quel nom pour le contenu d'une case vide?
    Par byrdo dans le forum Débuter
    Réponses: 6
    Dernier message: 23/08/2012, 17h56
  2. Ne pas afficher les cases vides
    Par axamen dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/05/2007, 16h20
  3. La commande sed renvoie un fichier vide
    Par aaronw dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 29/09/2006, 11h46
  4. Case vide dans un tableau
    Par argon dans le forum C
    Réponses: 12
    Dernier message: 17/09/2006, 17h18

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