Don pépé XLDnaute Occasionnel 14 Janvier 2017 #1 Bien le Bonjour Voila je vien vers vous car j'ai un petit souci avec une incrémentation, sa ne s'incrémente pas VB: Sub Imprimer() ActiveWindow.SelectedSheets.PrintOut copies:=2 If Left(Range("I2"), 6) = "Fact" & Format(Now(), "yymm") Then Range("I2") = Left(Range("I2"), 6) & Format(CInt(Right(Range("I2"), 2)) + 1, "00") Else Range("I2") = "Fact" & Format(Now(), "yymm") & "01" End If End Sub si quelqu'un peux m'aider sa serais kool merci pour votre aide
Bien le Bonjour Voila je vien vers vous car j'ai un petit souci avec une incrémentation, sa ne s'incrémente pas VB: Sub Imprimer() ActiveWindow.SelectedSheets.PrintOut copies:=2 If Left(Range("I2"), 6) = "Fact" & Format(Now(), "yymm") Then Range("I2") = Left(Range("I2"), 6) & Format(CInt(Right(Range("I2"), 2)) + 1, "00") Else Range("I2") = "Fact" & Format(Now(), "yymm") & "01" End If End Sub si quelqu'un peux m'aider sa serais kool merci pour votre aide
Dranreb XLDnaute Barbatruc 14 Janvier 2017 #2 Bonjour. Vous comparez les 6 premier caractères de gauche de quelque chose avec une expression String qui en fait 8. Ça ne peut donc jamais être égal ! Edit: Salut job75. Dernière édition: 14 Janvier 2017 Vote positif 0 Vote négatif
Bonjour. Vous comparez les 6 premier caractères de gauche de quelque chose avec une expression String qui en fait 8. Ça ne peut donc jamais être égal ! Edit: Salut job75.
job75 XLDnaute Barbatruc 14 Janvier 2017 #3 Bonjour Don pépé, Il suffit de savoir compter jusqu'à 8 : Code: Sub Imprimer() ActiveWindow.SelectedSheets.PrintOut copies:=2 If Left(Range("I2"), 8) = "Fact" & Format(Now(), "yymm") Then Range("I2") = Left(Range("I2"), 8) & Format(Right(Range("I2"), 2) + 1, "00") Else Range("I2") = "Fact" & Format(Now(), "yymm") & "01" End If End Sub Edit : salut Bernard, je ne t'avais pas vu... A+ Vote positif 0 Vote négatif
Bonjour Don pépé, Il suffit de savoir compter jusqu'à 8 : Code: Sub Imprimer() ActiveWindow.SelectedSheets.PrintOut copies:=2 If Left(Range("I2"), 8) = "Fact" & Format(Now(), "yymm") Then Range("I2") = Left(Range("I2"), 8) & Format(Right(Range("I2"), 2) + 1, "00") Else Range("I2") = "Fact" & Format(Now(), "yymm") & "01" End If End Sub Edit : salut Bernard, je ne t'avais pas vu... A+
Don pépé XLDnaute Occasionnel 14 Janvier 2017 #4 Beh une petite erreur sa arrive merci a vous Vote positif 0 Vote négatif
job75 XLDnaute Barbatruc 14 Janvier 2017 #5 Re, On peut écrire plus simplement : Code: Sub Imprimer() ActiveWindow.SelectedSheets.PrintOut copies:=2 Range("I2") = "Fact" & Format(Now(), "yymm") & Format(Val(Mid(Range("I2"), 9)) + 1, "00") End Sub A+ Vote positif 0 Vote négatif
Re, On peut écrire plus simplement : Code: Sub Imprimer() ActiveWindow.SelectedSheets.PrintOut copies:=2 Range("I2") = "Fact" & Format(Now(), "yymm") & Format(Val(Mid(Range("I2"), 9)) + 1, "00") End Sub A+
Dranreb XLDnaute Barbatruc 14 Janvier 2017 #6 job75, il me semble qu'avec ton affectation la numérotation ne repart pas de "01" quand le mois change. Vote positif 0 Vote négatif
job75, il me semble qu'avec ton affectation la numérotation ne repart pas de "01" quand le mois change.
job75 XLDnaute Barbatruc 14 Janvier 2017 #7 Re, Je venais d'y penser : Code: Sub Imprimer() ActiveWindow.SelectedSheets.PrintOut copies:=2 [I2] = "Fact" & Format(Now(), "yymm") & Format(IIf(Format(Now(), "yymm") = Mid([I2], 5, 4), Val(Mid([I2], 9)) + 1, 1), "00") End Sub A+ Vote positif 0 Vote négatif
Re, Je venais d'y penser : Code: Sub Imprimer() ActiveWindow.SelectedSheets.PrintOut copies:=2 [I2] = "Fact" & Format(Now(), "yymm") & Format(IIf(Format(Now(), "yymm") = Mid([I2], 5, 4), Val(Mid([I2], 9)) + 1, 1), "00") End Sub A+