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 :

Erreur dans un code VBA Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Erreur dans un code VBA Excel
    Bonjour,

    J'ai mis en place ce code qui permet d'activer un UF et d'afficher une feuille de calcul en même temps.
    Hors je rencontre un problème au niveau "Load Ufact". Le message est <<Variable objet ou variable de bloc with non défini>>.
    Je n'arrive pas à trouver, pouvez-vous m'apporter votre aide s'il vous plait ?
    Je vous en remercie par avance

    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
     
    Private Sub CmbFact_Click()
    Dim Ash As Worksheet
    'On active l'UserForm
    Load UFact 'ERREUR ICI
    UFact.T1.SetFocus
    'la feuille "Factures" est visible
    Sheets("Factures").Visible = True
        For Each Ash In ThisWorkbook.Sheets
        'masque les feuilles si nom différent de "Factures"
            If Ash.name <> "Factures" Then Ash.Visible = xlSheetVeryHidden
        Next Ash
        Sheets("Factures").Activate
            UFact.Show
    End Sub

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour,

    Comme ça je ne vois pas de problème dans le code posté.

    Vérifie ce qui se passe dans la routine Sub UserForm_Initialize() pour l'USF UFact (appelé automatiquement par le Load UFact) ).
    C'est probablement plus là que se situe le problème.

    Et personnellement je déplacerais aussi le UFact.T1.SetFocus dans la routine UserForm_Activate() de USF.
    (dans le principe c'est bizarre de donner le focus à un contrôle qui n'est pas encore visible).

  3. #3
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Bonjour,

    Avez-vous défini la Sub UserForm_Initialize ?
    Si oui, lorsque vous obtenez l'erreur, cliquez sur "débugger". Puis appuyez sur F8 jusqu'à ce que l'erreur se reproduise.

    Cela vous permettra de localiser votre erreur.

    Cdt

  4. #4
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour,

    Je n'arrive toujours pas à trouver l'erreur malgré vos recommandations.

    Voici les deux codes

    On appelle l'UF par le click sur un bouton (CmbFact)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub CmbFact_Click()
    Dim Ash As Worksheet
    'On active l'UserForm
    Load UFact
    'la feuille "Factures" est visible
    Sheets("Factures").Visible = True
        For Each Ash In ThisWorkbook.Sheets
    'masque les feuilles si nom différent de "Factures"
            If Ash.name <> "Factures" Then Ash.Visible = xlSheetVeryHidden
        Next Ash
        Sheets("Factures").Activate
    UFact.Show
    End Sub
    A l'initialize de l'UF
    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
     
    Private Sub UserForm_Initialize()
    Unload UFConsult
    Unload UFEngt
    Unload UFsign
     
     
    Dim vCellule As Object
    Load UFact
    With Me
    UFact.T1.SetFocus
    End With
     
        For Each vCellule In Sheets("Tiers").Range("NumT")
            If vCellule.Value <> "" Then UFact.T10.AddItem vCellule.Value
        Next
     
        For Each vCellule In Sheets("Tiers").Range("NomTier")
            If vCellule.Value <> "" Then UFact.T13.AddItem vCellule.Value
        Next
     
        For Each vCellule In Sheets("Bât").Range("NomBat")
            If vCellule.Value <> "" Then UFact.T11.AddItem vCellule.Value
        Next
     
        For Each vCellule In Sheets("Nom").Range("Noms")
            If vCellule.Value <> "" Then UFact.T9.AddItem vCellule.Value
        Next
        UFact.T10.ListIndex = -1
        UFact.T11.ListIndex = -1
        UFact.T9.ListIndex = -1
     
        UFact.T1 = ""
        UFact.T2 = ""
        UFact.T3 = ""
        UFact.T4 = ""
        UFact.T5 = ""
        UFact.T6 = ""
        UFact.T7 = ""
        UFact.T8 = ""
        UFact.T9 = ""
        UFact.T10 = ""
        UFact.T11 = ""
        UFact.T13.ListIndex = -1
    UFact.Show
    End Sub

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Déja tu loads Ufact alors qu'il est déjà loadé. Après les autres trucs que tu unloads sont bien loadés?

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour,

    pas besoin de charger par .Load un UserForm car .Show s'en charge automatiquement …

    Qui plus est pourquoi appeler l'UserForm dans son propre code alors qu'il est déjà chargé et donc actif ?‼

    A supprimer :

    • dans le premier code, ligne n°5


    • dans le second, lignes n°9 & 45 …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Je suis d'accord pour les lignes 9 & 45 du 2ème code. Pour le 1er je le suis moins car il faut bien que j'appelle l'UF à l'ouverture de la feuille "Factures".

    Cet UF me sert à saisir les données dans la feuille.

    J'ai essayé et de toute façon j'ai toujours le même soucis "Erreur 424".

  8. #8
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Le bouton "CmbFact" se trouve sur quel formulaire ou quelle feuille ?

    Hervé.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    J'ai trouvé la solution. En fait, lorsque j'appelais l'ouverture de l'UF, je demandais la fermeture d'un autre UF qui n'existait pas, d'où le problème.

    Merci beaucoup pour votre aide

  10. #10
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Déja tu loads Ufact alors qu'il est déjà loadé. Après les autres trucs que tu unloads sont bien loadés?

  11. #11
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Citation Envoyé par EngueEngue Voir le message
    Eh oui, tu avais cerné le problème dès le début

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

Discussions similaires

  1. [XL-2010] Erreur dans le code VBA - fonction si
    Par ilyaundebutatou dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2010, 13h12
  2. Erreur dans un code VBA dans Access
    Par Mathieu51 dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/10/2009, 15h10
  3. [XL-2003] Aide pour erreur dans un code Vba Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 25/05/2009, 07h48
  4. erreur dans le code vba
    Par jihad33 dans le forum VBA Access
    Réponses: 5
    Dernier message: 03/01/2008, 14h00
  5. Erreur dans un code VBA
    Par steevassie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/12/2007, 20h26

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