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 :

Excel gestion de Stock probleme code Userform pour actualiser stock sortant dans feuille "etatdustock"


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut Excel gestion de Stock probleme code Userform pour actualiser stock sortant dans feuille "etatdustock"
    Bonjour a toute la communauté !

    Je suis entrain de faire un petit programme pour faire une demande d'achat puis ensuite la traiter.

    le programme tourne niquel mais seulement dans mon userform1 ( celui du traitement de la commande) le truc c'est que quand je sors un article, les quantitées ne s'actualisent pas dans la feuille "etatsdustock" colonne D.

    J'ai essayé de modifier les codes mais je ne suis pas arrivé a résoudre mon probléme je pense que le probléme viens

    de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("etatdustock").Range("D" & VarSelectedArticle).Value = _
    Sheets("etatdustock").Range("D" & VarSelectedArticle).Value - llstock
    Voilà cela fais un jour que j'éssai de toucher ce code pour qu'il marche mais je m'en remet a vous car je ne trouve pas la solution.

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Hello,

    ton code est plutôt indigeste.

    Je t'encourage à ajouter un
    en haut de tes modules pour déclarer toutes les valeurs

    ta variable llstock ne semble pas déclarée avec une portée suffisante pour que tes différentes procédures liées aux click puissent en connaître la valeur.

    A partir de là la valeur qu'elle a au moment où le code s'exécute n'est pas la bonne, vu que tu ne lui en attribues aucune dans la procédure en cours
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut
    D'accord, merci pour la remarque je vais deblayer tout ça Cependant je ne comprend pas trop la procédure option explicit. Parce qu'il ne me manque que ça pour finir mon application et je suis complétement perdu .. Pourrez tu m'orienter davantage ? Je te remercie

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Pour qu'une application puisse perdurer dans le temps, il est important que le code soit assez "explicite" pour se rappeler si nécessaire ce qu'il fait et que tu puisses, toi ou une autre personne, le faire évoluer.

    Ici, tu utilises des tas de variables de partout, mais sans avoir eu d'erreurs relevées par Excel, car tu ne lui a pas demandé de "t'aider".

    En mettant Option Explicit en haut de chaque module, tu vas pouvoir te rendre compte qu'il faut déclarer toutes les variables que tu utilises, et tu rendras compte que les variables que tu utilises dans une procédure ne sont pas forcément visible dans les autres.

    Un peu de lecture pour compléter ce que j'ai dit :
    http://heureuxoli.developpez.com/off...ll/?page=page5
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut
    J'ai réessayer et j'obtient ce code Mais toujours pas de soustraction dans l'étatdustock à la colonne quantite ( colonne D Et malereusement je ne trouve toujour pas la solution). Je pense avoir bien declaré mes variables. je dois rendre ce travail dans quelques jours et je me sens un peu perdu.

    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    Private Sub UserForm_Initialize()
     
    Sheets("ficheresponsableachat").Activate
     
      For i = 2 To 100
     
          ComboBox1.AddItem Sheets("ficheresponsableachat").Cells(i, 2)
       Next
     
       For i = 2 To 15
     
    Next
     
    Sheets("commandetraitee").Activate
     
    Dim VarDerLigne As Integer
    Dim VarPlageList As String
     
    VarDerLigne = Sheets("etatdustock").Range("A65536").End(xlUp).Row
    VarPlageList = Sheets("etatdustock").Range("B2:B" & VarDerLigne).Address
    llselectionarticle.RowSource = "etatdustock!" & VarPlageList
     
    End Sub
     
     
    Private Sub llselectionarticle_Click()
     
    VarSelectedArticle = UserForm1.llselectionarticle.ListIndex + 2
    llstock = Sheets("etatdustock").Range("D" & VarSelectedArticle).Value
     
    If llstock = 0 Then
    llreference = "Article non Dispo"
    llprix.Visible = False
    llquantite.Visible = False
    llprixtotal.Visible = False
     
    Else
    llprix.Visible = True
    llquantite.Visible = True
    llprixtotal.Visible = True
     
    llreference = Sheets("etatdustock").Range("A" & VarSelectedArticle).Value
    llprix = Format(Sheets("etatdustock").Range("C" & VarSelectedArticle).Value, "#,##0.00")
    llprixtotal = ""
    llquantite = ""
    llquantite.SetFocus
     
    End If
    End Sub
     
    Private Sub llquantite_change()
    Dim Chiffre As Integer
    If llquantite = "" Then Exit Sub
    On Error GoTo Sortie
    Chiffre = llquantite
    llprixtotal = Format(llprix * llquantite, 0#)
    ajouterarticleboutton.Visible = True
    Exit Sub
    Sortie:
    MsgBox "Saisir Uniquement un Entier Numérique"
    CacheCache
    End Sub
     
    Private Sub ajouterarticleboutton_Click()
     
    Dim VarDerL As Integer
    Dim Quantite As Integer
    Dim Stock As Integer
    VarDerL = Sheets("commandetraitee").Range("B42").End(xlUp).Row + 1
     
    If llquantite = "" Then
    MsgBox "Vous Devez Saisir Une Quantité", vbCritical, "Erreur => Invalide"
    llquantite.Visible = True
    llquantite.SetFocus
    Exit Sub
    End If
     
    If llquantite <= 0 Then
    MsgBox "Vous Devez Saisir Une Valeur Positive ", vbCritical, "Invalide"
    llquantite.Visible = True
    llquantite = ""
    llquantite.SetFocus
    Exit Sub
    End If
    On Error GoTo Sortie
    Quantite = llquantite
    Stock = llstock
     
    If Quantite > Stock Then
    MsgBox "La quantité demandée " & llquantite & " est supérieur au stock " _
    & llstock, vbCritical, "Aie=> Stock Insuffisant"
    llquantite.Visible = True
    llquantite = llstock
    llquantite.SetFocus
    Exit Sub
    End If
     
    If VarDerL = 40 Then
    MsgBox "Vous êtes arrivé à la dernière ligne de cette facture", vbCritical, "Thierry's Démo => Fin de Facture"
    CacheCache
    Exit Sub
    End If
     
    With Sheets("commandetraitee")
    .Range("A" & VarDerL) = ComboBox1
    .Range("B" & VarDerL) = llreference
    .Range("C" & VarDerL) = llselectionarticle
    .Range("D" & VarDerL) = Format(llprix, 0#)
    .Range("E" & VarDerL) = llquantite
    .Range("F" & VarDerL) = Format(llprixtotal, 0#)
     
    End With
    Sheets("etatdustock").Range("D" & VarSelectedetatdustock).Value = _
    Sheets("etatdustock").Range("D" & VarSelectedetatdustock).Value - llstock
    CacheCache
    Exit Sub
    Sortie:
    MsgBox "Article mis dans le panier !", vbOKOnly, "Parfait"
    CacheCache
    End Sub
     
     
    Private Sub finalisercomande_Click()
    Dim Montant As Currency
    Dim VarDerLi As Integer
    VarDerLi = Sheets("commandetraitee").Range("B42").End(xlUp).Row + 1
    Montant = Sheets("commandetraitee").Range("F42")
     
    If Montant = 0 Then
    MsgBox "Vous n'avez entré aucun article dans la facture ! " _
    & vbCrLf & "Vous devez avoir au moins 1 article pour procéder au traitement", _
    vbCritical, "Erreur => Invalide"
    Exit Sub
     
    Sheets("commandetraitee").Range("D3") = "XLCity le " & Format(Now, "DD/MM/YYYY")
    Sheets("commandetraitee").Range("B45") = "Dans l'attente de recevoir la somme de " _
    & Format(Montant, "0.00") & " Euro"
    Unload UserForm1
    Sheets("ficheresponsableachat").Activate
    Sheets("commandetraitee").PrintPreview
    End Sub
     
     
    Private Sub CacheCache()
    ajouterarticleboutton.Visible = True
    llquantite.Visible = False
    llquantite = ""
    llstock = ""
    llreference = ""
    llprix = ""
    llprixtotal = ""
    llselectionarticle = ""
    llselectionarticle.SetFocus
    End Sub
     
     
    Private Sub CommandButton1_Click()
     
    Unload UserForm1
     
    userformparametrage.Show
     
    End Sub
     
     
    Private Sub retourparametrageee_Click()
    UserForm1.Hide
    userformparametrage.Show
    End Sub

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    ta variable llstock dans ajouterarticleboutton_Click n'est pas déclarée, ni ton i dans UserForm_Initialize.

    Ajoute comme je te le dis
    en HAUT de ton module
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut
    Merci de me répondre aussi vite, je peux te paraitre bête. mais je patoge et j'ai peur de toucher quelque chose de peur que le programme "saute".

    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 ajouterarticleboutton_Click()
     
    Option Explicit
     
    Dim VarDerL As Integer
    Dim quantite As Integer
    Dim stock As Integer
    VarDerL = Sheets("commandetraitee").Range("B42").End(xlUp).Row + 1
     
    If llquantite = "" Then
    MsgBox "Vous Devez Saisir Une Quantité", vbCritical, "Erreur => Invalide"
    llquantite.Visible = True
    llquantite.SetFocus
    Exit Sub
    End If
    Je dois le positionner de cette maniére ?

    Merci

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Pas exactement, en haut du module signifie comme cela :
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
     
    Option Explicit
    Private Sub UserForm_Initialize()
     
    Sheets("ficheresponsableachat").Activate
     
      For i = 2 To 100
     
          ComboBox1.AddItem Sheets("ficheresponsableachat").Cells(i, 2)
       Next
     
     
       For i = 2 To 15
     
    Next
     
    Sheets("commandetraitee").Activate
     
    Dim VarDerLigne As Integer
    Dim VarPlageList As String
     
    VarDerLigne = Sheets("etatdustock").Range("A65536").End(xlUp).Row
    VarPlageList = Sheets("etatdustock").Range("B2:B" & VarDerLigne).Address
    llselectionarticle.RowSource = "etatdustock!" & VarPlageList
     
    End Sub
     
     
     
     
    Private Sub llselectionarticle_Click()
     
    VarSelectedArticle = UserForm1.llselectionarticle.ListIndex + 2
    llstock = Sheets("etatdustock").Range("D" & VarSelectedArticle).Value
     
    If llstock = 0 Then
    llreference = "Article non Dispo"
    llprix.Visible = False
    llquantite.Visible = False
    llprixtotal.Visible = False
     
    Else
    llprix.Visible = True
    llquantite.Visible = True
    llprixtotal.Visible = True
     
    llreference = Sheets("etatdustock").Range("A" & VarSelectedArticle).Value
    llprix = Format(Sheets("etatdustock").Range("C" & VarSelectedArticle).Value, "#,##0.00")
    llprixtotal = ""
    llquantite = ""
    llquantite.SetFocus
     
    End If
    End Sub
     
    Private Sub llquantite_change()
    Dim Chiffre As Integer
    If llquantite = "" Then Exit Sub
    On Error GoTo Sortie
    Chiffre = llquantite
    llprixtotal = Format(llprix * llquantite, 0#)
    ajouterarticleboutton.Visible = True
    Exit Sub
    Sortie:
    MsgBox "Saisir Uniquement un Entier Numérique"
    CacheCache
    End Sub
     
    Private Sub ajouterarticleboutton_Click()
     
    Dim VarDerL As Integer
    Dim Quantite As Integer
    Dim Stock As Integer
    VarDerL = Sheets("commandetraitee").Range("B42").End(xlUp).Row + 1
     
    If llquantite = "" Then
    MsgBox "Vous Devez Saisir Une Quantité", vbCritical, "Erreur => Invalide"
    llquantite.Visible = True
    llquantite.SetFocus
    Exit Sub
    End If
     
    If llquantite <= 0 Then
    MsgBox "Vous Devez Saisir Une Valeur Positive ", vbCritical, "Invalide"
    llquantite.Visible = True
    llquantite = ""
    llquantite.SetFocus
    Exit Sub
    End If
    On Error GoTo Sortie
    Quantite = llquantite
    Stock = llstock
     
    If Quantite > Stock Then
    MsgBox "La quantité demandée " & llquantite & " est supérieur au stock " _
    & llstock, vbCritical, "Aie=> Stock Insuffisant"
    llquantite.Visible = True
    llquantite = llstock
    llquantite.SetFocus
    Exit Sub
    End If
     
    If VarDerL = 40 Then
    MsgBox "Vous êtes arrivé à la dernière ligne de cette facture", vbCritical, "Thierry's Démo => Fin de Facture"
    CacheCache
    Exit Sub
    End If
     
    With Sheets("commandetraitee")
    .Range("A" & VarDerL) = ComboBox1
    .Range("B" & VarDerL) = llreference
    .Range("C" & VarDerL) = llselectionarticle
    .Range("D" & VarDerL) = Format(llprix, 0#)
    .Range("E" & VarDerL) = llquantite
    .Range("F" & VarDerL) = Format(llprixtotal, 0#)
     
    End With
    Sheets("etatdustock").Range("D" & VarSelectedetatdustock).Value = _
    Sheets("etatdustock").Range("D" & VarSelectedetatdustock).Value - llstock
    CacheCache
    Exit Sub
    Sortie:
    MsgBox "Article mis dans le panier !", vbOKOnly, "Parfait"
    CacheCache
    End Sub
     
     
     
    Private Sub finalisercomande_Click()
    Dim Montant As Currency
    Dim VarDerLi As Integer
    VarDerLi = Sheets("commandetraitee").Range("B42").End(xlUp).Row + 1
    Montant = Sheets("commandetraitee").Range("F42")
     
    If Montant = 0 Then
    MsgBox "Vous n'avez entré aucun article dans la facture ! " _
    & vbCrLf & "Vous devez avoir au moins 1 article pour procéder au traitement", _
    vbCritical, "Erreur => Invalide"
    Exit Sub
     
    Sheets("commandetraitee").Range("D3") = "XLCity le " & Format(Now, "DD/MM/YYYY")
    Sheets("commandetraitee").Range("B45") = "Dans l'attente de recevoir la somme de " _
    & Format(Montant, "0.00") & " Euro"
    Unload UserForm1
    Sheets("ficheresponsableachat").Activate
    Sheets("commandetraitee").PrintPreview
    End Sub
     
     
     
     
    Private Sub CacheCache()
    ajouterarticleboutton.Visible = True
    llquantite.Visible = False
    llquantite = ""
    llstock = ""
    llreference = ""
    llprix = ""
    llprixtotal = ""
    llselectionarticle = ""
    llselectionarticle.SetFocus
    End Sub
    Private Sub CommandButton1_Click()
     
     
    Unload UserForm1
     
    userformparametrage.Show
     
    End Sub
    Private Sub retourparametrageee_Click()
    UserForm1.Hide
    userformparametrage.Show
    End Sub
    Pense à indenter ton code aussi
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut
    Que veux tu dire par identifier ton code ?

    String ?

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Relis bien
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut
    J'imagine que c'est une question ridicule je viens de me relire.

    j'ai vu qu'il fallait declarer ses variables pour mieux s'y retrouver. Mais en fait ça sert a dire a excel que par exemple toutes la colonnes seront composé des chiffres ? dans mon cas je ne sais pas si je fais un option explicit au debut et ca sera bon pour toute les variables de l'userform ?
    j'ai beau lire les tutos je bloque. Moi qui pensai commencer a comprendre :/ j'ai déclarer un peu a l'arache et jme retrouve perdu. Si tu pouvais ne serai-ce qu'en quelque mot la methodo a suivre ? Si c'est pour chaque declaration de procedure ? ou juste une fois .

    1000 merci

  12. #12
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Il faut lire inDENTer, pas iDENTifier

    Il s'agit de décaller à l'aide des tabulations les lignes entre elles pour savoir où commence et où termine une boucle, un texte, une fonction etc.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut
    D'accord, merci. Je viens de regarder encore les tuto et toujours rien. pourrais tu me definir de maniére a que llstock soit bien identifier ? je prendrai comme exemple pour les prochaines fois.

    merci de m'accorder du temps.

  14. #14
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    En faisant un peu d'effort tu peux trouver
    http://heureuxoli.developpez.com/off...age=page5#L5-D

    avec comme exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public mavariablequetoutlemondevoit as Double
     
    Sub MapremiereSub()
    mavariablequetoutlemondevoit = 8
    End Sub
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  15. #15
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 181
    Par défaut Déclarer ses variables
    Bonjour à tous.

    L'erreur vient qu'il y a méprise de la variable utilisée, il fallait écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Etatdustock").Range("D" & VarSelectedArticle).Value = _
    Sheets("Etatdustock").Range("D" & VarSelectedArticle).Value - llquantite
    Déclarer les variables dès la 1ère ligne comme suit, par ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public VarSelectedArticle As Integer
    il faut enlever cette déclaration qui se trouve dans la Private Sub CommandButton1_Click()

    Salutations

Discussions similaires

  1. [XL-2007] Userform pour ouvrir fichier pdf dans excel
    Par signorepel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/06/2013, 10h57
  2. Réponses: 7
    Dernier message: 18/11/2007, 11h38
  3. Réponses: 2
    Dernier message: 09/04/2007, 21h52
  4. probleme avec IE pour alignement en haut dans un tableau
    Par italiasky dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 05/02/2007, 12h48
  5. Réponses: 3
    Dernier message: 24/02/2005, 15h48

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