Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Incrémentation de la valeur d'une cellule a longueur variable ?

8 réponses
Avatar
incrémentation
Bonjour a tous,
hier j'ai déjà posé une question y ressemblant, C.DANIEL m'a permis de faire
un grand pas en avant.
il ne me reste plus qu'à résoudre le point suivant.
dans une cellule j'ai une valeur qui peut être de longueur variable.
ex 01pD92-1 ou 01pD1002-1
(les deux 0 apparaissent en fonctionde la position de ceux ci dans mes
résultats de macro, en effet je trove par exemple 09 mais la transcription
finale est 9)
je voudrais incrémenter ces deux types de valeur en:
01pD92-2 ou 01pD1002-2
merci beaucoup pour votre support
tres cordialement
JLematou

8 réponses

Avatar
FFO
Salut à toi

Ce bout de code réalise cette incrémentation

Donnée = "01pD92-1"
MsgBox (Mid(Donnée, 1, Len(Donnée) - 1) & Mid(Donnée, Len(Donnée), 1) + 1)

Dans la boîte de dialogue : 01pD92-2

ou

Donnée = "01pD1002-1"
MsgBox (Mid(Donnée, 1, Len(Donnée) - 1) & Mid(Donnée, Len(Donnée), 1) + 1)

Dans la boîte de dialogue : 01pD1002-2

Celà devrait te convenir

Dis moi !!!
Avatar
JLematou
Merci FFO
bon maintenant que cela fonctionne peux tu me dire comment je peux trouver
le n° de la semaine sur 2 digits ex: 02 pour cette semaine et non pas 2
comme je trouve moi avec la fonction

"Public Function ISOWeekNum(d1 As Date) As Integer
Dim Jan03 As Long
Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7)
End Function

il y a probablement mieux mais je suis sec

merci a toi si tu as un tuyau

merci a tous pour votre aide

JLematou

"FFO" a écrit :

Salut à toi

Ce bout de code réalise cette incrémentation

Donnée = "01pD92-1"
MsgBox (Mid(Donnée, 1, Len(Donnée) - 1) & Mid(Donnée, Len(Donnée), 1) + 1)

Dans la boîte de dialogue : 01pD92-2

ou

Donnée = "01pD1002-1"
MsgBox (Mid(Donnée, 1, Len(Donnée) - 1) & Mid(Donnée, Len(Donnée), 1) + 1)

Dans la boîte de dialogue : 01pD1002-2

Celà devrait te convenir

Dis moi !!!



Avatar
FFO
Rebonjour à toi

Essaies ceci :

Public Function ISOWeekNum(d1 As Date) As String
Dim Jan03 As Long
Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")
End Function

Celà devrait aller
Dis moi !!!!
Avatar
JLematou
Bonjour FFO

Merci pour l'attention que tu m'accorde, je viens de tester ta proposition,
en effet j'ai bien un retour à 2 digits mais ils me retourne 03 alors que la
mienne me retournait 2 et en ce moment nous sommes bien en semaine 2.

a plus si tu as une idée

merci encore a tous sur ce site formidable

JLematou

"FFO" a écrit :

Rebonjour à toi

Essaies ceci :

Public Function ISOWeekNum(d1 As Date) As String
Dim Jan03 As Long
Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")
End Function

Celà devrait aller
Dis moi !!!!



Avatar
Misange
pour info (sans avoir lu le reste de la ficelle):
http://www.excelabo.net/excel/semaines.php#numerosemaine

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

JLematou a écrit :
Bonjour FFO

Merci pour l'attention que tu m'accorde, je viens de tester ta proposition,
en effet j'ai bien un retour à 2 digits mais ils me retourne 03 alors que la
mienne me retournait 2 et en ce moment nous sommes bien en semaine 2.

a plus si tu as une idée

merci encore a tous sur ce site formidable

JLematou

"FFO" a écrit :

Rebonjour à toi

Essaies ceci :

Public Function ISOWeekNum(d1 As Date) As String
Dim Jan03 As Long
Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")
End Function

Celà devrait aller
Dis moi !!!!





Avatar
JLematou
Bonjour Misange:
merci pour l'attention que tu veux bien me porter mais je suis loin d'être
un pro en vba et je suis également un fervant lecteur du site Exelabo
mais mon souci c'est que j'ai deux types de formulation de ma fonction
Public Function ISOWeekNum(d1 As Date) As Integer
Dim Jan03 As Long
Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7)
End Function
cette formule me retourne une valeur 2

ou alors la formule:

'Public Function ISOWeekNum(d1 As Date) As String
'Dim Jan03 As Long
'Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
'ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")
'End Function

