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 :

tuto facturation en vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Par défaut tuto facturation en vba
    Bonjour,

    J'ai trouvé un tuto sur ce site, avec une vidéo "Facturation avec interface graphique", mais je suis coincé. J'ai programmé un bouton de mon userform, et le résultat n'est pas celui escompté.
    Je joins ci-dessous mon fichier Excel avec Macro, nommé "facturation-vba.xlsm". Le procédé est simple : l'interface graphique doit permettre à la facture de se remplir automatiquement sur l'onglet "facturation" de la feuille excel.

    La programmation du bouton "ajouter" doit permettre de vérifier si le contenu de la zone de saisie "quantite" est bien numérique, sinon un message d'erreur apparaît, et on sort de la procédure. Sinon, elle doit vérifier les stocks dans la colonne F de l'onglet "articles", puis, si la quantité saisie est disponible, inscrire une nouvelle ligne correspondant à l'article, avec sa quantité, son montant.

    Le problème est que le programme vérifie bien si la saisie est bien numérique, mais il ne fait rien d'autre. Il ne vérifie pas les stocks, et n'écrit rien dans l'onglet "facturation".

    Mon code est le suivant :

    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
    Private Sub ajouter_Click()
    Dim ligne As Integer: ligne = 2
    Dim lignef As Integer: ligne = 6
     
    If (Liste_ref.SelText <> "") Then
        If (IsNumeric(quantite.Value) = False) Then
            MsgBox ("La quantité saisie n'est pas un nombre, veuillez corriger !")
            Exit Sub
     
        Else
            While (ThisWorkbook.Worksheets("articles").Cells(ligne, 3).Value <> "")
                If (ThisWorkbook.Worksheets("articles").Cells(ligne, 3).Value = Liste_ref.SelText) Then
                    If (Int(quantite.Value) > Int(ThisWorkbook.Worksheets("articles").Cells(ligne, 6).Value)) Then
                        MsgBox ("La quantité en stock pour cette référence n'est que de " & ThisWorkbook.Worksheets("articles").Cells(ligne, 6).Value)
                        Exit Sub
                    Else
                        While (ThisWorkbook.Worksheets("facturation").Cells(lignef, 3).Value <> "")
                            lignef = lignef + 1
                        Wend
                        ThisWorkbook.Worksheets("facturation").Cells(lignef, 3).Value = Liste_ref.SelText
                        ThisWorkbook.Worksheets("facturation").Cells(lignef, 5).Value = quantite.Value
                    End If
                End If
                ligne = ligne + 1
            Wend
        End If
    End If
     
    End Sub
    Où ai-je fait une erreur ?

    Merci de votre aide,
    A bientôt !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Par défaut
    OK, je sors ! Désolé : l'erreur était sous mes yeux (comme d'hab') : ligne 3, j'ai créé une variable lignef, et au lieu de l'initialiser avec , j'ai initialisé la variable ligne. C'est idiot.

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi, n'as-tu posé cette question directement sur le site initiateur du classeur ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre confirmé Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Par défaut
    Bonjour Philippe,

    Il n'y a pas de forum, apparemment, sur ce site. J'ai trouvé la vidéo par hasard, sur Youtube, puis j'ai basculé sur le site de l'auteur, mais il ne semble pas y avoir de forum. Ce qui est sûr, c'est qu'il faut que je relise 7 fois mon code avant de poster une question sur le forum, parce que je trouve trop souvent la réponse tout seul. En l'occurrence, il s'agissait d'une bête faute d'inattention. Désolé.

    D'ailleurs, ne serait-il pas possible de permettre au créateur d'un post de le supprimer, afin de ne pas encombrer le forum de questions inutiles ?... Je dis ça, je dis rien...

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

Discussions similaires

  1. Aide Sur une application de facturation sous VBA Excel
    Par eliyakamalebo dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 05/01/2017, 13h32

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