Doublons dans msgbox

lolo62000

XLDnaute Junior
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...
 

Pierrot93

XLDnaute Barbatruc
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.
 

SUNLIFE2009

XLDnaute Nouveau
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

  • Exemple msgbox.zip
    13.6 KB · Affichages: 38

kjin

XLDnaute Barbatruc
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:

CBernardT

XLDnaute Barbatruc
Re : Doublons dans msgbox

Bonsoir à tous,

Une macro pour repérer, collectionner, réunir les QA for id et les afficher dans un message synthèse.
 

Pièces jointes

  • ExempleMsgBoxV1.xls
    30 KB · Affichages: 59
  • ExempleMsgBoxV1.xls
    30 KB · Affichages: 61
  • ExempleMsgBoxV1.xls
    30 KB · Affichages: 53

lolo62000

XLDnaute Junior
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.
 

kjin

XLDnaute Barbatruc
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
 

lolo62000

XLDnaute Junior
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.
 

SUNLIFE2009

XLDnaute Nouveau
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

  • Classeur1.zip
    30.7 KB · Affichages: 34
  • Classeur1.zip
    30.7 KB · Affichages: 36
  • Classeur1.zip
    30.7 KB · Affichages: 30

kjin

XLDnaute Barbatruc
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:

SUNLIFE2009

XLDnaute Nouveau
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.
 

CBernardT

XLDnaute Barbatruc
Re : Doublons dans msgbox

Bonjour à tous,

Une petite modification afin d'obtenir plusieurs résultats s'affichants les uns en dessous des autres.
 

Pièces jointes

  • ExempleMsgBoxV1.xls
    30 KB · Affichages: 53
  • ExempleMsgBoxV1.xls
    30 KB · Affichages: 51
  • ExempleMsgBoxV1.xls
    30 KB · Affichages: 57

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch