Erreur de compilation [Résolu]

Signaler
Messages postés
105
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 novembre 2008
-
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
-
Bonjour, sur un de mes codes, j'ai une erreur de compilation -->  qualificateur  incorrect alors que  j'appelle juste un userform  par MODIFICATION.Show, il ne me propose pas de liste après le point mais se met en Majuscule tout seul. Le userform est bien absent avant que je l'appelle.
Quelqu'un a une idée?
Merci de votre aide.

6 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
oui, je pense...

une variable et une form ayant le même nom....
Messages postés
105
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 novembre 2008

C'est bon j'ai changer MODIFICATION par MODIFIER qui est le bouton qui fait acceder a modification.
Merci à tous de votre aide sur toutes mes questions
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu as pas fait autre chose (variable...) se nommant également MODIFICATION ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
105
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 novembre 2008

Non il ne me semble pas, j'ai ce code

Private Sub OK_Click()
    Dim Ws As Worksheet
    Dim Ligne As Integer

    Set Ws = Sheets("Abonnements")
        If MODIFICATION = True Then
            Ligne = Line
        Else
            Ligne = Ws.Columns(1).Find("").Row
        End If
                If (case1 True Or case2 True Or case3 = True Or case4 = True Or case5 = True) Then
        'si case1 est cochée ou case2 est cochée ou ... alors
        Ws.Cells(Ligne, 1) = Act
        'mettre Act dans la premiere cellule
        End If
        'finsi
        If case1.Value = True Then
        'si case1 est cochée alors
        Ws.Cells(Ligne, 2) = prix1
        'mettre prix1 dans la 2ème cellule
        End If
        'finsi
        If case2.Value = True Then
        Ws.Cells(Ligne, 3) = prix2
        End If
        If case3.Value = True Then
        Ws.Cells(Ligne, 4) = prix3
        End If
        If case4.Value = True Then
        Ws.Cells(Ligne, 5) = prix4
        End If
        If case5.Value = True Then
        Ws.Cells(Ligne, 6) = prix5
        End If
    
        If MODIFICATION = False Then
        'si on est pas passé par MODIFICATION alors
            If Act = "" Then
            'si Act est vide alors
                Rep = MsgBox("La saisie d'une activité est obligatoire", vbOKOnly + vbCritical, "ATTENTION")
                'msgbox            ElseIf (case1 False And case2 False And case3 = False And case4 = False And case5 = False) Then
            'sinon si case1 et case2 et case3 ... sont décochées alors
                mes = MsgBox("La saisie d'au moins un prix est obligatoire", vbOKOnly + vbCritical, "ATTENTION")
                'msgbox
            Else
            'sinon
                Unload ADM
                'masquer (décharger) ADM
                Rep = MsgBox("Voulez-vous rentrer une autre activité ?", _
                vbYesNo + vbQuestion, "Programmer une autre activité ?")
                'msgbox
            End If
            'finsi
            If Rep = vbYes Then
            'si la réponse est oui alors
                ADM.Show
                'ouvrir le userform adm
            ElseIf Rep = vbNo Then
                'si la réponse est non alors
                bye = MsgBox("Les nouvelles données sont bien enregistrées ; Merci et à très bientôt", , "AUREVOIR")
                'msgbox
            End If
        ElseIf MODIFICATION = True Then
        'sinon si on est passé par MODIFICATION alors
            If case1.Value = False Then
            'si case1 n'est pas cochée alors
                Ws.Cells(Ligne, 2) = ""
                'effacer dans la 2ème cellule
            End If
            'finsi
            If case2.Value = False Then
                Ws.Cells(Ligne, 3) = ""
            End If
            If case3.Value = False Then
                Ws.Cells(Ligne, 4) = ""
            End If
            If case4.Value = False Then
                Ws.Cells(Ligne, 5) = ""
            End If
            If case5.Value = False Then
                Ws.Cells(Ligne, 6) = ""
            End If            If (case1 False And case2 False And case3 = False And case4 = False And case5 = False) Then
                mes = MsgBox("La saisie d'au moins un prix est obligatoire", vbOKOnly + vbCritical, "ATTENTION")
            Else
            'sinon
                Unload ADM
                'masquer ADM
                mess = MsgBox("Voulez-vous modifier une autre activité?", vbYesNo + vbQuestion, "AUTRES")
                'msgbox
            End If
            If mess = vbYes Then
            'si on clique sur oui de l'msgbox mess alors
                CHOIX.Show
                'MODIFICATION s'ouvre
            ElseIf mess = vbNo Then
            'sinon si on clique sur non alors
                bye = MsgBox("Les nouvelles données sont bien enregistrées ; Merci et à très bientôt", , "AUREVOIR")
                'msgbox
            End If
            'finsi
        End If
        'finsi
    MODIFICATION = False
End Sub

Et la j'utilise MODIFICATION mais c'est pour des conditions.
C'est à cause de ça?
Messages postés
105
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 novembre 2008

Mais en fait je sais pas si on peut considérer que c'est une variable car si le userform MODDIFICATION est ouvert alors il se passe des choses et s'il n'est pas ouvert il se passe autre chose.
Comment je peux modifier cela svp?
Merci de votre aide
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour

D'où l'utiliter de préfixer les variable et les conteneurs :
Frm : form
Mdl : Module

Txt* : TextBox
Cmd* : Boutons

Variables
l* : locale
g* : globale
m* : attribut d'objet
ms* : attribut de classe

etc.

L'ouverture d'esprit ne se limite pas toujours à une fracture du crâne.
VB (6, .NET1&2), C++, C#.Net1
Mo