IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA - Erreur compilation, objet requis pour un Set


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut VBA - Erreur compilation, objet requis pour un Set
    Bonjour à tous,
    J'ai un formulaire dans lequel je rentre une date de début et de fin ou bien un numéro de semaine. Il marchait correctement jusqu'à ce que je rajoute un If pour la textbox4 (si le numéro de semaine est vide) et depuis j'ai "Erreur de compilation Objet requis" et le Set Sem= ... est surligné... Je ne comprend pas d'où vient mon erreur donc si quelqu'un peut m'éclairer....

    voilà une partie de mon code (là où c'est la mierde) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    'Déclare les variables pour la recherche du numéro de semaine
    Dim X As Byte
    Dim Y As Date
    Dim Z As Date
    Dim JourD As Integer
    Dim JourF As Integer
    Dim NumSem As Integer
    Dim NumJourD As Variant
    Dim NumJourF As Variant
    Dim Sem As Integer
    
    
    
    If TextBox4.Value <> "" Then
    
    X = TextBox4.Value
            
            'Cherche le numéro de semaine sur la ligne 7 et donne son numéro de colonne par la variable NumSem
            Set Sem = ThisWorkbook.Worksheets("Activité").Rows("7").Find(What:=X, lookat:=xlWhole)
                If Not Sem Is Nothing Then
                    NumSem = Sem.Column
                    Cells(8, NumSem - 1).Select
                Else
                    MsgBox "Le numéro de semaine n'est pas valable"
                    Unload Me
                End If
                Sem = Nothing
    Else
    
    Range("C8").Select
    
    End If
        
    'Si des valeurs sont renseignée dans les cases "Du" et "Au", déclaration des variables pour les recherches
    If TextBox5 <> "" And TextBox6 <> "" Then
    
            
        Y = TextBox5
        Z = TextBox6
        
        'Cherche le numéro de départ chantier sur la ligne 8, après la cellule sélectionnée et donne son numéro de colonne par la variable NumJourD
            Set JourD = Worksheets("Activité").Rows("8").Find(What:=Y, After:=ActiveCell, lookat:=xlWhole)
                If Not JourD Is Nothing Then
                    NumJourD = JourD.Column
                Else
                    MsgBox "Erreur : Le jour de départ n'est pas contenu dans la semaine " & X
                    Unload Me
                End If
        
        'Cherche le numéro de fin de chantier sur la ligne 8, après la la cellule sélectionnée et donne son numéro de colonne par la variable NumJourF
            Set JourF = ThisWorkbook.Worksheets("Activité").Rows("8").Find(What:=Z, After:=ActiveCell, lookat:=xlWhole)
                If Not JourF Is Nothing Then
                    NumJourF = JourF.Column
                Else
                    MsgBox "Erreur : Le jour de fin n'est pas contenu dans la semaine " & X
                    Unload Me
                End If
           
    End If
    Merci de votre aide !

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Il est peu probable que l'erreur soit apparue simplement à l'introduction du If car cette instruction est innocente dans cette affaire.

    Regarde ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Sem As Integer
    
            Set Sem = ThisWorkbook.Worksheets("Activité").Rows("7").Find(What:=X, lookat:=xlWhole)
    Tu définis la variable Sem comme un Integer.
    Un Integer est une valeur, elle n'a donc pas besoin de Set pour être renseignée, la commande Set étant réservée aux objets.

    Donc, soit tu veux mettre dans Sem la valeur contenue dans la cellule trouvée par le Find, et dans ce cas, il faut retirer le Set.
    Soit tu veux mettre dans Sem la référence de la cellule trouvée par le Find et, dans ce cas, il faut définir Sem de type Range et non Interger.

    La suite de ton code semble indiquer que tu as choisi la seconde solution et, personnellement, je pense que tu as eu raison.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut
    Exact, j'avais également du modifier les déclarations de variables !
    Merciiii ça marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. vba excel : variant .interior.color : Erreur 426 objet requis
    Par Vbajon dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/10/2017, 15h09
  2. Probleme prog Vba Erreur 424 objet requis
    Par sebastientabanon dans le forum Macros et VBA Excel
    Réponses: 46
    Dernier message: 02/08/2016, 00h50
  3. [XL-2003] Macro pour UserForm "Erreur de compilation. Objet requis."
    Par aliasjadawin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/04/2011, 08h53
  4. Erreur 424 Objet requis sur connexion à Access
    Par darkian dans le forum ASP
    Réponses: 4
    Dernier message: 21/06/2006, 11h32
  5. Réponses: 4
    Dernier message: 16/06/2006, 00h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo