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 :

Utilisation de Find et FindNext


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 38
    Par défaut Utilisation de Find et FindNext
    Bonjour,

    Je vient chercher de l'aide car je souhaite faire un find next et une boucle mais cela ne fonctionne pas : pouvez vous me dire ce qui va pas dans mon code s'il vous plait ?
    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
    40
    41
    42
    43
     
     
    Private Sub CommandButton3_Click()
     
    Dim wb As Workbook
    Dim ws As Worksheet
     
    Dim r As Range 'déclare la variable r (Recherche)
    Dim tr As String 'déclare la variable tr (Texte Recherché)
    Dim li As Integer 'déclare la variable li (Ligne)
    Dim listebox, premiereoccurence As Integer
    Dim applitrouvee As Range
    Dim tableau(50) As Integer
     
    Set wb = Workbooks.Open("U:\ICDC\DPI\OPE\Oac\2.Applicatif\Référentiel applis.xls")
    Set ws = wb.Worksheets(1)
     
    Sheets("Réf applis").Select
    Range("A1").Select
     
    tr = TextBox1.Value 'définit la variable tr
     
    Set applitrouvee = Cells.Find(What:=tr, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False)
     
    premiereoccurence = applitrouvee.Row
     
    If applitrouvee Is Nothing Then
    MsgBox "Aucune application trouvée!", , "Résultat"
    Else
    Do
    applitrouvee = Cells.FindNext(applitrouvee)
     
    Loop While applitrouvee.Row <> premiereoccurence
     
    li = ActiveCell.Row
     
    Range("A" & li).Select
     
    For listebox = 1 To 4
    UserForm2.ListBox1.AddItem Range("A" & li)
    Next listebox

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Je ne vois pas de end if derrièrre le If applitrouvee Is Nothing Then.

    soit tu ne l'as pas recopié - et nous aurons du mal à saisir ton code, soit il n'est pas dans ton code - et ça ne risque pas de marcher.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 38
    Par défaut
    C'est parceque je n'est pas tout mi : voici mon code entier :

    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
    40
    41
    42
    43
    44
    45
    46
    47
     
    Private Sub CommandButton3_Click()
     
    Dim wb As Workbook
    Dim ws As Worksheet
     
    Dim r As Range 'déclare la variable r (Recherche)
    Dim tr As String 'déclare la variable tr (Texte Recherché)
    Dim li As Integer 'déclare la variable li (Ligne)
    Dim listebox, premiereoccurence As Integer
    Dim applitrouvee As Range
    Dim tableau(50) As Integer
     
    Set wb = Workbooks.Open("U:\ICDC\DPI\OPE\Oac\2.Applicatif\Référentiel applis.xls")
    Set ws = wb.Worksheets(1)
     
    Sheets("Réf applis").Select
    Range("A1").Select
     
    tr = TextBox1.Value 'définit la variable tr
     
    Set applitrouvee = Cells.Find(What:=tr, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
     
    premiereoccurence = applitrouvee.Row
     
    If applitrouvee Is Nothing Then
        MsgBox "Aucune application trouvée!", , "Résultat"
    Else
        Do
            applitrouvee = Cells.FindNext(applitrouvee)
     
        Loop While applitrouvee.Row <> premiereoccurence
     
        li = ActiveCell.Row
     
        Range("A" & li).Select
     
       For listebox = 1 To 4
       UserForm2.ListBox1.AddItem Range("C" & li)
       Next listebox
     
       UserForm2.Show
     
    End If
    End Sub
    peucx tu m'aider ?

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    En tapant FindNext dans l'aide VBA ou en sélectionnant FindNext dans ton code puis , tu auras un exemple sur son utilisation.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour j'avoue que j'ai du mal a comprendre ce que tu veux faire exactement

    avec ta listbox

    car apres avoir recherché "applicationtrouvé tout dabors tu n'en fait rien par la suite
    et ensuite tu declare "li=active cell.value

    et tu boucle 4 fois pour y incrire "li"

    j'avoue que je patoge

    dis nous exactement ce que tu veux faire avec ton find parceque la en l'etat tu dois pas en faire grand chose

    ensuite je te suggere d'eviter de donner des nom ates variables surtout quand l'application les utilise ou tout du moins des mot comme listebox qui est tres proche de listbox qui lui est le nom commun pour le control du memenom

    enfin j'arrete de blablater donne un plus d'explications sur ton but et on pourra faire quelque chose



    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 38
    Par défaut
    merci de l'intérêt que vous portez à mon sujet !
    Alors en faite le but et de faire un FIND puis un FINDNEXT avec une boucle de facon a trouvé toutes les occurrences recherché a partir d'un tableau

    J'aimerai donc qu'il remonte les occurrences trouvée dans ma listbox

    Exemple dans un tableau il y a " carotte, navé, cerise, patate douce, patate dur etc...

    Si je veut faire une recherche du mot "patate" => alors je souhaite qu'il remonte "patate douce et patate dur" dans ma listebox

    Par avance merci

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

Discussions similaires

  1. Utilisation de Find et FindNext
    Par sirine_ dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/11/2014, 00h40
  2. Réponses: 2
    Dernier message: 03/02/2012, 22h47
  3. Utilisation de find
    Par Fry dans le forum Administration système
    Réponses: 2
    Dernier message: 02/11/2006, 15h39
  4. [C++ .NET] Comment utiliser fonction Find ?
    Par thecrax dans le forum Framework .NET
    Réponses: 3
    Dernier message: 17/08/2006, 09h02
  5. [VBA-E] Pb avec l'utilisation de .Find
    Par belfaigore dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2006, 07h38

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