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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #18332991
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 !!!
JLematou
Le #18333841
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 !!!



FFO
Le #18334891
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 !!!!
JLematou
Le #18340801
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 !!!!



Misange
Le #18340791
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 !!!!





JLematou
Le #18341331
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 !!!!
>>



Modeste
Le #18341911
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")
michdenis
Le #18344851
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" 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 !!!!
>>



Publicité
Poster une réponse
Anonyme