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 :

Erreur d'execution 424 objet requis


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Erreur d'execution 424 objet requis
    Bonjour,

    Je suis charlotte alias mrsx je suis nouvelle sur le forum.

    Je travail sous excel en vba.

    (J'ai repris un code déjà existant sur internet pour faire ce que j'ai commencé, en le modifiant un peut.)

    Ce que je cherche à faire c'est dans mon tableau je veux rechercher dans ma colonne b les numéros de services 2836 afin de supprimer la ligne.

    Je cherche dans ma colonne B la cellule qui contient 2836, je récupère la ligne puis je sélectionne la ligne et je la supprime et enfin je passe à la suivante.

    Mais mon code marche à une exception prêt. Si m'a dernière cellule de ma colonne b n'est pas vide et donc n'est pas le service 2836 il me met:
    Erreur d'exécution 424 objet requis

    Voici mon code

    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
    25
    26
    27
    28
    Sub teste()
     
    '###################
    'enlève le 2836
     
    Range("B1").Select
     
    Set c = Worksheets("Feuil1").Range("b1:b50").Find("2836", LookIn:=xlValues)
    If Not c Is Nothing Then
    firstAddress = c.Address
    Do While Range(Selection.Address).Value <> ""
     
    ligne = c.Row
    col = c.Column
     
     
    Set c = Worksheets("Feuil1").Range("b1:b50").FindNext(c)
     
    Rows(ligne & ":" & ligne).Select
        Selection.Delete Shift:=xlUp
     
    Cells(ligne, col).Select
     
    Loop
    End If
     
    '####################
    End Sub
    J'allé oublier
    Il me dit que la ligne erroné est

    Je voudrai que quand c'est la fin de la recherche autrement dit quand y'a plus de 2836 il arrête de rechercher.

    je sais pas comment faire.

    Par avance merci de votre aide.

    Charlotte.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 226
    Points : 225
    Points
    225
    Par défaut
    Hello,

    Essaie comme ceci peut-être...
    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
        Range("B1").Select
     
        Set c = Worksheets("Feuil1").Range("b1:b50").Find("2836", LookIn:=xlValues)
     
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do While Range(Selection.Address).Value <> ""
                ligne = c.Row
                col = c.Column
                Set c = Worksheets("Feuil1").Range("b1:b50").FindNext(c)
                Rows(ligne & ":" & ligne).Select
                Selection.Delete Shift:=xlUp
                Cells(ligne, col).Select
            Loop
        Else 'Autrement
            Exit Sub 'Sort de la procédure
        End If
    Bon week !

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    Points : 14 363
    Points
    14 363
    Par défaut
    Bonjour et bienvenue sur le forum.

    eux choses, dans ton code; d'une manière générale, il vaut mieux éviter les "Select", ça ralentit inutilement le code; sinon, et je me suis déjà fait avoir, quand tu mets

    "c" représente la dernière cellule trouvée. Dans le cas présent, tu l'as supprimée, ça ne peut donc pas fonctionner. J'ai donc un peu modifié ton code. Si tu as des questions, n'hésite 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
    Sub teste()
     
    '###################
    'enlève le 2836
     
    Dim c As Range, Plage As Range
    Set Plage = Worksheets("Feuil1").Range("b1:b50")
    Do
        Set c = Plage.Find("2836", LookIn:=xlValues)
        If c Is Nothing Then Exit Do
        c.EntireRow.Delete
     
    Loop
     
    '####################
    End Sub

  4. #4
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    J'ai toujours le même problème. Mais Merci quand même.

    Je continue de chercher.

    Mais en faite je lui dit tant que ma cellule n'est pas vide il continu (do while..)
    La je suis ok mais il faudrai lui faire prendre en compte la dernière ligne.

    Sinon je triche et je lui affecté juste après la dernière cellule pleine le 2836 comme ça il suprime la ligne et je me retrouve en ligne vide.

    C'est fesable mais y'a peut être plus simple lol.

  5. #5
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merciii Daniel C

    ça marche nickel Merci beaucoup.

    Ok je savais pas pour le selecte, merci beaucoup.

    Et merci de l'aide des autres aussi.

    Bon week end.

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

Discussions similaires

  1. [AC-2007] Erreur d'execution 424: objet requis
    Par Tierisa dans le forum VBA Access
    Réponses: 20
    Dernier message: 25/09/2013, 09h43
  2. erreur d'execution 424 objet requis
    Par Mandrill dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/07/2009, 14h03
  3. [XL-2003] erreur d'execution 424 objet requis
    Par olivier1289 dans le forum Excel
    Réponses: 2
    Dernier message: 23/05/2009, 02h22
  4. [VBA-E] erreur d'execution 424 - objet requis
    Par ludo02 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/02/2007, 11h29
  5. Erreur d'execution '424' : Objet requis
    Par deglingo37 dans le forum Access
    Réponses: 3
    Dernier message: 09/10/2006, 17h47

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