XL 2019 Nouveau numero

  • Initiateur de la discussion Initiateur de la discussion Danyk01
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Danyk01

XLDnaute Occasionnel
Bonjour
Je bataille avec une fonction "nouveau numéro"
J'ai cherché dans tous les sens et je ne trouve pas d'anomalie
Fichier joint :
lorsque je lance "journal devis" le journal s'ouvre - "nouveau numéro" ça fonctionne bien
"journal factures" le journal s'ouvre - "nouveau numéro" ça ne fonctionne pas
J'ai bien contrôlé les chemins, j'ai fais la comparaison avec la macro de la zone devis, je ne trouve rien d'anormal.
Merci pour votre aide
Danyk01
 

Pièces jointes

Solution
Pour le fun, comme vous utilisez des tables Structurées ( les lignes vides sont inutiles et superflues ),
code pour obtenir les numéros de devis ou factures :
VB:
'*******************************************************
'Procédure permettant de saisir le dernier numéro +1
Sub ProchainNumDEV()
    Range("H9").Value = NextNum("Liste", _
        "F:\Documents\03.GERDAN\02.DEVIS_FACTURES\2025 GERD.DEVIS\DEV_JOURNAL\GERD.JOURNAL_DEVIS.xlsm")
    Range("B11").Value = "DEVIS"
End Sub
Sub ProchainNumFac()
    Range("H9").Value = NextNum("Liste", _
        "F:\Documents\03.GERDAN\02.DEVIS_FACTURES\2025 GERD.FACTURES\FA_JOURNAL\GERD.JOURNAL_FACTURES.xlsm")
    Range("B11").Value = "FACTURE"
End Sub
Function NextNum(Feuille, Classeur) As...
Bonjour,
Un zip de fichier Rar !!! C'est redondant .
Peu importe, le rar ne contient pas ce qu'il faut pour faire fonctionner et vérifier le classeur ....
Pouvez-vous fournir les classeurs GERD.JOURNAL_DEVIS.xlsm et GERD.JOURNAL_FACTURES.xlsm
 
Dans les sub pour obtenir les prochains numéros :

pour les devis, vous faites référence à un champ nommé [LNumero] qui correspond bien à la colonne des n° .

pour les factures, vous faites référence à un champ nommé [LNumero] qui n'existe pas, par contre il existe bien un champ [LTableau] qui correspond bien à la colonne des n°.

Petite étourderie de copier/coller ...... 😉🤗
 
Pour le fun, comme vous utilisez des tables Structurées ( les lignes vides sont inutiles et superflues ),
code pour obtenir les numéros de devis ou factures :
VB:
'*******************************************************
'Procédure permettant de saisir le dernier numéro +1
Sub ProchainNumDEV()
    Range("H9").Value = NextNum("Liste", _
        "F:\Documents\03.GERDAN\02.DEVIS_FACTURES\2025 GERD.DEVIS\DEV_JOURNAL\GERD.JOURNAL_DEVIS.xlsm")
    Range("B11").Value = "DEVIS"
End Sub
Sub ProchainNumFac()
    Range("H9").Value = NextNum("Liste", _
        "F:\Documents\03.GERDAN\02.DEVIS_FACTURES\2025 GERD.FACTURES\FA_JOURNAL\GERD.JOURNAL_FACTURES.xlsm")
    Range("B11").Value = "FACTURE"
End Sub
Function NextNum(Feuille, Classeur) As String
Dim Colonne As Range
Dim Numéro  As Long
Dim Wb      As Workbook
Dim Sh      As Worksheet
  
    Application.ScreenUpdating = False
    Set Sh = ActiveSheet
        For Each Wb In Workbooks
            If Wb.FullName = Classeur Then Exit For
        Next
        If Wb Is Nothing Then Set Wb = Workbooks.Open(Classeur)
        With Wb.Worksheets(Feuille)
            Set Colonne = .ListObjects(1).ListColumns("Num").DataBodyRange
            Numéro = Application.WorksheetFunction.Max(Colonne) + 1
        End With
    Sh.Parent.Activate
    NextNum = Numéro
End Function
'*******************************************************
 
Pour le fun, comme vous utilisez des tables Structurées ( les lignes vides sont inutiles et superflues ),
code pour obtenir les numéros de devis ou factures :
VB:
'*******************************************************
'Procédure permettant de saisir le dernier numéro +1
Sub ProchainNumDEV()
    Range("H9").Value = NextNum("Liste", _
        "F:\Documents\03.GERDAN\02.DEVIS_FACTURES\2025 GERD.DEVIS\DEV_JOURNAL\GERD.JOURNAL_DEVIS.xlsm")
    Range("B11").Value = "DEVIS"
End Sub
Sub ProchainNumFac()
    Range("H9").Value = NextNum("Liste", _
        "F:\Documents\03.GERDAN\02.DEVIS_FACTURES\2025 GERD.FACTURES\FA_JOURNAL\GERD.JOURNAL_FACTURES.xlsm")
    Range("B11").Value = "FACTURE"
End Sub
Function NextNum(Feuille, Classeur) As String
Dim Colonne As Range
Dim Numéro  As Long
Dim Wb      As Workbook
Dim Sh      As Worksheet
 
    Application.ScreenUpdating = False
    Set Sh = ActiveSheet
        For Each Wb In Workbooks
            If Wb.FullName = Classeur Then Exit For
        Next
        If Wb Is Nothing Then Set Wb = Workbooks.Open(Classeur)
        With Wb.Worksheets(Feuille)
            Set Colonne = .ListObjects(1).ListColumns("Num").DataBodyRange
            Numéro = Application.WorksheetFunction.Max(Colonne) + 1
        End With
    Sh.Parent.Activate
    NextNum = Numéro
End Function
'*******************************************************
Bonsoir fanch55
Je n'ai pas trop bien compris votre remarque "pour les factures, vous faites référence à un champ nommé [LNumero] qui n'existe pas"
Vous pouvez m'expliquer SVP ?
 
Bonsoir fanch55
Je n'ai pas trop bien compris votre remarque "pour les factures, vous faites référence à un champ nommé [LNumero] qui n'existe pas"
Vous pouvez m'expliquer SVP ?
Merci fanch55
Effectivement dans mon tableau, il manquait LNumero, je l'ai mis en place et ça fonctionne
Comme quoi une vision extérieure est toujours bénéfique, surtout par un pro comme toi
Merci
Danyk01
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Autres excel
Réponses
8
Affichages
749
  • Question Question
Microsoft 365 Excel - Macro
Réponses
14
Affichages
532
Réponses
3
Affichages
503
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
794
Réponses
1
Affichages
363
Compte Supprimé 979
C
Retour