Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro pour modifier les 2 premiers chiffres d'un nombre ou d'une date

Barbapapa

XLDnaute Occasionnel
Bonsoir à tous, je cherche une macro qui, associée à un bouton, puisse augmenter ou diminuer la valeur des 2 premiers chiffres d'un nombre ou d'une date.
Par exemple 2116 deviendrai 2016 ou 2216 et 12/01/16 deviendrai 11/01/16 ou 13/01/16.
J'ai cherché sur les forums mais je n'ai rien trouvé.
J'ai mis en pièce jointe un fichier.

Bonne soirée à tous et merci d'avance.

Frédéric
 

Pièces jointes

  • 2 premiers chiffres.xls
    18.5 KB · Affichages: 105

Dranreb

XLDnaute Barbatruc
Re : Macro pour modifier les 2 premiers chiffres d'un nombre ou d'une date

Bonjour.
Oui mais si c'est une date, ça doit bien rester une date à l'arrivée, non ?
Sinon qu'est-ce que ça doit devenir si on ajoute 1 au dernier jour du mois, un texte ?
 

Barbapapa

XLDnaute Occasionnel
Re : Macro pour modifier les 2 premiers chiffres d'un nombre ou d'une date

Bonjour Dranreb, tout ce que je souhaite c'est que ça ne modifie uniquement les 2 premiers chiffres qu'il y a dans une cellule. Peu importe ce que cela deviendra par la suite si on augmente ou diminue ces 2 premiers chiffres.
Il faudrait que la macro ne prenne en compte que les 2 premiers chiffres qu'il y a dans une cellule et les augmente ou diminue de 1 à chaque fois que l'on clique sur les boutons.
J'espère que je suis plus clair.
 

Dranreb

XLDnaute Barbatruc
Re : Macro pour modifier les 2 premiers chiffres d'un nombre ou d'une date

Il n'y a aucun chiffre nulle part dans vos cellules, car ce ne sont pas des textes.
La première cellule contient une valeur numérique binaire en double précision qui est artificiellement figurée sous forme de chiffres,
et la deuxième une date, qui n'est pas non plus composées de chiffres puisque c'est aussi une valeur binaire représentant le nombre de jours depuis le 1er janvier 1900.
Il faut vraiment que vous cessiez immédiatement de confondre ce que vous voyez dans une cellule avec ce qu'elle contient, sinon vous ne comprendrez jamais rien à rien !
Notez que vous n'êtes de loin pas le seul à faire cette confusion, mais j'espère vous avoir rendu le service de ne plus en être.

À part ça, en attenant j'en suis là pour ajouter 1 sans changer le type de donnée :
VB:
Dim V As Variant ' supposé contenir une valeur de cellule
…
Select Case VarType(V)
   Case vbDate: V = V + 1
   Case vbDouble: V = V + Val("0.1" & Right$(Format(V, "0.0E+00"), 4))
   Case vbString: V = Format(Left$(V, 2) + 1, "00") & Mid$(V, 3)
   End Select
 
Dernière édition:

Chris401

XLDnaute Accro
Re : Macro pour modifier les 2 premiers chiffres d'un nombre ou d'une date

Bonsoir

En passant la cellule A2 en format Texte
Code:
Private Sub SpinButton1_SpinDown()
Range("A2") = IIf(InStr(Range("A2"), "/") > 0, Format(DateAdd("d", -1, Range("A2")), "dd/mm/yyyy"), _
Left(Range("A2"), 2) - 1 & Mid(Range("A2"), 3))
End Sub
Code:
Private Sub SpinButton1_SpinUp()
Range("A2") = IIf(InStr(Range("A2"), "/") > 0, Format(DateAdd("d", 1, Range("A2")), "dd/mm/yyyy"), _
Left(Range("A2"), 2) + 1 & Mid(Range("A2"), 3))
End Sub
Cordialement
Chris
 

Pièces jointes

  • Copie de 2 premiers chiffres.xlsm
    26.1 KB · Affichages: 94
  • Copie de 2 premiers chiffres.xlsm
    26.1 KB · Affichages: 97

Barbapapa

XLDnaute Occasionnel
Re : Macro pour modifier les 2 premiers chiffres d'un nombre ou d'une date

Bonjour Chris401 et merci pour votre réponse. C'est super si c'est une date mais pas pour si c'est 4 chiffres. En fait je ne voulais pas trop en demander en ne voulant changer que les 2 premiers chiffres mais je m'aperçois que cela ne paraît pas clair.
En fait, dans mon fichier il y a une cellule où je doit mettre soit une date soit un numéro de semaine associé à l'année, par ex : 11/01/16 ou 0216 (numéro de semaine + année écrit comme cela).
Pour la date, pas de problème avec votre macro, mais cela ne fonctionne pas pour les numéros de semaines + année.
Par ex si j'inscris 0116 et que je clique sur le bouton pour diminuer d'une valeur de 1 il faudrait que dans la cellule s'affiche 5315 et dans l'autre sens 0216 (et ainsi de suite, si c'est possible bien entendu).

Pour ce qui est de la façon de poser les questions je fais comme beaucoup d'autres : comme je peux, je ne suis ni informaticien ni mathématicien... mais en tout cas je remercie beaucoup ceux qui m'aide.
Bonne journée à tous

Frédéric
 

Chris401

XLDnaute Accro
Re : Macro pour modifier les 2 premiers chiffres d'un nombre ou d'une date

Bonsoir

Voir fichier (je passe par des calculs en Y1:Z3 - Ces 2 colonnes peuvent être masquées)

Cordialement
Chris
 

Pièces jointes

  • Copie de 2 premiers chiffres.xlsm
    28.2 KB · Affichages: 104
  • Copie de 2 premiers chiffres.xlsm
    28.2 KB · Affichages: 100

Barbapapa

XLDnaute Occasionnel
Re : Macro pour modifier les 2 premiers chiffres d'un nombre ou d'une date

Bonjour Chris401, c'est exactement ce que je cherchais. Merci mille fois.
Je vous souhaite une très bonne journée !

Frédéric
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…