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

Access Discussion :

Probleme Langage VBA


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut Probleme Langage VBA
    salut,
    voila j'ai ecrit ce code vba pour avoir un formulaire dynamque qui calcule les amortissements mais il ya une erreure et je n'arrive pas a la corriger
    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
    x = duree_amo
    If Month(Date_acq) > 1 And Month(Date_acq) < 12 Then
        If Day(Date - acq) < 15 Then
            For i = 1 To x + 1
                Me.txt1(i).Visible = True
                Me.lbl1(i).Visible = True
                Me.rem01(i).Visible = True
                Me.lbl1(i) = Year(Date_acq) + i - 1
                i = i + 1
            End
                pam = PU_invs / (x * 12)
                monthuse = 12 - Month(Date_acq)
                Me.txt1 = pam * monthuse
            For i = 2 To x
                Me.txt1(i) = pam * 12
            End
                If i = x + 1 Then
                Me.txt1(i) = pam * Month(Date_acq)
                End If
     
        Else
            For i = 1 To x + 1
                Me.txt1(i).Visible = True
                Me.lbl1(i).Visible = True
                Me.rem01(i).Visible = True
                Me.lbl1(i) = Year(Date_acq) + i - 1
                i = i + 1
            End
                pam = PU_invs / (x * 12)
                monthuse = 12 - Month(Date_acq) + 1
                Me.txt1 = pam * monthuse
            For i = 2 To x
                    Me.txt1(i) = pam * 12
            End
            If i = x + 1 Then
                Me.txt1(i) = pam * (Month(Date_acq) + 1)
            End If
        End If
    End If
    le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    la variable de control FOR est deja utilisé
    aidez moi a corriger mon code please

  2. #2
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut, à priori il faut utiliser
    au lieu de
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Faw
    Salut, à priori il faut utiliser
    au lieu de
    donc si je comprend bien en lisant ton message et le help a chaque fin dun FOR je fais un NEXT i
    ?

  4. #4
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Oui. Ce qui se traduit par "Passe à la valeur suivante de i".
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    mo probleme maintenant est que la valeur i elle n'est pas générée par le FOR
    que dois-je faire ?

  6. #6
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    D'où vient duree_amo?
    Dans l'absolu, si la valeur de duree_amo n'est pas récupérée, il n'y aura rien
    dans x qui à mon sens n'a pas lieu d'être...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 1 To duree_amo + 1
    peut suffire...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Faw
    D'où vient duree_amo?
    Dans l'absolu, si la valeur de duree_amo n'est pas récupérée, il n'y aura rien
    dans x qui à mon sens n'a pas lieu d'être...
    peut suffire...
    désole je me suis tromper, cest le
    qui n'est généré

    duree_amo cest un champ de la table.

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    ya un autre pti probleme pour quoi il ma mit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txt1(i).visible=true
    normalement ya pas le 1 devant txt
    cest normale que le FOR ne marche pas
    comment je doi faire pour que le txt prend txt1, txt2 , txt3.......?

  9. #9
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Oula, je vois ce que tu veux faire. Pour ça il va te falloir travailler avec
    la collections controls, boucler sur les contrôles de ton form, tester que
    ctrl (déclaré as control) du style
    If Right(ctrl.Name,1) = i then...

    Regarde la faq dans la section des contrôles, il y a probablement qqe chose
    qui parle de "boucler sur les contrôles d'un form"
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    oulalala ,, je ne sais pas mais je le sent mal ce CONTROL ,,
    tu peux m'aider stp je fais mes premier pas en vba.

  11. #11
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    oui mais , comment l'adapter d'apres mon code ????

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    faw Stp je n'arrive vraiment pas a avancer , une aidee est la bienvenue.

  14. #14
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    c'est à dire que là j'ai un service à faire tourner
    bon la prise en main n'a pas l'air violente ce soir...
    Je ne sais pas comment est fait ton formulaire mais si tu veux par exemple
    rendre invisibles tous les contrôles txtX et lblX ça donnerait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Ctl As Control
    For Each Ctl In Screen.ActiveForm.Controls
        If Left(Ctl.Name, 3) = "txt" Or Left(Ctl.Name, 3) = "lbl" Then
        Ctl.Visible = False
        End If
    Next Ctl
    End
    End Sub
    Pour le reste j'avoue ne pas trop voir où tu veux en arriver...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  15. #15
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Arf, il faut combiner la méthode de la faq avec celle ci-dessus (en partie du moins), par exemple pour txt1 à txtx+1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim ctl As Control
    For Each ctl In Screen.ActiveForm.Controls
    For I = 1 To x + 1 'ATTENTION au dépassements des valeurs d'index.
        Set ctl = Me.Controls("txt" & I)
        ctl.Visible = False
        Next I
    Next ctl
    End
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  16. #16
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    jai du mal a tous captér ,,,stp donne moi un exemple avec mon code juste qulque lignes ,, merci d'avance.

  17. #17
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    C'est ce que j'ai fait, je t'ai donné un bout de code à partir du tien...
    L'adapter à ton code ça va être délicat parce que franchement à
    ta place je repenserai mon algorithme en posant le problème à la
    vieille méthode (et la seule pour commencer un algo): du papier et
    un stylo.

    Ne le prends pas mal, c'est pour t'éviter d'aboutir à une usine
    à gaz.

    Même pour un programme de calcul il y a sûrement moyen
    de faire plus simple.
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  18. #18
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    bin j'ai dévlopé mon idee a partir d'un algo , si tu as une mieulleur idee , je prend.

  19. #19
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Merci d'expliquer ton cas clairement si tu veux de l'aide pour l'algo.
    On n'est pas devins pour savoir ce que tu veux faire exactement
    rien qu'à partir d'un assemblage de For...Next imbriqués que moi
    j'ai du mal à vraiment cerner.
    Pour boucler et travailler sur des contrôles de formulaire, tu as une réponse
    parmis d'autres possibles. A toi de l'adapter.

    vé m'coucher. Bonne journée à tous.
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  20. #20
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    J'ai un formulaire avec des champs
    Txt1 ,Txt2.....txt11
    LBL1,lbl2........lbl11
    rem1,rem2........rem11

    et j'ai aussi le champ Duree_amo " durée amortissement " qui prend la valeur X
    cest pour ca que j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 to x+1
    me.txt(i).visible=true
    me.lbl(i).visible=true
    me.rem(i).visible=true
    next i
    pour résumer je veux que les champs txt,lbl et rem s'affichent selon le X de duree_amo.

    si tu veux pour que l'affichage soit dynamique selon la variable X .

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VBA-E]Probleme macro VBA excel 2000 2003
    Par skichatchat dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2007, 21h16
  2. probleme langage sur business
    Par sneb5757 dans le forum Windows Vista
    Réponses: 8
    Dernier message: 08/02/2007, 14h10
  3. langage vba + zone de texte de formulaire
    Par Sebastien_INR59 dans le forum IHM
    Réponses: 11
    Dernier message: 23/05/2006, 18h48
  4. Probleme code vba
    Par alex38 dans le forum Access
    Réponses: 6
    Dernier message: 18/04/2006, 12h10
  5. probleme code vba ne s'execute pas apres instruction sql
    Par arnogef dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 29/12/2005, 12h34

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