Plage de donnée dans MsgBox

Bonjour tout le monde,

Je suis débutant en VBA et j'essai de faire une "application VBA" qui compare une donnée dite prévu et une dite réelle venant de deux colonnes différentes avec dans une troisième colonne les noms des personnes concernées. Le but serait de faire ressortir un message via l'outil MsgBox du VBA montrant les personnes dont le prévu<réel. J'ai réussi à faire un bout de programme qui marche mais pour une seule ligne, je m'explique : Lorsque que Yann (moi) a 50 en prévu et 75 en réel, on remplit bien la condition Prévu<Reel et donc le message s'affiche mais ça ne marche que pour Yann (que j'ai rentré dans le code VBA). Lorsque que j'essai d'étendre la range du MsgBox pour prendre toutes les personnes dans ce cas, j'ai une erreur indiquée. Serait il possible de m'aider? :)

11prevu-reel.xlsm (39.46 Ko)

Salut,

Visiblement il te manque 2 élements dans ton code:

Il faut compter combien tu as de ligne dans le tableau pour balayer chaques lignes une à une.

Enfin, je pense que au lieu de faire un msgbox par problème tu devrais les regrouper en un seul. Pour ce faire untiliser chr(10) qui est un saut de ligne.

Une proposition du coup:

With Sheets("Feuil3")
Dim resultat As String
Dim len_init As Integer
resultat = "Attention, probleme d'heure concernant:" & Chr(10)
len_init = Len(resultat)
n = 2
While .Cells(n, 4) <> ""
    If .Cells(n, 1) < .Cells(n, 2) Then resultat = resultat & .Cells(n, 4) & Chr(10)
    n = n + 1
Wend
End With
If Len(resultat) > len_init Then MsgBox resultat Else MsgBox ("Aucuns problèmes detecté")

Code que j'ai mit dans la procédure macro1.

A+

Bonjour,

En utlisant votre méthode et sous forme de boucle.

Sub Macro1()
Dim i As Long
For i = 2 To 38

If Range("A" & i) < Range("B" & i) Then
If MsgBox("Attention, probleme d'heure concernant " & Sheets("Feuil3").Range("D" & i) & vbLf & "Voulez-vous poursuivre ?", vbYesNo, " Message de Yann") <> vbYes Then
 Exit Sub
 End If
End If
 Next i

End Sub

Salut,

Merci beaucoup pour ton aide, le code marche parfaitement. J'avais en tête de faire un moyen de balayer les données mais je ne savais pas comment le faire. Petite question, la fonction Len permet de renvoyer le résultat c'est bien ça?

Merci encore pour ton aide!!

Salut XMenPL,

Merci beaucoup pour ton aide, je n'arrivai pas a comprendre comment utiliser la variable pour la faire parcourir le tableau, merci pour ton aide!

Merci tout le monde :)

Len renvoie la longueur d'une chaine de charactère,

len("Yannou97") = 8

Dans mon code comparer la longueur du résultat me permet de detecter si une ou plusieurs erreurs à été detecté pour adapter le msgbox en fonction.

Rechercher des sujets similaires à "plage donnee msgbox"