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 not nothing ou nothing


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut probleme not nothing ou nothing
    Bonsoir,

    j'ai copié ce bout de code sur le forum :
    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
    Sub essai()
    'ne pas faire attention aux variables inutiles
    Dim debut, Noligne
    Dim Cell As Range, x As Integer, y As Integer, z As Integer, plage As Range, ayant_droit As Range, statut As String
    y = 40
    statut = "RETRAITE"
    With Worksheets("AYANTS DROIT")
    Set ayant_droit = .Range("d8:d" & .Range("d1000").End(xlUp).Row)
        Set Cell = ayant_droit.Find(statut, LookIn:=xlValues)
        If Not Cell Is Nothing Then
     
            debut = Cell.Row
     
            Do
                Sheets("recap").Range("a" & y) = .Range("b" & Cell.Row)
                y = y + 1
                Noligne = Cell.Row
                '...
                '
                Set Cell = ayant_droit.FindNext(Cell)
            Loop While Not Cell Is Nothing And Cell.Row <> debut
         End If
    End With
    End Sub
    il marche bien mais quand je veux selectionner toutes les cellules diffrentes de "RETRAITE" (dans la variable statut), j'essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cell Is Nothing Then
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Cell Is Nothing Then
    et ca ne marche pas, mon résultat est nul
    comment puis-je contourner le problème sachant que les autres choix de sélections sont nombreux

    Merci d'avance de votre réponse
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut casefayere et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Cell = ayant_droit.Find(statut, LookIn:=xlValues)
        If Not Cell Is Nothing Then
    Veut dire : mettre la cellule (=à statut) dans la variable Cell. Si Cell contient quelque chose alors ...
    Si tu ne trouve aucune correspondance, alors la variable Cell est vide, en gros pas déclaré. Tu ne peux pas travailler sur Cell dans ce cas.
    Plusieurs solutions sont possibles :
    - faire un filtre automatique sur D avec <> "retraité" et s'occuper des cellules (lignes) visibles.
    - faire une variable tableau que tu remplis avec les adresses des cellules trouvée dans ta boucles, et retraiter la colonnes D en exclant les cellules dont l'adresse est dans le tableau

    - ou utiliser une boucle qui vérifie chaque valeur de Cellule sur un If et Else. Dans tous les cas, ça revient à une boucle de ce style, puisque tu traites chacune des cellules.
    A+
    A+

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

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

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

    Je te remercie pour cette réponse qui m'explique les raisons du plantage. J'avais délesté le message car j'ai trouvé une autre solution, un peu dans le style que tu proposes, cette solution est bien plus simple et efficace que la méthode "find". Ci-dessous mon code, bonne soirée.
    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
    y = 40
    z = Sheets("recap").Range("a500").End(xlUp).Row
    Sheets("recap").Range("a40:a" & z).Clear
    statut = "RETRAITE"
    With Worksheets("AYANTS DROIT")
        For x = 8 To .Range("d1000").End(xlUp).Row
        If .Range("d" & x) <> statut Then
        Worksheets("recap").Range("a" & y) = .Range("b" & x)
        y = y + 1
        End If
        Next x
    z = Sheets("recap").Range("a500").End(xlUp).Row
    Set PLAGE = Sheets("recap").Range("a40:a" & z)
        ActiveWorkbook.Names("listeactif").RefersToR1C1Local = PLAGE
    End With
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

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

Discussions similaires

  1. Is Not Nothing Comment ca marche?
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/06/2018, 09h38
  2. Sudo problem not found : installation de OpenCV
    Par kodji dans le forum Mac OS X
    Réponses: 0
    Dernier message: 12/11/2014, 08h00
  3. is not nothing
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/10/2011, 23h19
  4. [XL-2003] Explication de code If Not Intersect .. is Nothing
    Par Alfred23 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/10/2011, 09h33
  5. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26

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