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 1004 à l'ouverture d'un Userfrom


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 32
    Par défaut Erreur 1004 à l'ouverture d'un Userfrom
    Bonjour

    Je suis en stage de DUT informatique et je dois reprendre le travail d'un ancien stagiaire et l'adapter en lui ajoutant des fonctionnalités.

    En gros je dois traiter plein de données et l'utilisateur peux faire certains choix via un formulaire au lancement d'excel.

    J'ai donc un UserForm qui se lance à l'ouverture du fichier, il fonctionnait très bien il y a peu mais depuis deux jours à chaque fois que je tente d'ouvrir le fichier je me prend une "erreur 1004 erreur définie par l'application ou par l'objet"

    Me renvoyant vers cette partie du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub workbook_open()
        Sheets("Suivi_Agents").Cells.Clear
        Sheets("Fiche Agence").Cells.Clear
        On Error Resume Next
            Sheets("Fiche Agence").ChartObjects.Delete
        On Error GoTo 0
        Sheets("Fiche pdv").Cells.Clear
        On Error Resume Next
            Sheets("Fiche pdv").ChartObjects.Delete
        On Error GoTo 0
        UserForm1.Show 0 'permet d'ouvrir le formulaire    <------- ICI
    End Sub
    Je ne vois pas d'où peut venir l'erreur, étant donné que la syntaxe me paraît correcte.

    Merci de votre aide

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Cela vient peut-être d'une procédure évènementielle qui s'exécute à l'ouverture du formulaire. Il faudrait regarder dans le module de userForm1.

    Cordialement,

    PGZ

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    Personnellement, je ne connais pas l'intérêt du "0" dans :

    mais si cette syntaxe est correcte, le problème vient certainement d'une erreur dans le code de l'Usf dans l'évènement "activate" ou "initialize"
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 32
    Par défaut
    Le 0 permet d'afficher le formulaire en mode non-modal.

    Voici le code se lançant lors de l'initialisation du formulaire

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Private Sub UserForm_Initialize() 'au chargement de l'application
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim l As Integer
        'On vide les combobox
        Me.CBagence.Clear
        Me.CBpdv.Clear
        j = 1
        i = 2
        l = 1
        'On cherche la colonne Agent dans T1
        Do While Sheets("T1").Cells(1, j) <> "Agent"
            j = j + 1 'on va à la colonne suivante
        Loop
        ' On cherche la colonne gestionnaire dans T1
        Do While Sheets("T1_pdv").Cells(1, l) <> "gestionnaire"
            l = l + 1 'on va à la colonne suivante
        Loop
        'On ajoute les noms d'agences dans le combobox
        Do While Sheets("T1").Cells(i, 2).Value <> ""
            Me.CBagence.AddItem Sheets("T1").Cells(i, l).Text & " - " & _
            Sheets("T1").Cells(i, j).Text
            i = i + 1 'On va à la ligne suivante
        Loop
        i = 2
        j = 1
        k = 1
        l = 1
        'On cherche la colonne agent dans T1_pdv
        Do While Sheets("T1_pdv").Cells(1, j) <> "Agent"
            j = j + 1 'on va à la colonne suivante
        Loop
        'On cherche la colonne localité dans T1_pdv
        Do While Sheets("T1_pdv").Cells(1, k) <> "Localité"
            k = k + 1 'on va à la colonne suivante
        Loop
        'On cherche la colonne gestionnaire dans T1_pdv
        Do While Sheets("T1_pdv").Cells(1, l) <> "gestionnaire"
            l = l + 1 'on va à la colonne suivante
        Loop
        Do While Sheets("T1_pdv").Cells(i, 2).Value <> ""
            Me.CBpdv.AddItem Sheets("T1_pdv").Cells(i, l).Text & " - " & _
            Sheets("T1_pdv").Cells(i, j).Text & " - " & _
            Sheets("T1_pdv").Cells(i, k).Text
            i = i + 1 'On va à la ligne suivante
        Loop
     
     
        '------------------------------ remplir la combobox du panneau 2
        j = 1
        i = 4
        l = 1
        'On cherche la colonne Agent dans T1
        Do While Sheets("T1").Cells(1, j) <> "Agent"
            j = j + 1 'on va à la colonne suivante
        Loop
        ' On cherche la colonne gestionnaire dans T1
        Do While Sheets("T1").Cells(1, l) <> "gestionnaire"
            l = l + 1 'on va à la colonne suivante
        Loop
        'On ajoute les noms d'agences dans le combobox
        Do While Sheets("T1").Cells(i, 2).Value <> ""
            Me.ComboBoxRapport.AddItem Sheets("T1").Cells(i, l).Text & " - " & _
            Sheets("T1").Cells(i, j).Text
            i = i + 1 'On va à la ligne suivante
        Loop
     End Sub

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    le o ou le 1 correspondent à ceci dans la syntaxe de la méthode Show :

    Valeur booléenne facultative qui détermine si l'objet UserForm est modal ou pas.
    cordialement,

    Didier

  6. #6
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 32
    Par défaut
    Je viens de trouver la raison de mon plantage. J'avais modifié les onglets contenant les données et lors de son initialisation le formulaire recherchait des titres de colonnes sur une ligne x alors que les titres étaient maintenant sur la ligne x+3 par exemple.

    Merci de votre aide en tout cas.

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    zatura, Ormonth, Merci pour vos infos sur l'utilité du "0".

    zatura,je te conseille de lancer l'évènement "Initialize en pas à pas" pour mieux repérer la ligne qui provoque l'erreur.

    PS : téléscopage des messages
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Au lieu de 0, on peut utiliser la constante vbModeless qui a la même valeur, et l'avantage d'être plus explicite sur l'intention du développeur.

    PGZ

Discussions similaires

  1. [WD-2010] Erreur 1004 - Ouverture feuille de calcul xlsx avec Word
    Par Zutalor dans le forum VBA Word
    Réponses: 0
    Dernier message: 04/04/2014, 15h01
  2. [XL-2010] Ouverture de liens par VBA et erreurs 1004 intermittentes
    Par cpierrick dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/09/2013, 10h42
  3. [XL 2003] erreur 1004 lors de l'ouverture d'un fichier
    Par Guilyonnais dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/07/2011, 12h55
  4. Erreur sur l'ouverture d'un formulaire avec condition
    Par Virgile59 dans le forum Access
    Réponses: 4
    Dernier message: 08/11/2005, 15h16
  5. Insérer une image : Erreur 1004
    Par dp_favresa dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/10/2005, 15h01

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