ListBox1

Bonjour,

J'aimerais exécuter une macro si deux listbox sont respecter, voici mon code :

If listbox1 =1 and listbox2 =2 then

Mais ça ne fonctionne pas...

Pouvez-vous m'aider ?

Merci!

Bonjour,

il doit y avoir une erreur dans ton code, car j'ai essayé:

If ListBox1 = 1 And ListBox2 = 2 Then
        MsgBox "oui"
    End If

et ça fonctionne très bien

Voici mon code :

If ListBox1 = "A. Bouchard" And ListBox2 = "maladie" Then

Application.Run "'Fichier - Maître.xls'!AB_Maladie"

End If

Vois-tu un petit truc qui m'échappe?

merci encore !

-- Mar Fév 16, 2010 9:04 pm --

Je viens de réussir, j'avais écris maladie au lieu de Maladie (majuscule)... sensible...

Merci encore !

c'est le application.run qui fait défaut. Si tu consulte l'aide de Excel ça dit:

La méthode Run renvoie ce que la macro exécutée renvoie.

donc tu dois traiter la valeur que run te retourne. Voici un exemple avec des paramêtres:

la function AB_Maladie:

Public Function AB_Maladie(Nom As String, Cause As String) As String
    AB_Maladie = Nom & " a pris congé pour cause de " & Cause
End Function

et la procedure où tu appelles le run :

Private Sub CommandButton1_Click()
     If ListBox1 = "A. Bouchard" And ListBox2 = "maladie" Then       
        Resultat = Application.Run("'c:\Fichier - Maître.xls'!AB_Maladie", ListBox1, ListBox2)
        MsgBox Resultat
    End If
End Sub

j'ai mis l'emplacement du fichier ( c:\ ) car Excel ne pouvait le trouver si ce dernier n'était pas ouvert.

si tu veux être sur de ne pas te tromper avec les majuscules, écris

 If lcase(ListBox1) = "a. bouchard" And lcase(ListBox2) = "maladie" Then

-- Mar Fév 16, 2010 2:23 pm --

Oubli ce que je t'ai dis plus haut, tu peux très bien utiliser run sans t'occuper de ce qui peut retourner

Re-bonjour,

Je ne comprends plus rien... Finalement le premier cas marche, mais le deuxième (listbox3) ne marche pas... J'ai valider chaque caractère, j'ai esseyé d'inscrire le code directement, mais rien de fait... Au secour...

If ListBox1 = "A. Bouchard" And ListBox2 = "Maladie" Then

Application.Run "'Fichier - Maître.xls'!AB_Maladie"

ElseIf ListBox3 = "Croissant" Then

Application.Run "'Fichier - Maître.xls'!Maladie_Croissant"

ElseIf ListBox3 = "Décroissant" Then

Application.Run "'Fichier - Maître.xls'!Maladie_Décroissant"

End If

Dans ma listBox3, j'ai comme choix Croissant ou Décroissant ... Est-ce que quelqu'un comprend la raison pour laquelle ça ne marche pas !

Merci !

Merci !!!

Qu'est-ce qui ne marche pas au juste? Tu as un message d'erreur, ta macro ne démarre pas, essaie de voir avec des points d'arrêts ce que ton code fait quand tu lances la procédure.

Il ne se passe rien, comment est-ce que je dois utiliser des points d'arrêts?

Merci !

Clique dans la bande grise à la gauche du code, la ligne va se mettre en rouge. Quand le code va passer sur cette ligne, l'execution va s'arrêter. Pour continuer l'execution fait F5. Quand le code est en arret, tu peux voir le contenu des variables en positionnant ton curseur sur le nom de la variable. Place des points d'arrêts sur tes conditions if et sur les lignes à executer selon la condition, tu pourras voir où ce dirige ton code. EX: ton code passe les trois conditions sans s'arrêter sur aucun ligne "application.run", c'est que le problème est dans les conditions IF.

Pour effacer les points d'arrêts, menu Debogage et Effacer tous les points d'arrêts ou clique dans la bande grise pour enlever seulement ceux que tu veux.

Je vais faire le test dans quelques minutes, mais je suis presque certain que c'est ma condition qui ne fonctionne pas.

Merci encore !

-- Mer Fév 17, 2010 6:03 pm --

Je viens de comprendre. J'ai fait le test du mode arrêt et je me suis rendu compte que le code ne lisait même pas la ligne. J'ai donc enlevé le Else devant le If, ça fonctionne. D'habitude j'utilise toujours le Elseif, je ne comprend pas pourquoi dans ce cas ci ça ne fonctionne pas.

Merci encore pour ton aide précieuse!

Rechercher des sujets similaires à "listbox1"