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 d'Index et Match - Erreur 2023 [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut Utilisation d'Index et Match - Erreur 2023
    Bonjour au forum,

    Je ne suis qu'un amateur, mais il me semble que là, j'ai atteint les limites de ma compétence.
    Lorsque j'exécute le code ci-dessous, j'abouti à une erreur 2023 et je ne trouve aucune réponse à cette erreur sur le net.

    Il est probable que mon code soit mal construit ou qu'il manque certaines déclarations ou...

    Quelqu'un pourrait-il me donner un coup de main ?

    Quelques infos supplémentaires :
    Dans I18, l'utilisateur entre un code tel que "100" par exemple. Dans la feuille, il y a une formule Excel qui m'affiche le libellé de la commission paritaire. Elle fonctionne très bien, la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(I18<>"";SIERREUR(INDEX('Commissions Paritaires'!A2:C399;EQUIV(I18;'Commissions Paritaires'!A2:A399;0);2);"Cette CP n'existe pas");"")
    Dans la feuille "Commissions Paritaires", il y a 5 colonnes:
    CP Commission Paritaire Paritair comité Ecochèques KKP
    201,00,00 Commerce de détail indépendant Zelfst.kleinhandel Oui Oui

    Elles contiennent le code, le libellé en français, le libellé en néerlandais, est-il prévu des ecochèques, est-il prévu une prime
    Dans la plupart des cas, les colonnes 4 et 5 ne contiennent rien et c'est dans ce cas que la macro s'exécute complètement.

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Not Application.Intersect(Target, Range("I18")) Is Nothing Then
            With Application
                ecocheque = .Index(Sheets("Commissions Paritaires").Range("A2:C399"), .Match(Range("I18"), Sheets("Commissions Paritaires").Range("A2:A399"), 0), 4)
                KKP = .Index(Sheets("Commissions Paritaires").Range("A2:C399"), .Match(Range("I18"), Sheets("Commissions Paritaires").Range("A2:A399"), 0), 5)
            End With
     
            If UCase(ecocheque) <> "OUI" Then
                ' Désactivation des réponses de la question Vastefee/uur
                Me.VasteFeeNA.Enabled = False
                Me.VasteFeeWB.Enabled = False
                Me.VasteFeeGV.Enabled = False
     
                ' Mise à zéro de la valeur des réponses
                Me.VasteFeeNA.Value = False
                Me.VasteFeeWB.Value = False
                Me.VasteFeeGV.Value = False
     
                ' Mise en blanc de cette ligne
                Reponse = "VasteFeeRAZ"
                Range(Sheets("Parameters").Range(ColDebut).Value & LigneCrt & ":" & _
                Sheets("Parameters").Range(ColFin).Value & LigneCrt).Interior.Color = RGB(255, 255, 255)
            End If
     
            If UCase(KKP) <> "OUI" Then
                ' Désactivation des réponses de la question Vastefee/uur
                Me.KoopKrachtPremieB.Enabled = False
                Me.KoopKrachtPremieNA.Enabled = False
                Me.KoopKrachtPremieGV.Enabled = False
     
                ' Mise à zéro de la valeur des réponses
                Me.KoopKrachtPremieB.Value = False
                Me.KoopKrachtPremieNA.Value = False
                Me.KoopKrachtPremieGV.Value = False
     
                ' Mise en blanc de cette ligne
                Reponse = "KoopKrachtPremieRAZ"
                Range(Sheets("Parameters").Range(ColDebut).Value & LigneCrt & ":" & _
                Sheets("Parameters").Range(ColFin).Value & LigneCrt).Interior.Color = RGB(255, 255, 255)
            End If
        End If
     
    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
    Citation Envoyé par Henri1830 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                ecocheque = .Index(Sheets("Commissions Paritaires").Range("A2:C399"), .Match(Range("I18"), Sheets("Commissions Paritaires").Range("A2:A399"), 0), 4)
                KKP = .Index(Sheets("Commissions Paritaires").Range("A2:C399"), .Match(Range("I18"), Sheets("Commissions Paritaires").Range("A2:A399"), 0), 5)
    La matrice de référence de ton INDEX ne contient que 3 colonnes (A à C) mais tu as mis un 4 puis un 5 en troisième paramètre de cette fonction.
    Change tes "C" en "E" ou bien remplace tes 4 et 5 par 2 et 3, ça devrait mieux fonctionner.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut Quand on est trop fatigué, il faut arrêter...
    Bonjour Menhir,

    C'était évident mais la fatigue fait commettre des erreurs grossières.
    Mille mercis pour votre clairvoyance.

    Je ne clôture pas encore le dossier car j'ai une autre difficulté pour laquelle je n'entrevois pas encore de solution.
    Je cherche d'abord et vous reviens ensuite, le cas échéant.

    Bonne soirée !

    Henri

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

Discussions similaires

  1. [XL-2016] Utilisation de Index et Match en recherche multicritères en VBA
    Par clem256 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 16/04/2018, 18h07
  2. [XL-2010] VLOOKUP/INDEX/EQUIV/MATCH ? Laquelle utiliser
    Par Anto_NEX dans le forum Excel
    Réponses: 4
    Dernier message: 16/12/2013, 16h09
  3. Compteur sur l'utilisation des index
    Par hkhan dans le forum Administration
    Réponses: 11
    Dernier message: 14/10/2004, 17h57
  4. Utilisation des "indexs" ?
    Par vandeyy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/09/2004, 07h49
  5. Utilisation de Index Server
    Par Emmanuel.G dans le forum XMLRAD
    Réponses: 2
    Dernier message: 03/09/2003, 11h50

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