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 d'une cellule [XL-2016]


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
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 38
    Par défaut Recherche d'une cellule
    Bonjour à tous,

    J'ai un fichier excel avec en colonne A différentes cellules fusionnées de tailles variable.
    Je voudrais rechercher dans cette colonne la cellule contenant une variable de type chaine de caratère et en récupéré la ligne de cette cellule.

    voici mon morceau de code, je comprend pas mon erreur.

    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
    Public Sub crea_new_version()
     
    Dim plage As Range
    Dim I As Integer
    Dim J As Integer
    Dim derlig As Integer
    Dim new_ref_gabarit As String
     
        new_ref_gabarit = "ROB0003"
        Cells(7, 1).Select
        derlig = Cells(Rows.Count, 1).End(xlUp).Row
        J = Range("A" & derlig).MergeArea.Rows.Count
        derlig = derlig + J
     
        Set plage = ThisWorkbook.Worksheets("Listing_gabarits").Range("a1:a" & derlig)
     
        For Each cell In plage
            If cell.Value = new_ref_gabarit Then
                I = plage.Find(new_ref_gabarit, lookat:=xlWhole).Row
                Exit For
            End If
        Next cell
     
    End Sub

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je n'ai pas tout compris dans ton code mais, à mon avis, la boucle For Each est inutile.
    La méthode Find permet de chercher une occurrence sur une plage et renvoyer la référence de la cellule correspondante.
    Ensuite, tu obtiens le numéro de ligne en appliquant un Row au résultat.

    Commence par lire ça : https://msdn.microsoft.com/fr-fr/lib.../ff839746.aspx

    Allez, je m'y colle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub crea_new_version()
        Dim Resultat As Range
        Dim new_ref_gabarit As String
     
        new_ref_gabarit = "ROB0003"
     
        With Worksheets("Listing_gabarits").
            Set Resultat = Range("A1", .Cells(Rows.Count, 1).End(xlUp)).Find(new_ref_gabarit, lookat:=xlWhole)
            If Not Resultat is nothing Then MsgBox("Ligne trouvée :" & Resultat.Row)
        End With
     
    End Sub
    C'est tapé à l'arrache et pas testé. Je te laisse un éventuel débugage.

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 38
    Par défaut
    Super ça m'a bien aidé.
    J'ai du faire une petite modif car mes cellules sont fusionnées sur des lignes et des colonnes. Donc dans la zone de recherche je dois prendre en compte le nombre de colonnes fusionnées

    Voici le resultat
    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
    Public Sub crea_new_version()
     
        Dim Resultat As Range
        Dim new_ref_gabarit As String
        Dim derlig As Integer
     
        Cells(7, 1).Select
        derlig = Cells(Rows.Count, 1).End(xlUp).Row
        new_ref_gabarit = "ROB0003"
     
     
        With Worksheets("Listing_gabarits")
            Set Resultat = Range(Cells(7, 1), Cells(derlig, 4)).Find(new_ref_gabarit, lookat:=xlWhole)
            If Not Resultat Is Nothing Then MsgBox ("Ligne trouvée :" & Resultat.Row)
        End With
     
    End Sub

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par chevrotine56 Voir le message
    J'ai du faire une petite modif car mes cellules sont fusionnées sur des lignes et des colonnes.
    Dans 99% des cas, la fusion de cellules est une mauvaise idée.

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

Discussions similaires

  1. Recherche d'une cellule depuis vba
    Par baggie dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 19/11/2007, 23h38
  2. recherche dans une cellule de tableau word
    Par jeantrucmuche dans le forum VBA Word
    Réponses: 1
    Dernier message: 01/08/2007, 17h52
  3. Recherche d'une cellule dans une feuille Excel
    Par vuong1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/03/2007, 07h51
  4. Créer un moteur de recherche dans une cellule d'un classuer excel
    Par ludovicparis dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2007, 15h36
  5. [FLASH 8] DataGrid + Recherche dans une cellule ?
    Par ExSter dans le forum Flash
    Réponses: 1
    Dernier message: 30/06/2006, 12h59

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