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 :

Valeur cherchée existante mais pas trouvée par la macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2011
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 80
    Par défaut Valeur cherchée existante mais pas trouvée par la macro
    Bonjour à tous,

    Alors voila, j'ai un programme qui permet dans la première partie à rechercher toutes les cellules contenant un texte particulier et de copier cette ligne dans une autre feuille du classeur.
    Mais, alors que le mote est présent dans la feuille il me renoit le message que je lui demande de renvoyer lorsqu'il n'y a pas le texte demandé.
    Voila la macro:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub RECHERCHE_VALEUR()
    Dim i
    Dim col As Integer
    Dim numrow
     
     
    For i = 2 To 550
    Worksheets("Feuil3").Activate
    'je demande le texte recherché
    REP = "TEXT1"
     
    'je cherche
    Set R = Worksheets("Feuil3").Range("A" & i).EntireRow.Find(REP)
    'si VBA n'a pas trouvé
    If R Is Nothing Then
    MsgBox "la valeur " & REP & " n'a pas été trouvée"
    Exit Sub
    End If
    'si la valeur a été trouvée
    If Not R Is Nothing Then
    'j'active la cellule où a été trouvée la valeur
    Range(R.Address).Activate
    End If
    numrow = ActiveCell.Row
    Range("A" & numrow).EntireRow.Select
     
    Selection.Copy
    Worksheets("Feuil1").Activate
    Range("A6").Select
    Selection.PasteSpecial
     
    Worksheets("Feuil1").Range("B6").Select
    Selection.EntireRow.Insert
     
    Next
    Worksheets("Feuil1").Activate
    Range("A6").EntireRow.Delete
     
    End Sub
    Alors si quelqu'un a une réponse à cela.
    Merci d'avance

  2. #2
    Membre éclairé Avatar de Orhleil
    Homme Profil pro
    Intégrateur fonctionnel
    Inscrit en
    Mai 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 81
    Par défaut
    Salut à toi,
    Personnellement la fonction Find ne m'a jamais inspiré... J'avais refait un truc à ma sauce qui me renvoyait les index des lignes et des colonnes que je voulais :
    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
    'Renvoie l'index de la colonne correspondant au nom donné, dans la feuille donnée, à la ligne donnée
    Public Function IndexColonne(Nom As String, ByRef Feuille As Worksheet, Ligne As Integer) As Integer
        IndexColonne = -1
        For Each Cell In Intersect(Feuille.UsedRange, Feuille.Rows(Ligne))
            If Cell.Formula = Nom Then IndexColonne = Cell.Column: Exit Function
        Next Cell
    End Function
     
    'Renvoie l'index de la ligne correspondante au nom donné, dans la feuille donnée, à la colonne donnée
    Public Function IndexLigne(Nom As String, ByRef Feuille As Worksheet, Colonne As Integer) As Integer
        IndexLigne = -1
        For Each Cell In Intersect(Feuille.UsedRange, Feuille.Columns(Colonne))
            If Cell.Formula = Nom Then IndexLigne = Cell.Row: Exit Function
        Next Cell
    End Function
    Ceci dit, je viens de découvrir il y a quelques minutes une vieille fonction Excel qui a l'air d'être particulièrement efficace :
    WorksheetFunction.Match(ce que tu cherches, où tu le cherches, -1/0/1 je t'invite à lire la doc pour ceux-là...).
    http://msdn.microsoft.com/en-us/library/ff835873.aspx
    En espérant que ça t'aidera à résoudre ton problème =)

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une méthode directe c'est d'appliquer un filtre automatique et de copier le résultat en un seul bloc.

Discussions similaires

  1. Réponses: 18
    Dernier message: 15/06/2009, 17h14
  2. champ créé, mais pas vu par Javascript
    Par Alexdezark dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/05/2008, 15h16
  3. Problème de classes définies mais pas trouvées par g++
    Par Michaël dans le forum Autres éditeurs
    Réponses: 10
    Dernier message: 22/07/2007, 18h45
  4. [Débutant] fichier .class pas trouvé par tomcat!!!
    Par oussam dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 03/03/2006, 15h31
  5. Fiche créée mais pas reconnue par l'application ??
    Par Leesox dans le forum Langage
    Réponses: 8
    Dernier message: 30/10/2005, 15h10

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