XL 2013 Problème de numérotation

  • 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
J'ai toujours mon problème de numérotation.
J'ai une macro qui es t censé fonctionner pour afficher le prochain num. des devis.
mais si je l'actionne le bouton nouveau numéro, ça m'affiche toujours "1" au lieu de 202101...02...03

Merci pour votre aide
Ci-joint les 2 fichiers concernés, il faut peut-être changer les chemins pour essayer
Danyk01
 

Pièces jointes

Bonsoir Danyk,
Le tableau est structuré, vous ne pouvez obtenir la dernière ligne avec
VB:
derlig = .Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row
car pour XL il s'agit d'un objet.
Par contre vous pouvez l'obtenir avec :
Code:
derlig = Application.CountA("*", [LNumero])
A essayer.
 
Hello Sylvanu
Ça ne fonctionne pas bien, ça met le nouveau num. mais pas le prochain
Ci-joint la macro que j'ai modifiée selon ta dernière version


Sub ProchainNum()

With Workbooks("JOURNAL_DEVIS.xlsm")

Dim derlig As Long
derlig = Application.CountA("*", [LNumero])
Range("H9").Value = .Sheets("Liste").Range("A" & derlig).Value + 1
End With

End Sub
 
Bonjour,
Ca me semble normal. Vous mettez dans la feuille courante N+1 en H9 , ça c'est ok mais vous ne remettez pas à jour la liste des nombres. Donc je pense qu'il faut rajouter cette mise à jour :
VB:
Sub ProchainNum()
With Workbooks("JOURNAL_DEVIS.xlsm")
    Dim derlig As Long
    derlig = Application.CountA("*", [LNumero])
    .Sheets("Liste").Range("A" & derlig + 1) = .Sheets("Liste").Range("A" & derlig).Value + 1
    Range("H9").Value = .Sheets("Liste").Range("A" & derlig).Value + 1
End With
End Sub
De cette façon la prochaine fois vous aurez bien en dernier N+1 donc en H9 vous aurez N+2 par rapport à aujourd'hui.
 
J'ai été obligé de sélectionner le fichier en cours pours solutionner le problème avec :
VB:
Sub ProchainNumFA()
    Application.ScreenUpdating = False
    Dim derlig As Long, Numéro As Long
    Workbooks("JOURNAL_DEVIS .xlsx").Activate
    With Workbooks("JOURNAL_DEVIS .xlsx").Sheets("Liste")
        derlig = .Application.CountA("*", [LNumero])
        Numéro = .Range("A" & derlig).Value + 1
        .Range("A" & derlig + 1) = Numéro
    End With
    Workbooks("02.MATRICE DEVIS-FACTURES.xlsm").Sheets("DEVIS").Activate
    Range("H9").Value = Numéro
End Sub
NB: J'ai mis JOURNAL_DEVIS .xlsx au lieu de JOURNAL FACTURES.xlsx car c'était le fichier fourni pour les N°.
Essayez.
 

Pièces jointes

J'ai été obligé de sélectionner le fichier en cours pours solutionner le problème avec :
VB:
Sub ProchainNumFA()
    Application.ScreenUpdating = False
    Dim derlig As Long, Numéro As Long
    Workbooks("JOURNAL_DEVIS .xlsx").Activate
    With Workbooks("JOURNAL_DEVIS .xlsx").Sheets("Liste")
        derlig = .Application.CountA("*", [LNumero])
        Numéro = .Range("A" & derlig).Value + 1
        .Range("A" & derlig + 1) = Numéro
    End With
    Workbooks("02.MATRICE DEVIS-FACTURES.xlsm").Sheets("DEVIS").Activate
    Range("H9").Value = Numéro
End Sub
NB: J'ai mis JOURNAL_DEVIS .xlsx au lieu de JOURNAL FACTURES.xlsx car c'était le fichier fourni pour les N°.
Essayez.
Ca fonctionne chez toi?
Je suis sur le point d'abandonner, je propose qu'on commence du début car je ne comprends plus.
J'ai fait 2 fichiers simplifiés avec les mêmes noms et emplacements, peux tu m'expliquer comment tu fais?
 

Pièces jointes

Le problème vient d'une part que la liste est un tableau structuré, d'autre part que c'est un fichier à part.
Si ( 😅 ) la liste était dans le fichier sous forme classique non structuré, vous auriez infiniment moins de soucis.
 
Oui OK, mais comme tu as pu le constater, j'ai pleins de feuilles dans mon fichier.
ces feuilles me servent à calculer mes devis et dans lesquelles je cherche également mes matériaux et autres issus de fichiers communs externe. donc je ne veux pas trop surcharger le fichier principal en question.
Comme ça mes fichiers sont indépendants, et je peux les archiver comme je veux, année par année.

J'ai essayé ta macro et ça a l'air de marcher.
En cas de problème je te tiens au courant
Merci beaucoup et A+
 
Bonjour Sylvanu
J'ai un problème que je n'arrive pas à résoudre
Ta dernière macro fonctionne à merveille sur le fichier devis.
J'ai copié la macro et collé dans le fichier facture,
J'ai naturellement changé les chemins et destinations
Pour moi ça devrait marcher, mais je ne comprends pas pkoi ça ne fonctionne pas
Ci-joint la macro :
Les noms des fichiers sont corrects

Peux-tu jeter un coup d’œil? merci

Sub ProchainNumFA()
Application.ScreenUpdating = False
Dim derlig As Long, Numéro As Long
Workbooks("JOURNAL_FACTURES.xlsm").Activate
With Workbooks("JOURNAL_FACTURES.xlsm").Sheets("Liste")
derlig = .Application.CountA("*", [LNumero])
Numéro = .Range("A" & derlig).Value + 1

'.Range("A" & derlig + 1) = Numéro (Je l'ai enlevé car je ne voulais pas le nouveau N° qd j’éteins)
End With
Workbooks("02.MATRICE FACTURE V21.0.xlsm").Sheets("FACTURE").Activate
Range("H9").Value = Numéro
End Sub
 
Bonjour Danyk,
La référence [LTableau] a disparu de JOURNAL_FACTURES_TEST.xlsm, qui plus est la ligne qui écrit le prochain numéro ( .Range("A" & derlig) = Numéro ) est en commentaire.
Sans la référence LTableau, dans ce cas, essayez :
VB:
'*******************************************************
'Procédure permettant de saisir le dernier numéro +1
'******************************************************
Sub ProchainNumFA()
    Application.ScreenUpdating = False
    Dim derlig As Long, Numéro As Long
    Workbooks("JOURNAL_FACTURES_TEST.xlsm").Activate
    With Workbooks("JOURNAL_FACTURES_TEST.xlsm").Sheets("Liste")
        derlig = .Application.CountA("*", [A:A])
        Numéro = .Range("A" & derlig - 1).Value + 1
        .Range("A" & derlig) = Numéro
    End With
    Workbooks("02.MATRICE FACTURE_TEST.xlsm").Sheets("FACTURE").Activate
    Range("H9").Value = Numéro
End Sub
 
- 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

Réponses
2
Affichages
703
Réponses
2
Affichages
2 K
Retour