Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Doublons dans msgbox

  • Initiateur de la discussion Initiateur de la discussion lolo62000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

lolo62000

Guest
Bonjour le forum,

j'ai une question concernant la neutralisation éventuelle de doublons dans une msgbox. J'exécute une macro qui va coller des données dans les 4 premières colonnes d'un tableau. En colonne 5, j'ai une fonction qui lie une base de données pour faire le lien avec la valeur en colonne 3. La macro suivante affiche donc une msgbox annoncant qu'un missing TOA existe en colonne 3 (aucune valeur renvoyée en colonne 5), et affiche également la valeur correspondante en colonne 3. Le problème, c'est que le même TOA peut revenir jusqu'a 5 fois, et donc la msgbox pop up 5 fois la même donnée. Existe t-il un moyen pour dire a la msgbox de ne pas s'afficher si la même valeur a déja été lue?

For R = [E700].End(xlUp).Row To 2 Step -1

If ActiveSheet.Cells(R, 5).Value = " " Then
MsgBox "Missing TOA :" & " " & Cells(R, 4).Value, vbCritical, "Update the TOA database"

End If

Next R


Autre question, est t-il possible d'afficher dans une seule et même msgbox toutes les valeurs qui ne renvoient rien en colonne 5?

Merci pour votre aide, et n'hésitez pas si vous voulez plus de clarification...
 
Re : Doublons dans msgbox

Bonjour,

A priori, je dirais qu'il faut sortir de la boucle à la première vérification du test...

Code:
For R = [E700].End(xlUp).Row To 2 Step -1
    If ActiveSheet.Cells(R, 5).Value = " " Then
        MsgBox "Missing TOA :" & " " & Cells(R, 4).Value, vbCritical, "Update the TOA database"
        [COLOR="Blue"][B]Exit For[/B][/COLOR]
    End If
Next R

A noter, je vois une espace dans le test que tu fais :
Code:
 If ActiveSheet.Cells(R, 5).Value = " "
donc ta cellule n'est pas vide, mais contier ce caractère...

bonne journée
@+

Edition : bonjour Bernard.
 
Re : Doublons dans msgbox

Salut,

c'est lolo62000, mais cette fois du travail.
Merci de vous intéresser à mon problème.
Comme demandé, voici donc un extrait de mon problème, car effectivement, rien ne vaut un exemple concret.
Au cas où mon problème serait solutionnable, pensez-vous qu'il est possible d'afficher toutes les valeurs de la colonne C qui ne renvoient aucune valeur dans la colonne E, dans une seule et même msgbox, au lieu d'en voir s'afficher une à la fois, pour un seul TOA? Ca donnerait quelque chose du coup à l'affichage de la Msgbox = " TOA missing : E551, E065, E209 ".
Encore une fois, merci beaucoup pour votre aide.
 

Pièces jointes

Re : Doublons dans msgbox

Bonsoir,
Code:
Private Sub CommandButton1_Click()
    For i = 2 To [A65000].End(xlUp).Row
        If Cells(i, 5).Value = "" Then
            Txt = Txt & Cells(i, 3) & vbCrLf
        End If
    Next
    MsgBox "TOA missing :" & vbCrLf & Txt & vbCrLf, vbCritical, "Update the TOA database"

End Sub
A+
kjin
 
Dernière édition:
Re : Doublons dans msgbox

Salut.
Excellent ca fonctionne. J'aurais juste une dernière requête, et après j'arrête de vous déranger. Est-il possible de lancer la macro, et si aucune donnée ne manque, terminer le test, sans rien afficher. La msgbox sert juste à m'assurer que le tableau est bien rempli. Si tout est correct, alors ne rien afficher, ou bien, afficher une msgbox " Tous les TOA existent".
Merci beaucoup.
 
Re : Doublons dans msgbox