cette formule me retourne une valeur 03

Nous sommes semaine 2 mais je voudrais avoir comme résultat 02

est-ce possible ?

je suis désolé mais mon niveau me bloque pour le moment devant ce mure "de
glace"
--
Merci à tous pour votre aide.

Très cordialement

JACK dit : Lematou


"Misange" a écrit :

pour info (sans avoir lu le reste de la ficelle):
http://www.excelabo.net/excel/semaines.php#numerosemaine

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

JLematou a écrit :
> Bonjour FFO
>
> Merci pour l'attention que tu m'accorde, je viens de tester ta proposition,
> en effet j'ai bien un retour à 2 digits mais ils me retourne 03 alors que la
> mienne me retournait 2 et en ce moment nous sommes bien en semaine 2.
>
> a plus si tu as une idée
>
> merci encore a tous sur ce site formidable
>
> JLematou
>
> "FFO" a écrit :
>
>> Rebonjour à toi
>>
>> Essaies ceci :
>>
>> Public Function ISOWeekNum(d1 As Date) As String
>> Dim Jan03 As Long
>> Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
>> ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")
>> End Function
>>
>> Celà devrait aller
>> Dis moi !!!!
>>



Avatar
Modeste
Bonsour® JLematou
Bonne année !!! Meilleurs voeux à tous !!!

mais mon souci c'est que j'ai deux types de formulation de ma
fonction Public Function ISOWeekNum(d1 As Date) As Integer
Dim Jan03 As Long
Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7)
End Function
cette formule me retourne une valeur 2

ou alors la formule:

'Public Function ISOWeekNum(d1 As Date) As String
'Dim Jan03 As Long
'Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
'ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")
'End Function

cette formule me retourne une valeur 03



!!!!!!
je suis également un fervant lecteur du site Exelabo ?
http://excelabo.net/excel/semaines.php#numerosemaine

OU est alors passé le Int de la première formule ?????

;o)))
=TEXTE(ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))+1;"00")

ou bien encore :
=TEXTE(1+ENT(MIN(MOD(A1-DATE(ANNEE(A1)+{-1;0;1};1;5)+JOURSEM(DATE(ANNEE (A1)+{-1;0;1};1;3));734))7);"00")
Avatar
michdenis
C'est difficile de copier !!!

Dans ta fonction qui retourne 2 tu as cette ligne de code :

ISOWeekNum = Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7)

Dans la fonction qui retourne 03 tu as cette ligne de code :

ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")

Où as tu mis la fonction "int" de la première ligne de code dans cette
dernière ligne ?

Tu devrais avoir :
ISOWeekNum = Format(Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7), "00")

et tu obtiendras le même résultat !




"JLematou" a écrit dans le message de
news:
Bonjour Misange:
merci pour l'attention que tu veux bien me porter mais je suis loin d'être
un pro en vba et je suis également un fervant lecteur du site Exelabo
mais mon souci c'est que j'ai deux types de formulation de ma fonction
Public Function ISOWeekNum(d1 As Date) As Integer
Dim Jan03 As Long
Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Int((d1 - Jan03 + Weekday(Jan03) + 5) / 7)
End Function
cette formule me retourne une valeur 2

ou alors la formule:

'Public Function ISOWeekNum(d1 As Date) As String
'Dim Jan03 As Long
'Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
'ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")
'End Function

cette formule me retourne une valeur 03

Nous sommes semaine 2 mais je voudrais avoir comme résultat 02

est-ce possible ?

je suis désolé mais mon niveau me bloque pour le moment devant ce mure "de
glace"
--
Merci à tous pour votre aide.

Très cordialement

JACK dit : Lematou


"Misange" a écrit :

pour info (sans avoir lu le reste de la ficelle):
http://www.excelabo.net/excel/semaines.php#numerosemaine

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

JLematou a écrit :
> Bonjour FFO
>
> Merci pour l'attention que tu m'accorde, je viens de tester ta
> proposition,
> en effet j'ai bien un retour à 2 digits mais ils me retourne 03 alors
> que la
> mienne me retournait 2 et en ce moment nous sommes bien en semaine 2.
>
> a plus si tu as une idée
>
> merci encore a tous sur ce site formidable
>
> JLematou
>
> "FFO" a écrit :
>
>> Rebonjour à toi
>>
>> Essaies ceci :
>>
>> Public Function ISOWeekNum(d1 As Date) As String
>> Dim Jan03 As Long
>> Jan03 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
>> ISOWeekNum = Format((d1 - Jan03 + Weekday(Jan03) + 5) / 7, "00")
>> End Function
>>
>> Celà devrait aller
>> Dis moi !!!!
>>