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 :

Explication d'un code! [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 71
    Par défaut Explication d'un code!
    Bonjour,

    Je voulais savoir si quelqu'un pouvait m'expliquer par étape le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
     'Permet de ne pas sélectionner plusieurs fois le même poste
        If Not Intersect([ColA], Target) Is Nothing Then
            [ListeDispo].ClearContents
            For Each c In [Choix1]
                If IsError(Application.Match(c, Range(Cells(11, 1), Cells(65000, 1)), 0)) Then
                    Sheets("Listes").[B65000].End(xlUp).Offset(1, 0) = c
                End If
            Next c
        End If
     
    End Sub
    Sachant que:
    - [ColA] représente une liste déroulante dans la feuille de saisie par l'utilisateur
    - [ListeDispo] une colonne reprenant les valeurs de [Choix1] mais avec les valeurs déjà sélectionnées dans [ColA] en moins
    - [Choix1] les valeurs

    D'avance merci.

    DeamonRav

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,


    Pour comprendre un code tu peux faire sur les mots que tu ne comprends pas.

    il y a la faq et de nombreux tutoriaux par exemple ici


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' evenement lorsque la selection dans la feuille change, target est la cellule selectionnée
     
     'Permet de ne pas sélectionner plusieurs fois le même poste
        If Not Intersect([ColA], Target) Is Nothing Then[ListeDispo].ClearContents 'Si la cellule fait partie de colA on efface le contenu de listedispo
            For Each c In [Choix1] ' pour chaque cellule de la plage choixA
                If IsError(Application.Match(c, Range(Cells(11, 1), Cells(65000, 1)), 0)) Then ' ici je pensais plutôt Application.WorksheetFunction.Match 
                    Sheets("Listes").[B65000].End(xlUp).Offset(1, 0) = c
                End If
            Next c
        End If
     
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 71
    Par défaut
    Bonjour,

    Merci pour le F1 directement sur le mot, je ne savais pas.

    Je ne comprend justement pas le "Match" de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If IsError(Application.Match(c, Range(Cells(11, 1), Cells(65000, 1)), 0)) Then ' ici je pensais plutôt Application.WorksheetFunction.Match 
                    Sheets("Listes").[B65000].End(xlUp).Offset(1, 0) = c
                End If
    Et il n'ai pas dans l'aide...

    Merci également pour la page des tutos, je l'avais déjà parcourue avant de poster cette discusion. Mais je vais y rejeter un coup d'oeil...

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    dans l'aide
    WorksheetFunction.Match, méthode
    Afficher tout
    Masquer tout
    Renvoie la position relative d'un élément dans une matrice (matrice : permet de créer des formules uniques permettant d'obtenir plusieurs résultats et qui agissent sur un groupe d'arguments répartis dans des lignes et des colonnes. Une plage matricielle partage une même formule tandis qu'une constante matricielle est un groupe de constantes qui sert d'argument.), qui correspond à une valeur spécifiée dans un ordre spécifié. Utilisez la fonction MATCH au lieu de l'une des fonctions LOOKUP lorsque vous avez besoin de la position d'un élément dans une plage au lieu de l'élément proprement dit.
    Syntaxe

    expression.Match(Arg1, Arg2, Arg3)

    expression Variable représentant un objet WorksheetFunction.
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 71
    Par défaut
    Merci,

    Pour m'avoir transmit l'aide. Mais je ne comprend pas pourquoi moi je ne l'ai pas.
    Peut être avez-vous une version différente d'Excel!

    En tout cas merci bien

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    je pense que tu dois selectionner la totalité :
    WorksheetFunction.Match
    et non match seul, ré-essayes

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. Explication sur du code javascript
    Par griese dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/07/2006, 09h40
  2. explications/commentaires de codes
    Par pascal913 dans le forum Access
    Réponses: 24
    Dernier message: 19/07/2006, 14h01
  3. cherche explication sur du code
    Par abdoulzak dans le forum Langage
    Réponses: 1
    Dernier message: 06/07/2006, 10h23
  4. besoin d'explications sur un code
    Par NAHIAG dans le forum C
    Réponses: 8
    Dernier message: 28/05/2006, 12h37
  5. [javascript] explication d'un code
    Par mzt.insat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/04/2006, 23h52

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