Bonjour à tous,
Je viens de reprendre un fichier excel créé par un prédécesseur. Il doit générer un n° de facture en fonction de la date de réception de la facture. La codification est la suivante :
- Deux derniers chiffres de l'année ( ex 2011=11) + N° du mois + N° chrono ( ce n° chrono est directement lié au mois de la facture) + A
Par exemple,
- La première facture de novembre 2011 sera: 111101A
- La seconde facture de novembre 2011 sera: 111102A
- La première facture de décembre 2011 sera: 111201A
Cette macro générait ce n°,
Sub Numbering()
'go to sheet "Base de données FRAIS EUROS"
Sheets("Base de données FRAIS EUROS").Select
'sorting
ActiveWorkbook.Worksheets("Base de données FRAIS EUROS").ListObjects("Tableau1" _
).Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Base de données FRAIS EUROS").ListObjects("Tableau1" _
).Sort.SortFields.Add Key:=Range( _
"Tableau1[[#Headers],[#Data],[NOUVEAU NUMERO FACTURE]]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Base de données FRAIS EUROS").ListObjects( _
"Tableau1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Find the last used cell, before a blank in a Column:
Range("A1").End(xlDown).Select
Dim nn As String 'nn: new number
If Left(Selection.Offset(-6, 2).Value, 2) = Right(CStr(Year(Date)), 2) _
And Mid(Selection.Offset(-6, 2).Value, 3, 2) = CStr(Month(Date)) Then
nn = Format(Mid(Selection.Offset(-6, 2).Value, 5, 2) + 1, "00")
Else
nn = "01"
End If
NouveauNumeroFacture = Right(CStr(Year(Date)), 2) & CStr(Month(Date)) & nn & "A"
UserForm1.TextBox2.Value = NouveauNumeroFacture
Aujourd'hui, elle me donne invariablement comme n° 12101A. Je suis débutant en macro et je peine à détecter la source du problème. Pourriez-vous m'aider à trouver la solution ?
Merci d'avance
Je viens de reprendre un fichier excel créé par un prédécesseur. Il doit générer un n° de facture en fonction de la date de réception de la facture. La codification est la suivante :
- Deux derniers chiffres de l'année ( ex 2011=11) + N° du mois + N° chrono ( ce n° chrono est directement lié au mois de la facture) + A
Par exemple,
- La première facture de novembre 2011 sera: 111101A
- La seconde facture de novembre 2011 sera: 111102A
- La première facture de décembre 2011 sera: 111201A
Cette macro générait ce n°,
Sub Numbering()
'go to sheet "Base de données FRAIS EUROS"
Sheets("Base de données FRAIS EUROS").Select
'sorting
ActiveWorkbook.Worksheets("Base de données FRAIS EUROS").ListObjects("Tableau1" _
).Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Base de données FRAIS EUROS").ListObjects("Tableau1" _
).Sort.SortFields.Add Key:=Range( _
"Tableau1[[#Headers],[#Data],[NOUVEAU NUMERO FACTURE]]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Base de données FRAIS EUROS").ListObjects( _
"Tableau1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Find the last used cell, before a blank in a Column:
Range("A1").End(xlDown).Select
Dim nn As String 'nn: new number
If Left(Selection.Offset(-6, 2).Value, 2) = Right(CStr(Year(Date)), 2) _
And Mid(Selection.Offset(-6, 2).Value, 3, 2) = CStr(Month(Date)) Then
nn = Format(Mid(Selection.Offset(-6, 2).Value, 5, 2) + 1, "00")
Else
nn = "01"
End If
NouveauNumeroFacture = Right(CStr(Year(Date)), 2) & CStr(Month(Date)) & nn & "A"
UserForm1.TextBox2.Value = NouveauNumeroFacture
Aujourd'hui, elle me donne invariablement comme n° 12101A. Je suis débutant en macro et je peine à détecter la source du problème. Pourriez-vous m'aider à trouver la solution ?
Merci d'avance