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 :

Problème avec FIND NEXT (erreur 1004)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 10
    Par défaut Problème avec FIND NEXT (erreur 1004)
    Bonjour à tous ,

    J'ai une erreur 1004 avec la propriété find next.
    J'ai pourtant repris le code issu du support Microsoft que j'ai adapté.

    Pouvez m'aider à trouver l'erreur svp ?

    Merci d'avance !

    En gros, je récupère via une combobox la valeur d'un emplacement.
    Je veux chercher cette valeur dans la feuille "Réf". Le problème a lieu sur la partie en gras

    Le code est :
    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
        emplacement = ComboBoxRéférence.Value
        
        With Worksheets("Réf")
            Set plage = .Range("b2:z1000")
            Set c = plage.Find(emplacement, LookIn:=xlValues)
        
            plage.Select
            If Not c Is Nothing Then
                adresse = c.Address
                Do
                    
                    col = c.Column
                    ligne = c.Row
                    i = col
                    While Worksheets("Réf").Cells(ligne, i) <> ""
                        i = i + 1
                    Wend
                    Range(Cells(ligne, col + 1), Cells(ligne, i)).Cut
                    Worksheets("Réf").Paste Destination:=Range(Cells(ligne, col), Cells(ligne, i - 1))
                    Set c = plage.FindNext(c)
                Loop While Not c Is Nothing And c.Address <> adresse
            End If
            
        End With

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Il semble que le Paste précédé d'un Cut détruise les variables se référant au champ Destination.

    Remplace Cut par Copy.

  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
    Bonjour,

    Citation Envoyé par Docmarti Voir le message
    Bonjour.

    Il semble que le Paste précédé d'un Cut détruise les variables se référant au champ Destination.

    Remplace Cut par Copy.
    si la raison est celle-ci, je mettrais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ....
    Worksheets("Réf").Range(Cells(ligne, col), Cells(ligne, i - 1)) = Range(Cells(ligne, col + 1), Cells(ligne, i))
    Range(Cells(ligne, col + 1), Cells(ligne, i)).Clear 'ou "ClearContents"
    .....
    tout dépend si les formats doivent être copiés
    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...)

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par casefayere Voir le message
    tout dépend si les formats doivent être copiés
    Absolument.

    Par contre, le Clear ne serait pas approprié dans son cas, car il copie les cellules sur la même ligne en décalant d'une cellule vers la gauche.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 10
    Par défaut
    Bonjour et merci à vous deux pour vos réponses !
    Le fait d'avoir remplacé par copy et ajouter les deux lignes proposées ne marchent toujours pas, le message d'erreur est différent.

    Je joins le fichier au message, l'userform défectueux est le "SupprimerRéf".

    Cordialement !
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Quel est le nouveau message d'erreur et sur quelle ligne de code l'erreur survient-elle?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop While Not c Is Nothing And c.Address <> adresse
    Comme tu supprimes toutes les valeurs trouvées, tu dois finir par avoir une erreur avec c.address.

    Car si c = Nothing, la propriété c.Address n'existe pas.

    Donc il faut remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop While Not c Is Nothing
    qui va être vrai quand toutes les valeurs auront été supprimées.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 10
    Par défaut
    Ca marche ! Un grand merci à vous deux !!!

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

Discussions similaires

  1. Problème avec .Find sur la première case
    Par Cipollini dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2010, 15h29
  2. Problème avec .find et findnext
    Par VictoriusDan dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/12/2009, 04h23
  3. Problème avec Find(), Excel Vba
    Par mmmxtina dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 28/05/2009, 11h57
  4. Problème avec "find"
    Par tnarol dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 18/04/2008, 11h32
  5. Problème avec message d'erreur
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 15/10/2007, 15h21

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