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 :

Recherche de cellules non vides dans une colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Points : 67
    Points
    67
    Par défaut Recherche de cellules non vides dans une colonne
    Bonjour à tous, je recherche comment trouver les numéros de lignes correspondant aux cellules non vides dans une cellules pour ensuite additionner des nombres compris entre ces numéros de lignes (nombre dans une autre colonne).

    La Macro suivante ne fonctionne pas:

    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 Test10()
     
    Dim a As Long, b As Long
    Dim c As Range
     
    a = Columns("A:A").Find(what:="<>""").Row          
     
    b = Columns("A:A").Find(After:=a, what:="<>""").Row        
     
    Set c = Range(Cells(3, 2), Cells(a - 1, 2))
     
        If Range("C3").Row <> a Then
        Range("B" & a).Formula = "=SUM(" & c.AddressLocal & " )"
        Else: Range("B" & a).Value = "0"
        End If
     
    End Sub
    Quelqu'un peut-il me venir en aide? Merci d'avance. John81

  2. #2
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonsoir john..

    j'ai toujours la même réponse :
    Citation Envoyé par JackOuYA Voir le message
    peu-être sans macro avec seulement une formule somme.si ...

    Si tu veux en savoir plus il va falloir développer la phrase :
    La Macro suivante ne fonctionne pas:
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  3. #3
    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
    Je réponds au sujet de la discussion
    Citation Envoyé par John81
    Recherche de cellules non vides dans une colonne
    Tu peux utiliser cette méthode en adaptant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test3()
        Dim Plage As Range, cell As Range
        Set Plage = ActiveSheet.Columns(1).SpecialCells(xlCellTypeConstants, _
            xlNumbers + xlTextValues)
        For Each cell In Plage
            MsgBox cell.Value
        Next
    End Sub
    Bonne nuit

  4. #4
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Points : 67
    Points
    67
    Par défaut
    Bonjour à tous,

    Merci pour vos réponses.

    Pour répondre à la question de JackOuYA sur ma macro, j'ai le message

    d'erreur suivant:

    "Variable Objet ou variable de bloc With non définie"

    Quelqu'un peut-il me venir en aide? Merci John81

  5. #5
    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
    Dans mon code, Cell est la cellule non vide. Si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For Each cell In Plage
            Adres = cell.Address
        Next
    tu as l'adresse de la cellule
    Et dans cell tu as ce qu'il y a dans la cellule
    Et si tu as "a" dans la cellule => Cell = "a"
    Bonne journée

  6. #6
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Citation Envoyé par John81 Voir le message
    Bonjour à tous,

    Merci pour vos réponses.

    Pour répondre à la question de JackOuYA sur ma macro, j'ai le message

    d'erreur suivant:

    "Variable Objet ou variable de bloc With non définie"

    Quelqu'un peut-il me venir en aide? Merci John81
    et sur qu'elle ligne ......?

    modifie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    a = Columns("A:A").Find(what:="*").Row
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  7. #7
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Points : 67
    Points
    67
    Par défaut
    J'ai toujours le même message
    "Variable Objet ou variable de bloc With non définie"
    .

    Par exemple si je recherche le numéro de la ligne de la cellule de la colonne A dont la valeur est 0 ou 1, j'ai essayé avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Test11()
     
    Dim a As Long, b As Long
     
    a = Columns("A:A").Find(what:="0").Row
     
    b = Columns("A:A").Find(what:="1").Row
     
    End Sub
    J'ai toujours le même message d'erreur.

  8. #8
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    en utilisant find comme cela tu aura ton message d'erreur à chaque fois que ta recherche ne raménera rien ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Set r = Columns("A:A").Find(what:="0")
    If r Is Nothing Then
       MsgBox "Introuvable"
       Exit Sub
    End If
    a = r.Row
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  9. #9
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Points : 67
    Points
    67
    Par défaut
    Malheureusement, j'ai toujours le message
    "Variable Objet ou variable de bloc With non définie"
    au niveau de la ligne rouge :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set r = Columns("A:A").Find(what:="0")
    If r Is Nothing Then
       MsgBox "Introuvable"
       Exit Sub
    End If
    a = r.Row

  10. #10
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    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
    Dim r as range
    dim a,b as integer
     
    Set r = Columns("A:A").Find(what:="0")
    If r Is Nothing Then
       MsgBox "Introuvable"
    else
    a = r.Row
    b = r.Column
     
    MsgBox "(" & a & "," & b & ")"
    End If
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim r as range
     
    Set r = Columns("A:A").Find(what:="0")
    If r Is Nothing Then
       MsgBox "Introuvable"
    else
     
    MsgBox "(" & r.address & ")"
    End If
    perso, j'aurais plus fait comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim r As Range
    Dim c As Range
     
    Set r = ActiveSheet.Range("A1:A24")
     
    For Each c In r
        If Not IsEmpty(c) Then
            c.Offset(0, 1).Value = "rempli "& c.column
        End If
    Next c
    Plzzz pas de questions par MP.

  11. #11
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Points : 67
    Points
    67
    Par défaut
    Merci à vous tous pour vos réponses. J'ai trouvé la solution à mon problème.

    Bonne soirée John81

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/06/2015, 19h50
  2. [XL-2010] Recherche cellules non-vides dans une plage
    Par celinepug dans le forum Excel
    Réponses: 7
    Dernier message: 16/02/2015, 13h50
  3. [XL-2007] recherche première cellule non vide dans une ligne
    Par tigrou530 dans le forum Excel
    Réponses: 3
    Dernier message: 23/02/2012, 13h21
  4. Recherche de la dernière cellule non vide d'une colonne
    Par tasse2the dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/04/2009, 09h30
  5. Réponses: 5
    Dernier message: 22/02/2008, 19h34

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