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'un élément dans une feuille grâce à un algo vba [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Par défaut recherche d'un élément dans une feuille grâce à un algo vba
    Bonjour à tous,

    Je vous exposent mon problème, j'ai une feuille excel à l'intérieur duquel il y a une liste de tâches à faire(todo list). J'ai voulu crée une macro afin de trouver des tâches en particuliers(car les tâches peuvent changer de cellules) pour qu'elle me sélectionne les tâches en particuliers.

    Cependant j'ai remarquer que si dans ma cellule j'écris ma tâche en faisant un retour à la ligne, mon algo ne retrouve plus la tâches et de ce fait je voulais savoir si il n'y avait pas un moyen de contourner cela ?

    Voici mon code



    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
     
    Dim a As String
    For i = 0 To 9
        a = tab_verif_tache(i)
        MsgBox a
            For j = 10 To 150
                If Range("B" & j).Value = a Then
                Range("B" & j).Select
                MsgBox ActiveCell.Address
     
                ElseIf Range("E" & j).Value = a Then
                Range("E" & j).Select
                MsgBox ActiveCell.Address
     
                ElseIf Range("I" & j).Value = a Then
                Range("I" & j).Select
                MsgBox ActiveCell.Address
                End If
            Next j
        Next i

  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
    Au lieu de faire des test avec un "=", utilise une fonction InStr() pour savoir si la chaine cherchée est dans la cellule testée.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Par défaut
    J'ai testé et il y a de l'amélioration.

    Cependant mon petit algo ne trouve pas toutes les tâches

    Voici le code

    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
     
    Dim a As String
    For i = 0 To 9
        a = tab_verif_tache(i)
        MsgBox a
            For j = 10 To 150
     
                If InStr(1, Range("B" & j).Value, a, 1) Then
                Range("B" & j).Select
                MsgBox ActiveCell.Address
     
                ElseIf InStr(1, Range("E" & j).Value, a, 1) Then
                Range("E" & j).Select
                MsgBox ActiveCell.Address
     
                ElseIf InStr(1, Range("I" & j).Value, a, 1) Then
                Range("I" & j).Select
                MsgBox ActiveCell.Address
                End If
            Next j
        Next i

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Par défaut
    Problème réglée ta fonction fonctionne très bien pour mon cas.

    J'ai juste eu besoin de modifier mes variables dans mon tableau "Dim tab_verif_tache(9)" qui contenait des String, les variables contenait le contenu entier de la cellule or j'ai juste laissé la première ligne et cela fonctionne sans aucun souci.

    Un grand merci à toi et en te souhaitant un agréable week end.

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

Discussions similaires

  1. Recherche d'un élément dans une liste
    Par Hyssgrif dans le forum Langage
    Réponses: 3
    Dernier message: 21/02/2016, 12h13
  2. rechercher une série d'élément dans un tableau
    Par tunizar dans le forum WinDev
    Réponses: 9
    Dernier message: 30/12/2013, 12h51
  3. recherche d'un éléments dans un tableau
    Par goldengear dans le forum C
    Réponses: 5
    Dernier message: 08/05/2012, 20h24
  4. Recherche d'un élément dans une map
    Par Bash01 dans le forum Débuter
    Réponses: 2
    Dernier message: 03/05/2010, 09h54
  5. Recherche d'un élément dans une liste triée (vitesse)
    Par Rodrigue dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 18/05/2006, 09h23

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