J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte.
Ce sont des codes qui se présentent tous de la même façon :
"Paa/xxxx"
P est une constante
aa est une année sur 2 chiffres (98, 99, 01, 02..etc)
/ est une constante (slash)
xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais
1°) par une formule, connaitre dans une cellule : Le plus grand numéro
(xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à
l'initialisation d'un userform.
(en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
"0004"
P05/0025
P06/0001
P06/0002
P06/0003
P06/0004
Pour le VBA..... cela renvoie sans les zéro 4 au lieu 004 Dim a(1000) As Integer an = "P" & Right(Year(Now), 2) For Each c In Sheets(1).Range("NumDos") If Left(c.Value, 3) = an Then nb = nb + 1 a(nb) = Right(c.Value, 4) If gv < a(nb) Then gv = a(nb) End If Next MsgBox gv 'ton textbox
Youky
"Domi" a écrit dans le message de news:
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
Pour le VBA..... cela renvoie sans les zéro 4 au lieu 004
Dim a(1000) As Integer
an = "P" & Right(Year(Now), 2)
For Each c In Sheets(1).Range("NumDos")
If Left(c.Value, 3) = an Then
nb = nb + 1
a(nb) = Right(c.Value, 4)
If gv < a(nb) Then gv = a(nb)
End If
Next
MsgBox gv 'ton textbox
Youky
"Domi" <scrat83@free.fr> a écrit dans le message de news:
eBJEsfeHGHA.2628@TK2MSFTNGP15.phx.gbl...
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte.
Ce sont des codes qui se présentent tous de la même façon :
"Paa/xxxx"
P est une constante
aa est une année sur 2 chiffres (98, 99, 01, 02..etc)
/ est une constante (slash)
xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais
1°) par une formule, connaitre dans une cellule : Le plus grand numéro
(xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à
l'initialisation d'un userform.
(en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
"0004"
P05/0025
P06/0001
P06/0002
P06/0003
P06/0004
Pour le VBA..... cela renvoie sans les zéro 4 au lieu 004 Dim a(1000) As Integer an = "P" & Right(Year(Now), 2) For Each c In Sheets(1).Range("NumDos") If Left(c.Value, 3) = an Then nb = nb + 1 a(nb) = Right(c.Value, 4) If gv < a(nb) Then gv = a(nb) End If Next MsgBox gv 'ton textbox
Youky
"Domi" a écrit dans le message de news:
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
JLuc
*Bonjour Domi*, Et une petite fonction ?
Function MAXIM(region As Range, annee As Long) MAXIM = 0 For Each cel In region If Val("20" & Mid(cel, 2, 2)) = annee Then If Int(Right(cel, 4)) > MAXIM Then MAXIM = Val(Right(cel, 4)) End If End If Next End Function
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
-- JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/ C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
*Bonjour Domi*,
Et une petite fonction ?
Function MAXIM(region As Range, annee As Long)
MAXIM = 0
For Each cel In region
If Val("20" & Mid(cel, 2, 2)) = annee Then
If Int(Right(cel, 4)) > MAXIM Then
MAXIM = Val(Right(cel, 4))
End If
End If
Next
End Function
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte.
Ce sont des codes qui se présentent tous de la même façon :
"Paa/xxxx"
P est une constante
aa est une année sur 2 chiffres (98, 99, 01, 02..etc)
/ est une constante (slash)
xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais
1°) par une formule, connaitre dans une cellule : Le plus grand numéro
(xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à
l'initialisation d'un userform.
(en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
"0004"
P05/0025
P06/0001
P06/0002
P06/0003
P06/0004
Merci
Domi
--
JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
Function MAXIM(region As Range, annee As Long) MAXIM = 0 For Each cel In region If Val("20" & Mid(cel, 2, 2)) = annee Then If Int(Right(cel, 4)) > MAXIM Then MAXIM = Val(Right(cel, 4)) End If End If Next End Function
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
-- JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/ C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
JLuc
*Bonjour Domi*, J'ai oublier la question 2: A l'initialisation du formulaire TextBox1 = MAXIM(Range("nomdos"), Year(Date))
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
-- JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/ C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
*Bonjour Domi*,
J'ai oublier la question 2:
A l'initialisation du formulaire
TextBox1 = MAXIM(Range("nomdos"), Year(Date))
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte.
Ce sont des codes qui se présentent tous de la même façon :
"Paa/xxxx"
P est une constante
aa est une année sur 2 chiffres (98, 99, 01, 02..etc)
/ est une constante (slash)
xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais
1°) par une formule, connaitre dans une cellule : Le plus grand numéro
(xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à
l'initialisation d'un userform.
(en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
"0004"
P05/0025
P06/0001
P06/0002
P06/0003
P06/0004
Merci
Domi
--
JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
*Bonjour Domi*, J'ai oublier la question 2: A l'initialisation du formulaire TextBox1 = MAXIM(Range("nomdos"), Year(Date))
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
-- JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/ C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
michdenis
Bonjour Domi,
La formule de la feuille de calcul :
Validation matricielle : Ctrl+ Maj + enter =ANNEE(MAX(("01/01/"&(STXT(A3:A5;2;2)))*1)) A3:A5 plage de cellules à adapter
Attention, avec ce type de formule, il y a les limitations attachées dans le panneau de configuration de Windows concernant l'interprétation des dates selon les années. (Voir les options régionales du panneau de configuration)
Pour ce qui est des textbox, je ne saisis pas vraiment où se retrouvent l'ensemble des données que tu veux traiter ....!
Salutations!
"Domi" a écrit dans le message de news: Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
Bonjour Domi,
La formule de la feuille de calcul :
Validation matricielle : Ctrl+ Maj + enter
=ANNEE(MAX(("01/01/"&(STXT(A3:A5;2;2)))*1))
A3:A5 plage de cellules à adapter
Attention, avec ce type de formule, il y a les limitations
attachées dans le panneau de configuration de Windows
concernant l'interprétation des dates selon les années.
(Voir les options régionales du panneau de configuration)
Pour ce qui est des textbox, je ne saisis pas vraiment
où se retrouvent l'ensemble des données que tu veux
traiter ....!
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de news: eBJEsfeHGHA.2628@TK2MSFTNGP15.phx.gbl...
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte.
Ce sont des codes qui se présentent tous de la même façon :
"Paa/xxxx"
P est une constante
aa est une année sur 2 chiffres (98, 99, 01, 02..etc)
/ est une constante (slash)
xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais
1°) par une formule, connaitre dans une cellule : Le plus grand numéro
(xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à
l'initialisation d'un userform.
(en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
"0004"
P05/0025
P06/0001
P06/0002
P06/0003
P06/0004
Validation matricielle : Ctrl+ Maj + enter =ANNEE(MAX(("01/01/"&(STXT(A3:A5;2;2)))*1)) A3:A5 plage de cellules à adapter
Attention, avec ce type de formule, il y a les limitations attachées dans le panneau de configuration de Windows concernant l'interprétation des dates selon les années. (Voir les options régionales du panneau de configuration)
Pour ce qui est des textbox, je ne saisis pas vraiment où se retrouvent l'ensemble des données que tu veux traiter ....!
Salutations!
"Domi" a écrit dans le message de news: Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
Domi
Bonsoir, Pour le VBA, impec avec petite modif... MonTextBox.Value = Format(gv, "000#")
La formule ? ça t'inspire pas trop ? ;o) Merci beaucoup Domi
"Youky" a écrit dans le message de news:43d12830$0$19681$
Pour le VBA..... cela renvoie sans les zéro 4 au lieu 004 Dim a(1000) As Integer an = "P" & Right(Year(Now), 2) For Each c In Sheets(1).Range("NumDos") If Left(c.Value, 3) = an Then nb = nb + 1 a(nb) = Right(c.Value, 4) If gv < a(nb) Then gv = a(nb) End If Next MsgBox gv 'ton textbox
Youky
"Domi" a écrit dans le message de news:
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte.
Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
Bonsoir,
Pour le VBA, impec avec petite modif...
MonTextBox.Value = Format(gv, "000#")
La formule ? ça t'inspire pas trop ? ;o)
Merci beaucoup
Domi
"Youky" <bruno.jeune@wanadoo.fr> a écrit dans le message de
news:43d12830$0$19681$8fcfb975@news.wanadoo.fr...
Pour le VBA..... cela renvoie sans les zéro 4 au lieu 004
Dim a(1000) As Integer
an = "P" & Right(Year(Now), 2)
For Each c In Sheets(1).Range("NumDos")
If Left(c.Value, 3) = an Then
nb = nb + 1
a(nb) = Right(c.Value, 4)
If gv < a(nb) Then gv = a(nb)
End If
Next
MsgBox gv 'ton textbox
Youky
"Domi" <scrat83@free.fr> a écrit dans le message de news:
eBJEsfeHGHA.2628@TK2MSFTNGP15.phx.gbl...
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format
texte.
Ce sont des codes qui se présentent tous de la même façon :
"Paa/xxxx"
P est une constante
aa est une année sur 2 chiffres (98, 99, 01, 02..etc)
/ est une constante (slash)
xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais
1°) par une formule, connaitre dans une cellule : Le plus grand numéro
(xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à
l'initialisation d'un userform.
(en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
"0004"
P05/0025
P06/0001
P06/0002
P06/0003
P06/0004
Bonsoir, Pour le VBA, impec avec petite modif... MonTextBox.Value = Format(gv, "000#")
La formule ? ça t'inspire pas trop ? ;o) Merci beaucoup Domi
"Youky" a écrit dans le message de news:43d12830$0$19681$
Pour le VBA..... cela renvoie sans les zéro 4 au lieu 004 Dim a(1000) As Integer an = "P" & Right(Year(Now), 2) For Each c In Sheets(1).Range("NumDos") If Left(c.Value, 3) = an Then nb = nb + 1 a(nb) = Right(c.Value, 4) If gv < a(nb) Then gv = a(nb) End If Next MsgBox gv 'ton textbox
Youky
"Domi" a écrit dans le message de news:
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte.
Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
michdenis
Désolé, il en manque un bout, j'avais mal lu la question :
Au lieu d'écrire l'année pour laquelle tu cherches la valeur maximum ( 01) dans mon exemple, tu utilises une référence de cellules (á)
Salutations!
"michdenis" a écrit dans le message de news: Bonjour Domi,
La formule de la feuille de calcul :
Validation matricielle : Ctrl+ Maj + enter =ANNEE(MAX(("01/01/"&(STXT(A3:A5;2;2)))*1)) A3:A5 plage de cellules à adapter
Attention, avec ce type de formule, il y a les limitations attachées dans le panneau de configuration de Windows concernant l'interprétation des dates selon les années. (Voir les options régionales du panneau de configuration)
Pour ce qui est des textbox, je ne saisis pas vraiment où se retrouvent l'ensemble des données que tu veux traiter ....!
Salutations!
"Domi" a écrit dans le message de news: Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
Désolé, il en manque un bout, j'avais mal lu la question :
Au lieu d'écrire l'année pour laquelle tu cherches la
valeur maximum ( 01) dans mon exemple, tu utilises
une référence de cellules (á)
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news: eCmJ4CfHGHA.1628@TK2MSFTNGP12.phx.gbl...
Bonjour Domi,
La formule de la feuille de calcul :
Validation matricielle : Ctrl+ Maj + enter
=ANNEE(MAX(("01/01/"&(STXT(A3:A5;2;2)))*1))
A3:A5 plage de cellules à adapter
Attention, avec ce type de formule, il y a les limitations
attachées dans le panneau de configuration de Windows
concernant l'interprétation des dates selon les années.
(Voir les options régionales du panneau de configuration)
Pour ce qui est des textbox, je ne saisis pas vraiment
où se retrouvent l'ensemble des données que tu veux
traiter ....!
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de news: eBJEsfeHGHA.2628@TK2MSFTNGP15.phx.gbl...
Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte.
Ce sont des codes qui se présentent tous de la même façon :
"Paa/xxxx"
P est une constante
aa est une année sur 2 chiffres (98, 99, 01, 02..etc)
/ est une constante (slash)
xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais
1°) par une formule, connaitre dans une cellule : Le plus grand numéro
(xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à
l'initialisation d'un userform.
(en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
"0004"
P05/0025
P06/0001
P06/0002
P06/0003
P06/0004
Au lieu d'écrire l'année pour laquelle tu cherches la valeur maximum ( 01) dans mon exemple, tu utilises une référence de cellules (á)
Salutations!
"michdenis" a écrit dans le message de news: Bonjour Domi,
La formule de la feuille de calcul :
Validation matricielle : Ctrl+ Maj + enter =ANNEE(MAX(("01/01/"&(STXT(A3:A5;2;2)))*1)) A3:A5 plage de cellules à adapter
Attention, avec ce type de formule, il y a les limitations attachées dans le panneau de configuration de Windows concernant l'interprétation des dates selon les années. (Voir les options régionales du panneau de configuration)
Pour ce qui est des textbox, je ne saisis pas vraiment où se retrouvent l'ensemble des données que tu veux traiter ....!
Salutations!
"Domi" a écrit dans le message de news: Bonsoir,
J'ai dans une colonne (plage nommée "NumDos") des valeurs au format texte. Ce sont des codes qui se présentent tous de la même façon : "Paa/xxxx" P est une constante aa est une année sur 2 chiffres (98, 99, 01, 02..etc) / est une constante (slash) xxxx est un numéro (compris entre 0001 et 9999)
Je voudrais 1°) par une formule, connaitre dans une cellule : Le plus grand numéro (xxxx) pour l'année en cours (aujourd'hui).
2°) Quel code VBA utiliser pour obtenir la même info dans un texbox à l'initialisation d'un userform. (en évitant de passer par la copie du calcul dans une cellule) ?
Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004" P05/0025 P06/0001 P06/0002 P06/0003 P06/0004
Merci Domi
AV
| Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie | "0004"
Avec la plage nommée "NumDos"
1°) Sur la feuille de calcul
Validation matricielle (Ctrl+ Maj + entrée) =TEXTE(MAX(SI(STXT(NumDos;2;2)=DROITE(ANNEE(AUJOURDHUI());2);DROITE(NumDos)*1));"0000")
2°) TextBox sur UF
Private Sub UserForm_Initialize() Me.TextBox1 = [text(max(if(mid(numdos,2,2)=right(year(today()),2),right(numdos)*1)),"0000")] End Sub
AV
| Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
| "0004"
Avec la plage nommée "NumDos"
1°) Sur la feuille de calcul
Validation matricielle (Ctrl+ Maj + entrée)
=TEXTE(MAX(SI(STXT(NumDos;2;2)=DROITE(ANNEE(AUJOURDHUI());2);DROITE(NumDos)*1));"0000")
2°) TextBox sur UF
Private Sub UserForm_Initialize()
Me.TextBox1 =
[text(max(if(mid(numdos,2,2)=right(year(today()),2),right(numdos)*1)),"0000")]
End Sub
Private Sub UserForm_Initialize() Me.TextBox1 > [text(max(if(mid(numdos,2,2)=right(year(today()),2),right(numdos)*1)),"0000"
)]
End Sub
AV
michdenis
Bonjour Domi,
| C'est plus concis.
Je m'insurge ... ;-))
Ma formule fait 6 caractères de moins de celle de AV =MAX(SI(ANNEE("01/01/"&(STXT(A3:A10;2;2)))*1=ANNEE(AUJOURDHUI());STXT(A3:A10;5;5)*1))
Et celle de AV retourne seulement le 4 ième digit des xxxx au lieu des 4 digits demandés... Il a omis un argument à droite(....) mais c'est selon moi ! ;-)
Ou je n'ai rien compris à ce que tu désirais ! Et ça c'est bien possible !!!
;-)))
Salutations!
"Domi" a écrit dans le message de news: C'est plus concis. Merci ;o) Domi
"AV" a écrit dans le message de news:
| Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie | "0004"
Private Sub UserForm_Initialize() Me.TextBox1 > [text(max(if(mid(numdos,2,2)=right(year(today()),2),right(numdos)*1)),"0000"
)]
End Sub
AV
Bonjour Domi,
| C'est plus concis.
Je m'insurge ... ;-))
Ma formule fait 6 caractères de moins de celle de AV
=MAX(SI(ANNEE("01/01/"&(STXT(A3:A10;2;2)))*1=ANNEE(AUJOURDHUI());STXT(A3:A10;5;5)*1))
Et celle de AV retourne seulement le 4 ième digit des xxxx au lieu des 4 digits demandés...
Il a omis un argument à droite(....) mais c'est selon moi ! ;-)
Ou je n'ai rien compris à ce que tu désirais !
Et ça c'est bien possible !!!
;-)))
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de news: ew17aTnHGHA.2012@TK2MSFTNGP14.phx.gbl...
C'est plus concis.
Merci ;o)
Domi
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de
news:uTX3YFmHGHA.2704@TK2MSFTNGP15.phx.gbl...
| Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie
| "0004"
Ma formule fait 6 caractères de moins de celle de AV =MAX(SI(ANNEE("01/01/"&(STXT(A3:A10;2;2)))*1=ANNEE(AUJOURDHUI());STXT(A3:A10;5;5)*1))
Et celle de AV retourne seulement le 4 ième digit des xxxx au lieu des 4 digits demandés... Il a omis un argument à droite(....) mais c'est selon moi ! ;-)
Ou je n'ai rien compris à ce que tu désirais ! Et ça c'est bien possible !!!
;-)))
Salutations!
"Domi" a écrit dans le message de news: C'est plus concis. Merci ;o) Domi
"AV" a écrit dans le message de news:
| Exemple : avec ces valeurs : nous sommes en 2006, donc cela me renvoie | "0004"
Private Sub UserForm_Initialize() Me.TextBox1 > [text(max(if(mid(numdos,2,2)=right(year(today()),2),right(numdos)*1)),"0000"
)]
End Sub
AV
AV
Je m'insurge ... ;-)) Ma formule fait 6 caractères de moins de celle de AV
Bof, bof Exact que le 2° argument de la 2° fonction DROITE est resté dans le presse-papier (surement que bcp avaient corrigé), mais même en le rajoutant
=TEXTE(MAX(SI(STXT(NumDos;2;2)=DROITE(ANNEE(AUJOURDHUI());2);DROITE(NumDos;4)*1));"0000") ma formule restera, me semble-t-il, plus courte car : Extrait de la demande : "...avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004"." Ta formule (la 2°) renvoie "4" . il va bien falloir que tu rajoutes la fonction TEXTE pour respecter la demande... Ca fera alors combien de caractères ? Hum..
AV
Je m'insurge ... ;-))
Ma formule fait 6 caractères de moins de celle de AV
Bof, bof
Exact que le 2° argument de la 2° fonction DROITE est resté dans le
presse-papier (surement que bcp avaient corrigé), mais même en le rajoutant
=TEXTE(MAX(SI(STXT(NumDos;2;2)=DROITE(ANNEE(AUJOURDHUI());2);DROITE(NumDos;4)*1));"0000")
ma formule restera, me semble-t-il, plus courte car :
Extrait de la demande :
"...avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004"."
Ta formule (la 2°) renvoie "4" . il va bien falloir que tu rajoutes la
fonction TEXTE pour respecter la demande...
Ca fera alors combien de caractères ? Hum..
Je m'insurge ... ;-)) Ma formule fait 6 caractères de moins de celle de AV
Bof, bof Exact que le 2° argument de la 2° fonction DROITE est resté dans le presse-papier (surement que bcp avaient corrigé), mais même en le rajoutant
=TEXTE(MAX(SI(STXT(NumDos;2;2)=DROITE(ANNEE(AUJOURDHUI());2);DROITE(NumDos;4)*1));"0000") ma formule restera, me semble-t-il, plus courte car : Extrait de la demande : "...avec ces valeurs : nous sommes en 2006, donc cela me renvoie "0004"." Ta formule (la 2°) renvoie "4" . il va bien falloir que tu rajoutes la fonction TEXTE pour respecter la demande... Ca fera alors combien de caractères ? Hum..