re, salut Bernard 🙂
Pour ce qui est de ma macro, il suffit de tester la longueur de la chaine "Txt"
Code:
Private Sub CommandButton1_Click()
Dim i As Long, Txt As String
    For i = 2 To [A65000].End(xlUp).Row
        If Cells(i, 5).Value = "" Then
            Txt = Txt & Cells(i, 3) & vbCrLf
        End If
    Next
    If Len(Txt) = 0 Then Exit Sub
    MsgBox "TOA missing :" & vbCrLf & Txt & vbCrLf, vbCritical, "Update the TOA database"
End Sub
 
Re : Doublons dans msgbox

Waouh!!!!
Un énorme merci à vous tous, les 2 solutions fonctionnent à merveille.
Il ne me reste plus qu'à choisir laquelle utiliser. Pour ne pas faire de jaloux, je ne communiquerai pas mon choix. ;o)
En tout cas, belle preuve de réactivité, et d'efficacité, à l'image du forum d'excel-download.
Merci tout le monde.
 
Re : Doublons dans msgbox

Arf, c'est encore moi. Je viens de tester le code au bureau, et ca ne marche plus. En fait, j'ai joint un exemple hier, pour expliquer en gros ce que je voulais faire.
Seulement, ma macro s'inscrit à la fin d'une autre macro, qui trie un tableau de données, et ensuite copie-colle ces données triées dans 2 autres feuilles "Montreal QA Total", et "Montreal Errors QA".
J'ai donc essayé de coller les lignes que vous m'avez fournies au bas de mon code, mais ca ne marche pas. Pour info, la feuille "Montreal QA Total" contient des fonctions en colonne E (dans le vrai tableau, la fonction en colonne E lie les données en colonne C, à une base de données qui renvoie un nom d'équipe). Donc en colonne E, les valeurs sont égales aux trois couleurs nommées, et les blancs sont le résultats de la lecture d'un "espace" en H6 , H7 et H8. J'espère être clair....
En lancant la macro, la msgbox s'affiche en disant "Super tous les TOA existent", alors qu'il y a des trous en colonne E.
Voila donc mon nouveau probleme. Je desespere pas! Je tombe en vacances ce soir, et maudit que j'ai hâte.... 🙂
 

Pièces jointes

Re : Doublons dans msgbox

Bonsoir,
Dis moi, cette macro, un peu strange non ?! Tu mets en forme les données, pour finalement en virer 80% !
Sinon, lorsque tu utilises une instruction With/End With, il ne faut pas oublier le "."
Code:
With Sheets("Montreal QA Total")
    For i = 2 To [B][COLOR="Red"][SIZE="6"].[/SIZE][/COLOR][/B][A65000].End(xlUp).Row
        If [B][COLOR="Red"][SIZE="6"].[/SIZE][/COLOR][/B]Cells(i, 5).Value = "" Then
            Txt = Txt & [B][COLOR="Red"][SIZE="6"].[/SIZE][/COLOR][/B]Cells(i, 3) & vbCrLf
        End If
    Next
    If Len(Txt) = 0 Then Exit Sub
    MsgBox "TOA missing :" & vbCrLf & Txt & vbCrLf, vbCritical, "Update the TOA database"
End With
A+
kjin
 
Dernière édition:
Re : Doublons dans msgbox

Salut CBernardT,
je te reviens un peu tard sur ta proposition de msgbox, qui finalement fonctionne bien, même ici au bureau. J'avais délaissé un peu mon projet et là je m'y suis remis, et en bidouillant un peu, j'ai réussi à l'insérer dans le reste de ma macro.
J'ai une petite question soit disant. Est-il possible de faire s'afficher les résultats dans la msgbox, les uns en dessous des autres. Au lieu qu'il s'affichent tous en une seule ligne, avoir un résultat, saut de ligne, un autre résultat, saut de ligne, etc....
Il existe bien la fonction vbnewline, mais avec le "coll(R)", ca n'a pas l'air de fonctionner. Merci pour ton aide!
Laurent.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
788
Réponses
2
Affichages
284
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…