Afficher une msgbox | ||
---|---|---|
Inscription: 21/01/2021
De SAINTRY SUR SEINE
Messages:
5
Système d'exploitation: pc Version Excel utilisée: 2016 |
Posté le : 21-01-2021 11h54
Bonjour
Je suis débutant en vba, et je souhaite mettre un message d'alerte dans un tableau ou des doublons peuvent être présents dans 2 colonnes. avec des formules Je compare les 2 colonnes pour que la condition finale soit k1<>I1 alors doublons. Je souhaite écrire un code pour afficher le message.." Attention doublon" quand K1<>I1 et "PAS DE DOUBLON POURSUIVEZ" si K1=I1 J'espère que c'est clair et merci pour votre aide |
|
|
Re: Afficher une msgbox | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 23-01-2021 00h48
Bonsoir Parafun et bienvenue sur mDF-XLpages.com.
Ta question semble être simple, mais selon moi, elle demande cependant quelques éclaircissements et points de réflexion...
Pour tout traitement VBA, la première question à se poser, c'est : quel évènement (ou quelle action) devra déclencher mon code ?
La présence de doublons dans un tableau n'est pas un évènement en soi. Par évènement, il faut entendre un fait générateur, une action ou un changement d'état qui servira de point de départ pour déclencher ton programme. Une fois déclenché, ton code pourra ensuite analyser tes cellules et, le cas échéant, t'avertir par un message d'alerte. Mais avant toutes choses, il faut trouver le déclencheur.
La détection de tes valeurs doublons (impliquant l'affichage du message d'alerte éventuel) doit-elle être déclenchée par :
La deuxième étape, consiste ensuite à définir la façon dont le code devra agir et son déroulement : Par exemple : si je décide qu'il faut cliquer sur un bouton, alors faut-il que le code parcourt tout le tableau et recherche, ligne après ligne, la présence de doublons ? Dans l'affirmative : en cas de présence de multiples doublons (selon la taille du tableau), l'utilisateur risque fort de subir une overdose de MsgBox d'alerte en cascade, non ?
Ensuite, n'aurais-tu pas inversé la logique dans ton énoncé ?
Pour moi, c'est l'inverse : si les éléments sont différents, alors ils ne s'agit justement pas de doublons.
Je pense qu'il serait préférable que tu joignes un fichier exemple (très simplifié) de ce que tu souhaiterais obtenir (voir la FAQ : Comment joindre un fichier dans le Forum ?" au besoin). N'hésite pas à donner plus de détails.
Bien cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Afficher une msgbox | ||
---|---|---|
Inscription: 21/01/2021
De SAINTRY SUR SEINE
Messages:
5
Système d'exploitation: pc Version Excel utilisée: 2016 |
Posté le : 25-01-2021 09h58
Merci pour le retour
En effet ça mérite un complément d'information, dans l'onglet " introduire des Pylones", des données sont injectées en lançant la macro depuis une autre fichier. Ce fichier est une extraction pour l'exercice, le fichier principal est trop volumineux La colonne f permet de recueillir l'identité de chaque pylone. Il peut y avoir doublon (car le pylone est sur 2 commune par exemple). Si Il y a doublon alors une alerte MSGBOX est déclenchée pour que l'operateur fasse une analyse (supprimer ou pas le doublon) Voici le code que j'ai initié et qui me donne en partie satisfaction : Sub Alerte() End Sub Une fois le message affiché Je souhaite qu'il disparaisse définitivement lorsque l'operateur clique sur ok. Encore Merci
Edité par Parafun le 25/01/2021 10:57:37
|
|
|
Re: Afficher une msgbox | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 26-01-2021 17h02
Bonjour Parafun, le Forum, En fait, ta procédure VBA pourrait être de ce type : Private Sub Worksheet_SelectionChange(ByVal Target As Range) ... c'est ce qu'on appelle une procédure "évènementielle" et qui se lance automatiquement lorsque l'utilisateur déplace la sélection d'une cellule à une autre. Cela signifie qu'à chaque fois que le curseur est déplacé dans la feuille, ton code se lance ! Sinon, ta procédure VBA pourrait être de ce type : Sub Alerte() ... ce qui est utilisable, par exemple, si tu décides de lancer ton code via un clic sur un objet bouton notamment. Tu as donc 2 types de procédures différentes utilisables, mais en aucun cas, il ne faut imbriquer les 2, l'une dans l'autre comme tu l'as fait. C'est soit l'une, soit l'autre. Dans l'exemple que je t'ai préparé (voir pièce jointe), j'ai opté pour la 2ème façon de faire avec une procédure "Sub Alerte()" placée dans un module de code standard et liée à un bouton "DETECTION DOUBLONS" sur ta feuille. Bien évidemment, il existe des façons de faire beaucoup plus optimisées et bien plus rapides, mais il me semble que le code VBA suivant te sera très simple à comprendre : DANS UN MODULE DE CODE STANDARD (ex. Module1) Option Explicit En espérant que ça puisse te dépanner.
Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Afficher une msgbox | ||
---|---|---|
Inscription: 21/01/2021
De SAINTRY SUR SEINE
Messages:
5
Système d'exploitation: pc Version Excel utilisée: 2016 |
Posté le : 26-01-2021 22h00
Merci Didier tu as complètement cerné ma demande, et non je ne me vexe pas, car tu es un sachant dans le domaine, alors que moi non. Merci encore pour le temps passé et surtout pour la qualité de la réponse que je trouve très pédagogique. |
|
|
Re: Afficher une msgbox | ||
---|---|---|
Inscription: 21/01/2021
De SAINTRY SUR SEINE
Messages:
5
Système d'exploitation: pc Version Excel utilisée: 2016 |
Posté le : 26-01-2021 22h25
petite Question Didier : Le code fonctionne impeccablement bien pour un doublon, quid si il y a 2 3 4 ..bref plusieurs doublons, le MSGBOX n'en affiche qu'un seul... |
|
|
Re: Afficher une msgbox | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 27-01-2021 00h53
Re, Citation : Parafun a écrit : En fait, c'est un peu ce dont je te parlais dans mon premier post ci-dessus : si je décide qu'il faut cliquer sur un bouton, alors faut-il que le code parcourt tout le tableau et recherche, ligne après ligne, la présence de doublons ? Dans l'affirmative : en cas de présence de multiples doublons (selon la taille du tableau), l'utilisateur risque fort de subir une overdose de MsgBox d'alerte en cascade, non ?
Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Afficher une msgbox | ||
---|---|---|
Inscription: 21/01/2021
De SAINTRY SUR SEINE
Messages:
5
Système d'exploitation: pc Version Excel utilisée: 2016 |
Posté le : 27-01-2021 12h36
Encore Merci c'est parfait
Edité par Parafun le 27/01/2021 16:17:02
|
|
|