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 multiple par boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut recherche multiple par boucle
    J'avais deja posté cette demande et je pensais l'avoir resolu mais en faite non donc je vais réitérer ma demande.

    La macro que j'ai fait, me donne tout les resultats dans chaque case ("aq" & j)
    Le but de ma macro est de scanner la colonne "au" de la case "4 à 81" et lorsque dans la zone de texte il ya plus de 1 caractères il fait une recherche dans toutes les feuilles de cet valeur et inscrit les numéro de pages en ("au" & j).

    exemple : si je trouve un valeur qui s'appelle 10bis (en au2) qui se trouve dans la page 1 2 3 et je trouve une valeur qui s'appelle 2bras(en au5) qui se trouve dans la page 45 80 le resultat dans la case (aq 3 et aq 6) sera 1 2 3 45 80. je voudrais séparer ça et avoir des resultats pour chacun de mes recherches



    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
     
    Sub macro9()
    'recherche des liens de pages des sorties
     
    Dim resultat As Variant
    Dim x As String
    Dim j As Integer
    Dim i As Integer
    Dim z As Integer
    Dim y As Integer
    x = "to sheet "
    y = Sheets.Count - 3
        'de la page 12 au nombre de pages
       For z = 3 To y
                'pour i de 4 à 81
                With Sheets(z).Range("b4:e81")
                For i = 4 To 81
                    'selection
                            If Len(Sheets(z).Range("au" & i)) > 0 Then
                                   'la recherche s"effectue dans toutes les cellules de la feuille
                            Set resultat = .Find(Sheets(z).Range("au" & i), LookIn:=xlValues)
                                'si la valeur est trouvé
                                If Not resultat Is Nothing Then
                                x = x & Sheets(z).Name & " - "
                                'insère le resultats dans la case "aq" & j
                                j = i + 1
                                Sheets(z).Range("aq" & j) = x
                                End If
                            If x <> "to sheet " Then Sheets("1").Range("g14") = x
                            End If
     
                Next
         End With
        Next
     
    End Sub

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut,

    j'ai testé et c'est un problème de logique qui n'est pas bonne.
    peux-tu me dire sur quel sheet tu veux stocker tes résultats ?

  3. #3
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Question vague
    PLUS D4INFORMATION VOUS VOULEZ UN MOTEUR DE RECHERCHE ?

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    Godzestla : je veux écrire mes données sur la feuille où la chaine de caractères est recherché

    delphidelphi : heu oui et non, j'ai des bloc diagrammes avec des numéros c de sorties et les sorties sont les entrée de ces blocs et je voudrais donner les numéros de pages où se trouve les numéro de sorties de ces entrées .




    le resultat que j'aimerais avoir :


    je veux automatisé ma macro pour que je n'ai pas à entrer la valeur à chercher, les valeurs se trouve toujours sur la colonne "au" pour les feuille 3 à sheet.count. La zone de recherche est de b4:e81 pour toutes ces feuilles

  5. #5
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut,

    si je comprends bien
    Godzestla : je veux écrire mes données sur la feuille où la chaine de caractères est recherché
    , tu veux donc stocker
    colonne("aq") colonne ("au")
    [ ] 010
    to sheet 1 - 2 -5 - 60 - 52
    sur les feuilles 1, 2, 5, 60 ?

    C'est ça ?

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    Resultats voulues : feuil 1 mais la chaine de caractère à cherche se trouve dans toutes les feuille colonne "au"
    voir fichier attaché

    en faite oui c'est un moteur de recherche qui recherche la chaine de caractères de la colonnes "au" et qui les met dans la colonne "aq" et cette recherche s'effectue dans les colonnes ( "b" à "e") de la selection des feuilles du classeur. A chaque fois qu'il trouve la chaine de caractères il inscrit dans la case "aq" & j le numéro de pages, la chaine de caractére recherché se trouve en "au" & i.

  7. #7
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Voilà, le code donne ceci :
    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
    Sub macro9()
    'recherche des liens de pages des sorties
     
    Dim resultat As Variant
    Dim x As String
    Dim j As Integer
    Dim i As Integer
    Dim z As Integer
    Dim y As Integer
     
    'Parcourt la feuille avec les zones a rechercher
     
    For i = 4 To 81
        x = "to sheet "
        If Len(Sheets("Feuil1").Range("au" & i)) > 1 Then
     
        For z = 1 To Sheets.Count
          If Worksheets(z).Name <> "Feuil1" Then
            'la recherche s"effectue dans toutes les cellules de la feuille
             With Worksheets(z).Range("b4:e81")
                 Set resultat = .Find(Sheets("Feuil1").Range("au" & i), LookIn:=xlValues)
                'si la valeur est trouvé
                 If Not resultat Is Nothing Then
                    x = x & Sheets(z).Name & " - "
                   'insère le resultats dans la case "aq" & j
                    j = i + 1
                    Sheets("Feuil1").Range("aq" & j) = x
                 End If
             End With
          End If
        Next
        End If
    Next
     
    End Sub
    Je l'ai testé, cela me semble ok.

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

Discussions similaires

  1. [XL-2007] Boucle pour une sélection multiple par nom sur un tableau croisé dynamique VBA
    Par kuro200 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/06/2015, 20h31
  2. Recherche par boucle et condition
    Par shahir dans le forum Langage
    Réponses: 2
    Dernier message: 03/04/2014, 23h46
  3. Regression multiple par une boucle
    Par SeniorBILL dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/05/2013, 21h42
  4. Formulaire de recherche multicriteres par cafeine
    Par jo-popo dans le forum Access
    Réponses: 8
    Dernier message: 12/01/2006, 00h53
  5. Multiplication par décalage de bits
    Par tekman54000 dans le forum Assembleur
    Réponses: 2
    Dernier message: 25/10/2005, 11h35

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