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 :

code concernant la fonction match [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2022
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2022
    Messages : 25
    Par défaut code concernant la fonction match
    Bonjour à tous , je travaille sur un projet , Dans une partie de mon code j'ai un userform qui me recherche une valeur dans ma feuille de calcul , j'ai utilisé la fonction match et ça marche bien pour moi , si la valeur existe , j'ai des choses qui s'exsecutent , or si la valeur n'existe pas rien ne se produit ,
    j'aimerais bien faire apparaitre un msgBox indiquant que cette valeur n'existe pas mais je n'arrive pas a savoir le code qui exprime cela.

    merci de m'aider si c possible
    Bonne journée

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il existe plusieurs solutions.
    L'une d'elles consisterait à intercepter l'erreur à l'aide d'un On Error Resume Next et affecter ainsi la valeur 0 et une autre de simplement imbriquer la fonction Match dans la fonction IfError en renvoyant 0 si Match est en erreur.
    Ensuite, il suffit de tester la valeur renvoyée et si c'est 0, on affiche le message à l'aide de MsgBox
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2022
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2022
    Messages : 25
    Par défaut
    Bonjour,
    Merci pour votre réponse
    mais ce n'est toujours pas claire,
    que dois-je faire?

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    ce n'est toujours pas claire
    La fonction Match renvoie la position d'une valeur cherchée dans un vecteur, une colonne ou une ligne, ou une erreur si la valeur n'est pas trouvée donc il suffit d'intercepter cette erreur en renvoyant une valeur nulle.


    que dois-je faire
    En publiant votre code utilisant la fonction Match vous auriez plus de chance d'avoir une réponse pertinente
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2022
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2022
    Messages : 25
    Par défaut
    voila la partie concerné

    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
    Private Sub cmdSearch_Click()
     
    On Error Resume Next
     
    'Search button
     
    ' la cellule XFB1 contient la valeur que je veux cherché
     
     
    ThisWorkbook.Sheets("Data").Range("XFB1").Value = Me.TextBox30.Value
     
    Dim Ligne As Integer
     
    ligne = ThisWorkbook.Sheets("Data").Range("XFC1").Value
     
    ' la variable ligne est le résultat de la fonction match , elle me renvoie  le numéro de ligne qui contient la valeur que je cherche , mais je veux faire de telle sorte que si la valeur n'exsiste pas , j'envoie un msg(MsgBox)

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    ' la variable ligne est le résultat de la fonction match , elle me renvoie le numéro de ligne qui contient la valeur que je cherche , mais je veux faire de telle sorte que si la valeur n'exsiste pas , j'envoie un msg(MsgBox)
    J'ai très bien compris votre demande mais je vous demande d'afficher le code qui utilise la fonction Match afin de vous aider au mieux de vos intérêts et sauf si ma vue baisse à ce point, je n'ai vu aucune ligne avec Match dans ce que venez de publiez

    la variable ligne est le résultat de la fonction match , elle me renvoie le numéro de ligne qui contient la valeur que je cherche
    donc publiez la ligne où l'on peut voir Ligne = "...Match(......" car cette ligne de code ligne = ThisWorkbook.Sheets("Data").Range("XFC1").Value n'utilise pas Match
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2022
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2022
    Messages : 25
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,

    J'ai très bien compris votre demande mais je vous demande d'afficher le code qui utilise la fonction Match afin de vous aider au mieux de vos intérêts et sauf si ma vue baisse à ce point, je n'ai vu aucune ligne avec Match dans ce que venez de publiez


    donc publiez la ligne où l'on peut voir Ligne = "...Match(......" car cette ligne de code ligne = ThisWorkbook.Sheets("Data").Range("XFC1").Value n'utilise pas Match
    En fait je n'ai aucune ligne de code comme vous venez d'indiquer
    j'ai utilisé la fonction match directement en feuille de calcul excel en allant à le cellule XFC1 et je tape =match(XFB1 ; C:C ; 0) et mon code marche très bien

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    j'ai utilisé la fonction match directement en feuille de calcul excel en allant à le cellule XFC1 et je tape =match(XFB1 ; C:C ; 0) et mon code marche très bien
    Je ne comprends pas pourquoi vous ne faites pas la recherche directement depuis le UserForm mais bon, je me contenterai de répondre à votre question.

    Donc si j'ai bien compris vous allez lire en VBA, le contenu d'une cellule qui est le résultat de la fonction MATCH (EQUIV pour la version française d'excel) et vous souhaiteriez qu'un message soit envoyé si une erreur est renvoyée par cette fonction comme illustré ci-dessous.

    Nom : Match.png
Affichages : 193
Taille : 3,7 Ko

    Il y a bien entendu moyen de lire en VBA ce type de message mais il serait plus simple d'imbriquer la fonction MATCH dans IFERROR (SIERREUR pour la version française) qui renverrait une valeur nulle à la place du message d'erreur (voir illustration ci-dessous)

    Nom : IFERROR Match.png
Affichages : 185
Taille : 5,0 Ko

    et dans ce cas, il suffit dans votre code VBA de placer un If...Then...Else en envoyant un message à l'aide de MsgBox si la variable Ligne est égal à 0

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub cmdSearch_Click()
      Dim Ligne As Long
      Ligne = ThisWorkbook.Worksheets("Data").Range("C2").Value
      If Ligne Then
         ' Votre code
       Else
         MsgBox "Pas trouvé"
      End If
    End Sub
    Dans la partie où j'ai placé le commentaire "Votre code", il suffit de placer vos lignes VBA qui fonctionnent bien
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2022
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2022
    Messages : 25
    Par défaut
    merci beaucoup
    ça marche parfaitement

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

Discussions similaires

  1. Code postal en fonction de la ville
    Par Pogny dans le forum Access
    Réponses: 14
    Dernier message: 07/11/2012, 20h25
  2. Réponses: 6
    Dernier message: 18/06/2006, 00h22
  3. Réponses: 2
    Dernier message: 17/05/2006, 11h43
  4. [Tableaux] demande de code pour une fonction.php
    Par carmen256 dans le forum Langage
    Réponses: 4
    Dernier message: 21/01/2006, 17h22
  5. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/07/2005, 08h41

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