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émenter FACT-1–NOV vers FACT-2–NOV


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 1
    Par défaut Incrémenter FACT-1–NOV vers FACT-2–NOV
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Archive()
    Dim Debut as String:Dim Numero as Integer
    Dim Fin as String
     
    Debut="FACT-"
    Numero=Int(Replace(Range("B2").Value,"FACT_"," "))+1
    Fin="_"&UCase(Format(Range("F2"),"MMM"))
     
    Range("B2").Value=Debut & Numero & Fin
    End Sub
    Ça apparaît sur cette forme : FACT-1–NOV
    Mais pour pouvoir l’incrémenter je dois aller à la cellule et retirer -NOV à la fin et cliquer sur le macro Archiver pour que ça devienne FACT-2-NOV
    Je ne vois pas où est l’erreur.
    NB:Sheets("Vente").Range("B2") : c'est la cellule où je veux placer avoir mon numéro de Facture.
    Sheet("Vente").Range("F2") : c'est la cellule où il y a ma date.

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, soyez gentil de mettre le code entre balise Code(#) ça le rend plus lisible, exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Archive()
    Dim Debut as String
    Dim Numero as Integer
    Dim Fin as String
    Debut="FACT-"
    Numero=Int(Replace(Range("B2").Value,"FACT_"," "))+1
    Fin="_"&UCase(Format(Range("F2"),"MMM"))
    Range("B2").Value=Debut & Numero & Fin
    End Sub
    Par contre, je comprends pas bien ce que vous désirez faire?
    Cordialement

  3. #3
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 584
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    t=Split("FACT-1–NOV","-")
    Facture=t(0) & "-" & cstr(val(t(1))+1) & "-" & t(2)

  4. #4
    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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi ne pas séparer les éléments ?

    Une valeur (Le compteur) est une chose, la manière dont il est présenté (le format) en est une autre et pour combiner les deux, on utilisera la concaténation du compteur et du format choisi.

    Exemple avec Excel où le compteur se trouve en cellule A1 et le format en cellule B1
    Exemple simple
    Exemple avec date formatée ne faisant apparaître que le mois de la date d'aujourd'hui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="Fact " & A1 & " " & TEXTE(AUJOURDHUI();"mmm")
    Cette concaténation donnera Fact 1 nov.
    Oui mais je souhaite que le mois en abrégé commence par une majuscule soit Fact 1 Nov
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="Fact " & A1 & " " & NOMPROPRE(TEXTE(AUJOURDHUI();"mmm"))
    Traduction en VBA.
    Il suffit de lire la cellule où se trouve la formule qui formate mon numéro de facture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub t()
      Dim InvoiceNumberText As String
      InvoiceNumberText = ThisWorkbook.Worksheets("Parameter").Range("B1").Value
      MsgBox InvoiceNumberText
    End Sub
    On aurait pu évidement simplifier le code par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      MsgBox ThisWorkbook.Worksheets("Parameter").Range("B1").Value
    ou encore mieux en nommant la cellule B1 par exemple (NumFactText)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Range("NumFactText").Value
    Avantage d'utiliser une cellule d'excel ayant la formule formatant le classeur plutôt que le traduire en VBA :
    • Nombre de lignes de code limité
    • Maintenance aisée sans toucher au code VBA


    Reste maintenant à utiliser une fonction VBA pour incrémenter le compteur mais ça c'est une autre question.
    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

  5. #5
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 584
    Par défaut
    Bonjour,
    Effectivement, dans une feuille de configuration, on incrémenté de 1 la cellule A1, et on place la date dans A2.
    Si A2 est différent du mois en cours on repart de 1!

  6. #6
    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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    il y a plusieurs manières de concevoir l'incrémentation d'un numéro de facture, de devis, etc.
    • Continue (la plus simple à gérer)
    • Périodique

    La première ne nécessite qu'un seul paramètre (le dernier numéro utilisé), la seconde nous oblige à connaître en plus la dernière date à laquelle on a utilisé ce numéro et la périodicité de réinitialisation du compteur.

    A lire éventuellement ce billet Excel – Incrémenter un numéro de facture, devis, à l’aide d’une fonction personnalisée
    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

Discussions similaires

  1. [VBA] [Interface] BringToFront/SendToBack
    Par DarkVader dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/10/2002, 14h29
  2. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  3. [VBA-E] [Excel] Tri automatique
    Par bovi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2002, 10h19
  4. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55
  5. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

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