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 :

compréhension de cette variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut compréhension de cette variable
    bonjour a vous les acteurs de ce forum

    je voudrais bien avoir un explicatif de ce code car d'après ce qui est écrit en vert la mise a jour de la qte stock devrai ce faire hors elle se contente de se mettre en feuille réception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Feuil9.Cells(m, 6) = PUA
    Feuil9.Cells(m, 7) = Qté_Cdée
     Feuil9.Cells(m, 8) = Qté_rec
     Feuil9.Cells(m, 9) = Prix_Tot
     'MAJ la qté en stock
      i = 2
     While Feuil5.Cells(i, 1) <> ""
     If Feuil5.Cells(i, 1) = RefProd Then
    Feuil5.Cells(i, 7) = Feuil5.Cells(i, 7) + Diff_qté_rec
     TextBox_Qté_sto = Feuil5.Cells(i, 7)
    et que veux dire i = 2
    While Feuil5.Cells(i, 1) <> ""
    si vous avez une idée je suis preneur

    cordialement

    Pascal

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Par défaut
    Bonjour,

    Dans ta feuille 9, aux cellules M6, M7, M8 et M9, sont insérer les valeurs des variables PUA, Qté_Cdée, Qté_rec et Prix_Tot.

    Ensuite la variable i reçoit la valeur 2. Puis tant que (While) la cellule B1 de ta feuille 5 n'est pas vide alors si la valeur contenu dans cette cellule est égale à la valeur contenu dans la variable RefProd alors la cellule A7 de ta feuille 5 reçoit sa valeur + celle contenue dans la variable Diff_qté_rec.

    Puis la variable TextBox_Qté_sto reçoit la valeur contenu dans la cellule A7.

    Voila pour l'explication du code.

    Il faudrait par contre que tu nous dise le nom de la macro dans laquelle est contenu ce bout de code afin de savoir si les valeurs vont effectivements se mettre à jour ou non.

  3. #3
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    BonjourJeanSairien

    merci de ta réponse donc je te joint le code entier qui est derriere ce bouton pour plus de compréhension

    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
    Private Sub Button_Valider_Click() 'plomberie
        If TextBox_Num_série <> "" Then
            'Enregistre les info
            RefAchat = Feuil9.Cells(m - 1, 1) + 1
            Feuil9.Cells(m, 1) = RefAchat
            Feuil9.Cells(m, 2) = New_Date
            Feuil9.Cells(m, 3) = RefProd
            Feuil9.Cells(m, 4) = RefBon
            Feuil9.Cells(m, 5) = RefFrn
            Feuil9.Cells(m, 6) = PUA
            Feuil9.Cells(m, 7) = Qté_Cdée
            Feuil9.Cells(m, 8) = Qté_rec
            Feuil9.Cells(m, 9) = Prix_Tot
     
            'MAJ la qté en stock
            i = 2
            While Feuil5.Cells(i, 1) <> ""
                If Feuil5.Cells(i, 1) = RefProd Then
                    Feuil5.Cells(i, 7) = Feuil5.Cells(i, 7) + Qté_rec
                    TextBox_Qté_sto = Feuil5.Cells(i, 7)
                End If
                i = i + 1
            Wend
     
            'Affiche si cde soldée'plomberie
            If TextBox_Qté_rest = 0 Then
                TextBox_Solde.Value = "Oui"
                TextBox_Solde.Font.Bold = True
                TextBox_Solde.BackColor = vbRed
            Else
                TextBox_Solde.Value = "Non"
                TextBox_Solde.Font.Bold = False
                TextBox_Solde.BackColor = &H8000000F
            End If
     
            'Affiche si stock égale zéro'plomberie
            If TextBox_Qté_sto = 0 Then
                TextBox_Qté_sto.Font.Bold = True
                TextBox_Qté_sto.BackColor = vbRed
            Else
                TextBox_Qté_sto.Font.Bold = False
                TextBox_Qté_sto.BackColor = &H8000000F
            End If
        End If
     
        Button_Valider.Visible = False
        Button_Créer.Visible = True
     
    End Sub
    merci de t'y attardé

    cordialement

    Pascal

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Par défaut
    Je comprend un peu mieux l'utilité de "i". "i" sert pour commencer à la ligne 2 de ta colonne A, ensuite tant qu'il y a des valeurs dans ta colonne A, on incrémente "i" et on répète l'opération.

    Modifie la ligne suivente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RefAchat = Feuil9.Cells(m - 1, 1).value + 1
    J'ai remarqué que toutes tes variable n'était pas déclarées. Sont-elles déclarées en variable globale (tout en haut de ta feuille de code)?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Button_Valider.Visible = False
    ce qui veut dire qu'une fois que tu as appuyé sur ce bouton il disparait.

    Si tes variables TextBox_Solde et TextBox_Qté_sto sont de type range et correspondent à une cellule, il devrait y avoir mise à jour des cellules lorsque tu appuie sur le bouton.

    A la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    While Feuil5.Cells(i, 1) <> ""
                If Feuil5.Cells(i, 1) = RefProd Then
                    Feuil5.Cells(i, 7) = Feuil5.Cells(i, 7) + Qté_rec
                    TextBox_Qté_sto = Feuil5.Cells(i, 7)
                End If
                i = i + 1
            Wend
    Moi je mettrais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    While Feuil5.Cells(i, 1) = RefProd         
                    Feuil5.Cells(i, 7) = Feuil5.Cells(i, 7) + Qté_rec
                    i = i + 1
    Wend
    TextBox_Qté_sto = Feuil5.Cells(i-1, 7)

    Cela reviens au même mais ça t'évite de mettre un If inutile sauf si RefProd peut être vide. Par ailleurs ta variable TextBox_Qté_sto n'est pas un tableau!? donc il n'est pas nécessaire de mettre à chaque fois une valeur à l'intérieur de cette variable qui sera écrasé à l'itération d'après. Il suffit de prendre la dernière valeur de ta colonne Gi.

  5. #5
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour JeanSairien
    Moi je mettrais :

    While Feuil5.Cells(i, 1) = RefProd
    Feuil5.Cells(i, 7) = Feuil5.Cells(i, 7) + Qté_rec
    i = i + 1
    Wend
    TextBox_Qté_sto = Feuil5.Cells(i-1, 7)
    merci pour la modif que tu y apporté mais elle ne change rien car
    la ligne concernée reste toujours a 1 et n'est incrémentée de la qte mis dans le textbox_qte_sto
    et poutant
    sur l'userform tout est bien car les textbox_nom_prod; textbox_desc et textbox_cat quand le textbox_num_serie est renseigné les 3 textbox se remplisse de l'article s'il est reconu dans la liste
    voila pour l'instant s'il te faut le code complet de l'userform tu me dit

    merci pour ta patience

    Pascal

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Par défaut
    Je sais que la modification ne changeait rien, c'est juste plus clair (enfin pour moi).

    En quelles sont les cellules qui doivent être mises à jours? Les cellules m1 à m9 ou Feuil5.Cells(i, 7). Dans tout les cas si tu clique sur ton bouton validé, tout devrait se mettre à jour. Je ne comprend pas bien le problème car ton code m'as l'air correct.

    Tu utilise quelle version d'Excel?

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

Discussions similaires

  1. MALLOC_CHECK_=0 utilitée exacte de cette variable ?
    Par parou dans le forum Administration système
    Réponses: 1
    Dernier message: 23/02/2009, 13h34
  2. Pourquoi cette variable est-elle vide ?
    Par yann18 dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 10h36
  3. [HTML] Mettre une variable comme adresse d'une Iframe et faire changer cette variable
    Par thefdm dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/01/2008, 18h54
  4. [MySQL] Ou ranger cette variable ?
    Par F-eeks dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/07/2007, 14h31
  5. A quoi correspond cette variable $ftmp ?
    Par Kenshin86 dans le forum Langage
    Réponses: 2
    Dernier message: 12/04/2007, 21h19

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