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 :

Incrémentation du numéro de facture


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 59
    Points
    59
    Par défaut Incrémentation du numéro de facture
    Bonjour,

    Retour de congés et prise de contact, mais déjà une question.
    Dans le fichier joint, je voudrais voir incrémenté le numéro de la facture à l'ouverture du fichier.

    Besoin d'aide !

    Merci!
    Toison
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    Bonjour,


    Pour incrémenter une valeur lors de l'ouverture de fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        Range("Ton_Range") = Range("Ton_Range") +1
    End Sub
    Avec "Ton_Range" l'adresse de la cellule à incrémenter.
    Cette sub devra être placée dans ThisWorkbook

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,

    il faut dans l'onglet Thisworkbook ajouter un appel à ta procédure numfact dans l'évènement Workbook_open

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    numFact
    End Sub
    Je l'ai mis dans ton fichier.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Toison,

    Une précision à toutes fins utiles et qui n'a rien a voir avec votre demande :

    je pense que vous devriez utiliser la fonction "Arrondi" pour le calcul du prix unitaire ou dans "Outils", "Options" onglet "Calcul" cocher "Calcul avec la précision au format affiché".


    En effet, il peut paraître bizarre (surtout sur un document comptable) que 30*17,06 donne un résultat de 511,85 au lieu de 511,80.

  5. #5
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Bonjour,

    le sujet parait comme résolu, mais bon...

    S'il s'agit de traiter des factures avec une incrémentation automatique des numéros, il est primordial, à mon sens, de travailler à partir d'un modèle (.xlt), sinon c'est la porte ouverte à tous les dangers, notamment à l'aire de la dématérialisation (on scanne pour archiver numériquement, en gros si besoin), c'est dur de considérer que si on doit consulter une facture, on aille fouiller dans les papiers alors que quelques clics...
    Dans l'état actuel des choses, si on ouvre la facture, on incrémente son N° qui n'est plus le bon etc....
    Donc, mieux vaut travailler sur un .xlt dont le workbook open ne s'activera que si on est bien sur un .xlt (ou autre pour 2007).

    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  6. #6
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour à tous

    personnellement j'utilise la macro suivante pour obtenir un numéro de devis.
    La macro inscrit le nouveau numéro, ainsi que la date du jour dans le classeur NoDevis.xlsm.
    Le principe reste le même pour une facture.
    Cette macro se déclenche au double clique dans une cellule, si et seulement si la cellule est vide.

    Le code ADO n'est probablement pas optimisé.

    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
    Sub NoDevis()
       Dim Cn As ADODB.Connection
       Dim Cd As ADODB.Command
       Dim Rst As ADODB.Recordset
       Dim CheminNoDevis As String
       Dim NomFeuille As String
       Dim NomCol As String
       Dim Cellule As String
       Dim i As Integer
     
       CheminNoDevis = "D:\...\...\NoDevis.xlsm"
     
       NomFeuille = "Feuil1"
     
       Set Cn = New ADODB.Connection
       ' pour Xl 2007
       Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
          "Data Source=" & CheminNoDevis & ";" & _
          "Extended Properties=""Excel 12.0;HDR=no;"""
       'Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & CheminNoDevis & ";" & _
          "Extended Properties=""Excel 8.0;HDR=No;"";"
     
       Set Cd = New ADODB.Command
       Cd.ActiveConnection = Cn
     
          '------------------
          Cd.CommandText = "SELECT * FROM [" & NomFeuille & "$]"
          Set Rst = New ADODB.Recordset
          Rst.Open Cd, , adOpenKeyset, adLockOptimistic
          Dim NumeroDevis As Long
          NumeroDevis = Rst.RecordCount + 1
          'MsgBox NumeroDevis
          Rst.Close
          Set Rst = Nothing
     
    '------------------------
       Dim tablo(1 To 2) As Variant
       tablo(1) = NumeroDevis
       tablo(2) = Date
     
       For i = 1 To UBound(tablo)
          Cellule = Cells(NumeroDevis, i).Address(0, 0) & ":" & Cells(NumeroDevis, i).Address(0, 0)
          Cd.CommandText = "SELECT * FROM [" & NomFeuille & "$" & Cellule & "]"
          Set Rst = New ADODB.Recordset
          Rst.Open Cd, , adOpenKeyset, adLockOptimistic
          Rst(0).Value = tablo(i)
          Rst.Update
       Next i
       Cn.Close
     
       Set Cn = Nothing
       Set Cd = Nothing
       Set Rst = Nothing
       [B2] = NumeroDevis
    End Sub

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 59
    Points
    59
    Par défaut
    Grand merci
    à Godzestla pour le code
    à Jacques_Jean pour le conseil judicieux sur le format des chiffres.
    Et enfin, merci au forum sans lequel tout ceci ne se serait pas produit.
    Bonne journée !
    Toison

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 59
    Points
    59
    Par défaut
    Merci à Ormonth et Fred65200 qui ont pris la peine de répondre malgré l'état "Résolu" du problème.
    Je vais faire bon usage de vos conseils et du code. Je recmercie également mordrhim.

    A bientôt !
    Toison

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

Discussions similaires

  1. Numéro de facture qui s'incrémente sans être numéroAuto
    Par joseedaccess dans le forum VBA Access
    Réponses: 15
    Dernier message: 05/09/2017, 11h26
  2. [WD17] Incrémentation de numéro facture
    Par tsihadino dans le forum WinDev
    Réponses: 11
    Dernier message: 11/03/2015, 15h28
  3. numéro de facture
    Par Polux95 dans le forum Excel
    Réponses: 4
    Dernier message: 04/04/2007, 11h39
  4. Incrémentation du numéro de version (dll et exe) en C
    Par biglolo dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 07/02/2007, 18h09
  5. [D6] Incrémenter le numéro de version
    Par Lung dans le forum EDI
    Réponses: 3
    Dernier message: 08/08/2005, 10h12

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