Creer un message d'erreur sous excel

Résolu
Bonjour,
Je souhaite creer un message d'erreur sous excel.
J'ai creer un tableau dans lequel mes données s'enregistrent automatiquement à l'aide d'une macro. Je remplis donc un prés-tableau puis je clik sur un bouton auquel j'ai affecté la macro. Cette macro, m'insert un ligne et me copis mes données de mon prés-tableau et l'insert dans mon réel tableau.
Ce que j'aimerais faire c'est lorsque que je clik sur mon bouton, et que toutes les données ne sont pas rentrés, il m'affiche un message d'erreur. J'aimerais aussi avoir un autre message d'erreur qui serait suite à une comparasion de valeur !
Je vous remercie d'avance pour l'interet que vous y porterez !
Cordialement
Configuration: Windows XP
Internet Explorer 7.0

8 réponses

  1. Bonjour,

    On peut effectivement faire apparaitre un message en utilisant les macro Excel.

    Il existe 2 façon de le faire en VBA. Soit en utilisant la boîte de message VB (MsgBox), soit en utilisant une UserForm que l'on peut configurer comme l'on veut.

    If Not IsDate(maDate) Then
    'Avec la boîte de message VB
    MsgBox "La date " & maDate & " n'est pas une date valide.",VbExclamation,"Message Erreur"
    'Avec une UserForm
    UserForm1.Show
    Else
    'Avec la boîte de message VB
    MsgBox "La date " & maDate & " est une date valide.",,"Bravo"
    'Avec une UserForm
    UserForm1.Show
    End If

    Bon courage

    ;o)
    0
    1. Heu ok, cependant comment je puis-je la mettre sur ma macro c'est plutot sa que j'ai pas compris, et je voudrais une comparaison de date, il me sufit de changer "&ma date&" dans le VB, par une formule !?
      Pour les valeurs, s'agit-t-il du même proceder !?
      Pour que la vérification de la totalité du tableau (tout remplis!?) Je fait de la même maniére !?
      0
      1. Tu n'as jamais fait de programmation ou programmé ?

        C'est un peu plus compliqué que ça. Il faut définir la condition pour laquelle le message doit apparaitre. Dans mon exemple "maDate" est une variable qui contient la valeur à tester.
        0
        1. Si si j'ai fait de la programmation sur DEv C++ ou d'autre logiciel mais c'est assez abstrait et de plus cela n'a été que de l'approche alors connaitre toutes les ptites astuce pour un débutant c'est pas évidant ;-) ... Bref, je voudrais que sa soit par comparaison avec la date d'une cellule. Et une vréification de si toutes les cellules sont remplis ou non !
          0
          1. Voilà un exemple de code pour tester toutes les cellules d'une plage:

            On admet, dans l'exemple, que la plage de cellules ("B2:F30") à tester est sur le premier onglet du classeur et que la date à comparer se trouve en "A1"

            Sub TestCellule()
            Dim cl As Range
            Dim maDate As Variant
            Dim str As Variant
            Dim ok As Boolean
            '
            'On teste si il n'y a pas de cellule vide dans la plage
            'Si une cellule est vide on informe l'utilisateur et on sort de la procédure
            For Each cl in Worksheets("Feuil1").Range("B2:F30")
               If cl.value = "" Then
                  MsgBox "Une cellule n'est pas renseignée",Vbexclamation,"Message Erreur"
                  cl.Activate
                  Exit Sub
               End If
            Next cl
            
            'On compare les dates contenues dans la plage
            'avec la date de référence
            maDate = Worksheets("Feuil1").Range("A1").value
            For Each cl in Worksheets("Feuil1").Range("B2:F30")
                 'on recupère la valeur de la cellule dans str
                 str = cl.value
                 If IsDate(str) = True Then
                    If str < maDate Then
                       MsgBox "La date est inférieure à " & maDate
                       ElseIf str = maDate Then
                           MsgBox "La date est égale à " & maDate
                           ElseIf str > maDate Then
                              MsgBox "La date est supérieur à " & maDate
                    End If
                End If
            Next cl
            End Sub
            


            J'ai fait ça à "main levée" sans tester ... il peut y avoir un beug.

            ;o)
            0
            1. :-ooooooooooooooooo Bon bha j'ai plus qu'a essayer de comprendre tout sa, je vais taché de m'y atteler ce soir car là je ne peux regarde je suis à L'IUT.... je vous remercie et je vous tiens au courant !
              cordialement lolseb
              0
              1. Merci, sa à marché comme sur des roulettes après quelques galère malgrès tout !
                Super et encore merci !
                0