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-E] Problème avec une UserForm


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut [VBA-E] Problème avec une UserForm
    Bonjour à tous,
    j'ai un petit problème, je n'arrive pas à renvoyer des données d'un fichier excel vers une userform d'un autre fichier excel. En plus détaillé, je dispose d'un fichier qui à l'ouverture lance une userform qui dans son initialisation ouvre un autre fichier excel(mais on ne le voit pas c'est fait exprès) dans lequel elle doit aller chercher ses données. Le problème c'est que soit elle me retourne un zéro soit rien.
    Voici un petit bout de mon code, si à une idée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        If MyYear = 2007 Then
                If MyMonth = 5 Then
                    Controls("TB1").Value = Workbooks("testxy.xls").Sheets("2007").Cells(258, 6)
                End If
       Elseif ...
    Merci d'avance
    Amélie

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    C'est quoi MyMonth et MyYear ?

    Effectivement ut as mis un petit bout de ton code, mais avec ces 2 lignes on va pouvoir difficilement t'aider

    Tu as essayé de faire du pas a pas pour voir les valeurs que prenait tes références, etc.. ?

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Déjà, si tu dois travailler dans ton second classeur, je déclarerais l'un et "l'autre classeur" en tête de code de l'userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim CL1 as workbook 'le classeur contenant l'userform
    Dim CL2 as workbook 'l'autre classeur
    Ensuite, j'instancierais CL1 dans Userform_Initialize
    et CL2 à l'ouverture de l'autre classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set CL2 = Application.Workbooks.Open _
            (Filename:=Chemin & Workbooks("testxy.xls")
    Ainsi tu pourras travailler sans avoir à trainer leurs noms
    Enfin, pour ton test, je mettrais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        If MyYear = 2007 Then
                If MyMonth = 5 Then
                    Me.Controls("TB1").Value = CL2.WorkSheets("2007").Cells(258, 6).value '(***)
                End If
    Quoique, vu ton test, j'utiliserais sans doute un select case sur le mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Select Case MyMonth
              Case 1
                    '....
              Case 2
                    '....
              Case 5
                    'ton test (***)
              Case ...
                    '...
              Case else
        End select
    Juste une idée

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    En fait le debut de mon code c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub UserForm_Initialize()
        Workbooks.Open "H:\Etudes STAT\_PROJET EN COURS\Amélie\testxy.xls"
    Application.Visible = False
        If MyYear = 2007 Then
                If MyMonth = 5 Then
                    Controls("TB1").Value = Workbooks("testxy.xls").Sheets("2007").Cells(258, 6)
                End If
    Application.Visible = True
     
    Application.DisplayAlerts = False
    Windows("testxy.xls").Close
    Application.DisplayAlerts = True
    Je vais essayer ce que tu m'as dit je vous redis si ca fonctionne.
    Merci beaucoup

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ajoute au code que je t'ai donné
    et tu pourras supprimer les deux lignes
    Application.DisplayAlerts = False
    Application.DisplayAlerts = True

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    ca ne m'affiche rien dans ma userform. A aucun moment le code bloque puisque je fais tout en pas à pas mais ca ne renvoie rien du tout.
    J'ai remplacé Application.display = false/true par ce que tu m'as dit, c'est bien je gagne 2 ligne pour la même chose.
    Merci

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    question totalement bete : c'est quoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("TB1").Value

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par illight
    question totalement bete : c'est quoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("TB1").Value
    C'est vrai, quoi !
    Ceci dit, en pas à pas, je vérifierais le contenu des variables... ou plutôt ce qu'il y a dans Cells(258, 6).value
    Une question : Tu compares une valeur à une valeur ou un string à un string ?
    P't'être bien qu'il faudrait utiliser Val(Me.Controls("TB1").Value) (???) Juste une idée de plus...

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    En mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("TB1").Value = Val(CL2.Worksheets("2007").Cells(258, 6).Value)
    ca me renvoie 0 alors que la cellule F258 de ma feuille 2007 vaut 10
    TB1 c'est ma textbox1 de ma userform,j'ai 72 textbox a renseigner mais j'essaye juste avec une pour commencer.

  10. #10
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    je veux juste lui dire que ma textbox1 vaut la valeur de la cellule F258 mais pour l'instant z'y arrive pas.

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    C'est bon ca fonctionne, excusez moi tout est de ma faute, j'avais deux sauvegarde du fichier testxy à deux endroits différents et dans celui spécifié j'avais mis aucune valeur dans la case F258.
    Désolé.
    Ces deux codes fonctionnent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.Controls("TB1") = Val(CL2.Worksheets("2007").Cells(258, 6))
    Me.Controls("TB2").Value = CL2.Worksheets("2006").Cells(258, 6).Value
    si ca peut aider quelqu'un.
    Encore merci de votre aide et désolée pour mes betises.
    Bonne journée à tous

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par jamelie
    C'est bon ca fonctionne, excusez moi tout est de ma faute, j'avais deux sauvegarde du fichier testxy à deux endroits différents et dans celui spécifié j'avais mis aucune valeur dans la case F258.
    ...
    si ca peut aider quelqu'un.

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

Discussions similaires

  1. Problème avec une requête en VBA
    Par Alien_psy dans le forum IHM
    Réponses: 7
    Dernier message: 19/02/2013, 11h55
  2. Problème avec une requète SQL en vba
    Par mephistomauvis dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/12/2008, 19h41
  3. Problème avec une instruction VBA
    Par Jpeg69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/05/2007, 12h58
  4. [VBA-E] problème avec une formule
    Par jamelie dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 25/04/2007, 11h13
  5. [VBA-E] Problème avec ShowModal dans un UserForm
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 09h19

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