Probleme sur code show

Résolu
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008 - 16 juin 2008 à 14:49
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008 - 16 juin 2008 à 16:18
Bonjour tout le monde,
j'ai un problème sur un code, en fait j'ai ce code:

Private Sub OK_Click()
Dim Recherche As Range
    Set Recherche = Sheets("abonnements").Cells.Find(type_dact.Text, LookIn:=xlValues, LookAt:=xlWhole)
    If type_dact = "" Then
        erreur = MsgBox("Le choix d'une activité est obligatoire", vbOKOnly + vbCritical, "OUPS")
    ElseIf Not Recherche Is Nothing Then
        Range("A" & Recherche.Row).Copy
        Sheets("calculs").Range("B2").PasteSpecial
        Range("B" & Recherche.Row & ":F" & Recherche.Row).Copy
        Sheets("calculs").Range("B4").PasteSpecial
    End If
    Unload UTIL
    REPONSE.Show
End Sub

Et quand je lance le userform UTIL puis que je click sur OK, le userform REPONSE doit s'ouvrir mais il me met erreur 424 et il me souligne la ligne REPONSE.show. J'ai vérifié les noms des userform mais je ne trouve pas mon erreur.
Merci de votre aide.

9 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 15:26
Salut

ou alors, dans le code Initialize du UserForm REPONSE, tu fais appel à un objet qui n'existe pas

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 15:51
ou, sans le exit sub :

...
        Sheets("calculs").Range("B4").PasteSpecial
        Unload UTIL

        REPONSE.Show
    End If
<strike>    Unload UTIL
    REPONSE.Show</strike>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 16:08
       If Sheets("Abonnements").Range("A" & i).Value <> vbNullString Then
           type_dact.AddItem Sheets("Abonnements").Range("A" & i).Value

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 juin 2008 à 15:12
Salut
Erreur 424 = Un objet est requis (la prochaine fois, donne aussi le texte de l'erreur)
Cela peut venir d'une erreur de programme dans le code de cette forme, l'erreur ne vient pas forcément de la commande elle même.
Pour savoir sur quelle instruction :
Positionne ta souris (+ simple clic) sur la ligne REPONSE.Show puis appuie sur F9
Le code s'arrêtera sur cette ligne au prochain passage
A ce moment là, appuie sur F8 pour exécuter les instructions qui suivent une à une.
Tu verras où se produit l'erreur.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 juin 2008 à 15:14
Si l'erreur se produit sur REPONSE.Show, c'est que cette forme n'appartient pas au projet.
Est-ce que, quand tu écris REPONSE suivi du point, la liste des évènements apparait bien dans l'éditeur ?
Si oui, pas de souci, l'objet REPONSE existe bien
Si non, faut vérifier où se trouve cette UserForm

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
16 juin 2008 à 15:46
Oui merci, c'était dans mon code initialize.
Par contre j'ai un probleme sur ce code

Private Sub OK_Click()
Dim Recherche As Range
    Set Recherche = Sheets("abonnements").Cells.Find(type_dact.Text, LookIn:=xlValues, LookAt:=xlWhole)
    If type_dact = "" Then
        erreur = MsgBox("Le choix d'une activité est obligatoire", vbOKOnly + vbCritical, "OUPS")
    ElseIf Not Recherche Is Nothing Then
        Range("A" & Recherche.Row).Copy
        Sheets("calculs").Range("B2").PasteSpecial
        Range("B" & Recherche.Row & ":F" & Recherche.Row).Copy
        Sheets("calculs").Range("B4").PasteSpecial
    End If
    Unload UTIL
    REPONSE.Show
End Sub

Je voudrais que quand une activité n'est pas saisie il met une msgbox ça il le fait mais quand je click sur OK il passe au user suivant. Alors que je veux qu'il reste sue le userform util.
Merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juin 2008 à 15:49
    If type_dact = "" Then
        MsgBox "Le choix d'une activité est obligatoire", vbOKOnly + vbCritical, "OUPS"
       exit sub
    ElseIf Not Recherche Is Nothing Then

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
16 juin 2008 à 16:05
OK merci beaucoup et un dernier truc sur cette fenêtre.
J'ai un gros problème.

Private Sub UserForm_Initialize()
    Dim i As Integer, DerniereLigne As Integer
    Dim Ws As Worksheet
    Set Ws = Sheets("Abonnements")
    DerniereLigne = Ws.Range("A65536").End(xlUp).Row + 1
    For i = 2 To DerniereLigne
        If Range("A" & i).Value <> vbNullString Then
           type_dact.AddItem Range("A" & i).Value
        End If
    Next i
End Sub

Ce code marche mais il est satisfaisant seulement quand la feuille abonnements est en fond quand c'est la feuille calculs qui est en fond dans la liste box il y a marqué les valeurs de la colonne A de la feuille calculs.
Merci de votre aide
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
16 juin 2008 à 16:18
Merci Mortalino.
Merci a tous a très bientôt.
0
Rejoignez-nous