Macro excel ne fonctionne plus ???

Résolu/Fermé
lucasp Messages postés 11 Date d'inscription vendredi 10 septembre 2010 Statut Membre Dernière intervention 14 janvier 2011 - 10 sept. 2010 à 15:05
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 14 sept. 2010 à 12:16
Bonjour,

J'avais une macro qui fonctionnait, j'ai rajouté un IF au début qui ne fonctionnait pas, mais après l'avoir enlevé, ce qui fonctionnait avant ne fonctionne plus, et selon moi, il n'y a pas de raison ???

Private Sub CommandButton1_Click()
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
    If Cells(var, 2).Value = "" Then        MsgBox ("Vous devez mettre un choix dans la case B" & var)
    ElseIf Cells(var, 2).Value = "Nouveau" Then
        If Cells(var, 3).Value = "Oui" Then
            If Cells(var, 7).Value = "Cote demandée" Or "Partielle approuvée" Then
                MsgBox ("La cote a déjà été demandée")
            Else
                MsgBox ("Vous devez envoyer le formulaire de sécurité par fax!")
            End If
        Else
            MsgBox ("Les ressources humaines s'occupent de la sécurité des employés rémunérés!")
        End If
    ElseIf Cells(var, 2).Value = "Réembauche" Then
        If Cells(var, 3).Value = "Oui" Then
            If Cells(var, 7).Value = "Cote demandée" Or "Partielle approuvée" Then
                MsgBox ("La cote a déjà été demandée")
            Else
                MsgBox ("Vous devez envoyer le formulaire de sécurité par fax!")
            End If
        Else
            MsgBox ("Les ressources humaines s'occupent de la sécurité des employés rémunérés!")
        End If
    ElseIf Cells(var, 2).Value = "Prolongation" Then
        If Cells(var, 3).Value = "Oui" Then
            If Cells(var, 7).Value = "Cote demandée" Or "Partielle approuvée" Then                MsgBox ("La cote a déjà été demandée")
            Else
                remun = "Non rémunéré"
                Set ol = New Outlook.Application
                Set olmail = ol.CreateItem(olmailItem)
                With olmail
                    .To = "xxxxxxxxxxxxxxx@NRCan-RNCan.gc.ca"
                    .Subject = "Prolongation - " & Cells(var, 1).Value
                    .Body = "Bonjour," & Chr(13) & Chr(13) & "Prolongation de :" & Chr(13) & Cells(var, 1).Value & Chr(13) & Cells(var, 4).Value & " au " & Cells(var, 5).Value & Chr(13) & "Superviseur : " & Cells(var, 6).Value & Chr(13) & remun & Chr(13) & Chr(13) & "Merci et bonne journée!"
                    .Display
                End With
                Cells(var, 7).Value = "Cote demandée"
            End If
        Else
            MsgBox ("Les ressources humaines s'occupent de la sécurité des employés rémunérés!")
        End If
    ElseIf Cells(var, 2).Value = "Départ" Then
        If Cells(var, 3).Value = "Oui" Then
            If Cells(var, 7).Value = "Cote demandée" Or "Partielle approuvée" Then
                MsgBox ("La cote a déjà été demandée")
            Else
                remun = "Non rémunéré"
                Set ol = New Outlook.Application
                Set olmail = ol.CreateItem(olmailItem)
                With olmail
                    .To = "xxxxxxxxxxxxxxxxxx@NRCan-RNCan.gc.ca"
                    .Subject = "Départ - " & Cells(var, 1).Value
                    .Body = "Bonjour," & Chr(13) & Chr(13) & "Départ de :" & Chr(13) & Cells(var, 1).Value & Chr(13) & Cells(var, 4).Value & " au " & Cells(var, 5).Value & Chr(13) & "Superviseur : " & Cells(var, 6).Value & Chr(13) & remun & Chr(13) & Chr(13) & "Merci et bonne journée!"
                    .Display
                End With
                Cells(var, 7).Value = "Cote désactivée"
            End If
        Else
            MsgBox ("Les ressources humaines s'occupent de la sécurité des employés rémunérés!")
        End If
    End If
End Sub


Ce qui est en gras c'est ce que j'ai rajouter et qui ne fonctionnais pas. Ce qui est souligné c'est ce qui fonctionnait mais ne fonctionne plus maintenent.

Parfois c'est une erreur d'incompatibilité de type et d'autre c'est une erreur défini par l'application ou par l'objet. Et ce selon moi aléatoirement, 1 teste me donne nue erreur et immédiatement après en faisant la même chose, ca me donne une erreur différenet


Merci et m'aider je ne comprend plus rien...
A voir également:

2 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
10 sept. 2010 à 22:22
Bonsoir,
Voici les remarques issues de ma première lecture :
- var n'est pas définie (déclaration et initialisation)
- Le MsgBox devrait être sur la ligne suivante
- La fonction ou de ton test n'est pas correcte :
If ((Cells(var, 7).Value = "Cote demandée") Or (Cells(var, 7).Value ="Partielle approuvée")) Then


Essai déjà de corriger ces points, ensuite, si ça ne marche toujours pas, merci de donner le message d'erreur et la ligne sur lequel il se produit.

@+
0
lucasp Messages postés 11 Date d'inscription vendredi 10 septembre 2010 Statut Membre Dernière intervention 14 janvier 2011 1
Modifié par lucasp le 13/09/2010 à 14:38
Bonjour Gord21,

Merci pour ta réponse!

Mon var est déclarer à l'extérieur de mon Private Sub comme suit :
Public var As Long
Public remun As String

le Msgbox est correcte, en le copiant collant, il s'est mit là!

Pour les parenthèses c'est une bonne idée, je l'essaye.

Edit : ...Ahhhh je viens de comprendre, les parenthèses ne sont pas obligatoire, faut juste répéter le "cells().value=" entre chaque OU
Où avais-je la tête, tout le reste de mon code est fait comme ca!!

Merci beaucoup!
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
14 sept. 2010 à 12:16
Bonjour,
Effectivement, ma remarque concernait le Cells(...).Value à répéter. Je mets les parenthèses par habitude mais elle ne sont pas nécessaires :-)
0