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

SUNLIFE2009

XLDnaute Nouveau
Re : Doublons dans msgbox

Rebonjour, j'ai finalement un dernier détail que je n'avais pas remarqué. Dans le code que tu m'as fourni, il y l'option 1 : Tous les TOA existent. Si ils existent, ton code dis "exit sub". Seulement, la macro n'est pas terminée, et en fait si oui ils existent, alors je voudrais sauter l'option 2 qui est d'afficher ceux qui n'existent pas.
En résumé, le début de ton code est en bleu, si tous les TOA existent, alors j'aimerais sauter la partie en rouge, et aller directement au début du vert. Si il manque des TOA par contre, j'aimerais aller directement dans la partie rouge.

Range("E:E,G:M,O:X").Delete

Sheets("Data Edmonton").Select
Range("B2:E708").Select
Selection.Copy
Worksheets("Edmonton QA Total").Visible = True
Sheets("Edmonton QA Total").Select Range("A2").Select
ActiveSheet.Paste

Set Coll = New Collection
With Sheets("Edmonton QA Total")
For R = .Range("D708").End(xlUp).Row To 2 Step -1
If .Cells(R, 5).Value = " " Then
On Error Resume Next
Coll.Add .Cells(R, 3), CStr(.Cells(R, 3))
On Error GoTo 0
End If
Next R
If Coll.Count = 0 Then MsgBox "All TOAs are existing !", vbInformation, "Checking Data": Exit Sub
For R = 1 To Coll.Count
If R = 1 Then
TextMsg = Chr(10) & " " & Coll(R)
Else
TextMsg = TextMsg & Chr(10) & " " & Coll(R)
End If
Next R
MsgBox "Missing TOA :" & TextMsg, vbCritical, "Checking Data"
End With


Worksheets("Edmonton QA Total").Visible = False
Sheets("Data Edmonton").Select

For u = ActiveSheet.UsedRange.Rows.Count To 2 Step -1


Merci beaucoup
 

CBernardT

XLDnaute Barbatruc
Re : Doublons dans msgbox

RE,

Essaye cette syntaxe :

If Coll.Count = 0 Then
MsgBox "Super, tous les TOA existent !", vbCritical, "Update the TOA database"
Else
For R = 1 To Coll.Count
If R = 1 Then
TextMsg = Chr(10) & "- " & Coll(R)
Else
TextMsg = TextMsg & Chr(10) & "- " & Coll(R)
End If
Next R
MsgBox "Missing TOA :" & " " & TextMsg, vbCritical, "Update the TOA database"
End If
End With
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote