inscription de texte automatique

richardlion

XLDnaute Occasionnel
bonjour,

je voudrais créer un menu déroulant horaires qui pour certaines heures afficher devra inscrire un texte dans une autre cellule.
est ce que cela est possible ?
je voudrais aussi que ce menu déroulant horaires que je vais creer dans validation des données est une police plus grosse que l'original
merci pour vos réponses.
 

richardlion

XLDnaute Occasionnel
Bonjour le le fil, le forum

Suggestions du dimanche matin
Tu remarqueras que je viens de supprimer mes précédents messages
(pour rendre ton fil plus lisible)
Je te suggère de faire de même
(car tu as laissé les précédents fichiers avec des données confidentielles dans tes messages*)
Qu'en penses-tu ?

NB: Donc les messages à supprimer seraient les suivants
message N° 5, 6, 7, 8 et 9

Sinon pour ta question, tu disais plus bas


Or dans ton dernier fichier en A7, on a : NOM PRENOM
je reprend donc,

je souhaiterais en saisissant un horaire par exemple (07:00) dans la cellule B29 avoir en automatique un texte par exemple (coucou) s'afficher en B34.

et pour revenir sur mon tout premier message j'abandonne la liste déroulante puisqu'on ne peut pas la grossir.

mais y a t'il un moyen de saisir les horaires autrement que 12:00 en faisant par exemple 1200 qui s’afficherait en 12:00 automatiquement
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@richardlion
Pourquoi l'espacement entre tes horaires n'est pas régulier?
J'étais parti sur ce type de macro, mais ça ne va pas vraiment
NB: Code à mettre dans le code de la feuille.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lig&
lig = CLng(1 + Split(Target.CurrentRegion.Address, "$")(UBound(Split(Target.CurrentRegion.Address, "$"))))
Cells(lig, Target.Column) = "coucou"
End Sub

Si l'espacement était régulier, ce serait plus facile d'avoir un repère.
 

richardlion

XLDnaute Occasionnel
Bonsoir le fil, le forum

@richardlion
Pourquoi l'espacement entre tes horaires n'est pas régulier?
J'étais parti sur ce type de macro, mais ça ne va pas vraiment
NB: Code à mettre dans le code de la feuille.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lig&
lig = CLng(1 + Split(Target.CurrentRegion.Address, "$")(UBound(Split(Target.CurrentRegion.Address, "$"))))
Cells(lig, Target.Column) = "coucou"
End Sub

Si l'espacement était régulier, ce serait plus facile d'avoir un repère.
j'ai copier votre macro dans une macro vierge
Bonsoir le fil, le forum

@richardlion
Pourquoi l'espacement entre tes horaires n'est pas régulier?
J'étais parti sur ce type de macro, mais ça ne va pas vraiment
NB: Code à mettre dans le code de la feuille.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lig&
lig = CLng(1 + Split(Target.CurrentRegion.Address, "$")(UBound(Split(Target.CurrentRegion.Address, "$"))))
Cells(lig, Target.Column) = "coucou"
End Sub

Si l'espacement était régulier, ce serait plus facile d'avoir un repère.
Bonsoir,

j"ai copier votre macro mais rien ne ce passe
 

Staple1600

XLDnaute Barbatruc
Re

@richardlion
Sans doute parce que tu as oublié de lire ceci
NB: Code à mettre dans le code de la feuille.
C'est à dire qu'il ne faut pas le mettre dans un module standard.
Et ce parce que c'est une procédure événementielle.

De toute façon, cette macro est à oublier pour le moment puisque je disais
J'étais parti sur ce type de macro, mais ça ne va pas vraiment
 

Staple1600

XLDnaute Barbatruc
Re

mais y a t'il un moyen de saisir les horaires autrement que 12:00 en faisant par exemple 1200 qui s’afficherait en 12:00 automatiquement

Pour cette partie de ta question, une solution (à mettre également dans le code de la feuille)
(glanée dans mes archives des mois en bre ;) )
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dt, j%
If Target.Count > 1 Then Exit Sub
If Target.HasFormula Then Exit Sub
If Target = "" Then Exit Sub
If IsNumeric(Target) Or IsDate(Target) Then
    dt = CDbl(Target)
        Select Case Len(dt)
        Case 3, 4
            j = (dt \ 100) \ 24
            dt = TimeSerial((dt \ 100) Mod 24, dt Mod 100, 0)
            If j > 0 Then dt = CSng(dt) + j
            Target.NumberFormat = IIf(dt < 1, "hh:mm", "[h]:mm")
        End Select
    On Error Resume Next
    Application.EnableEvents = False
    Target = dt
    Application.EnableEvents = True
End If
'->23916|MFerrand
End Sub
 

richardlion

XLDnaute Occasionnel
Re



Pour cette partie de ta question, une solution (à mettre également dans le code de la feuille)
(glanée dans mes archives des mois en bre ;) )
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dt, j%
If Target.Count > 1 Then Exit Sub
If Target.HasFormula Then Exit Sub
If Target = "" Then Exit Sub
If IsNumeric(Target) Or IsDate(Target) Then
    dt = CDbl(Target)
        Select Case Len(dt)
        Case 3, 4
            j = (dt \ 100) \ 24
            dt = TimeSerial((dt \ 100) Mod 24, dt Mod 100, 0)
            If j > 0 Then dt = CSng(dt) + j
            Target.NumberFormat = IIf(dt < 1, "hh:mm", "[h]:mm")
        End Select
    On Error Resume Next
    Application.EnableEvents = False
    Target = dt
    Application.EnableEvents = True
End If
'->23916|MFerrand
End Sub
comme je suis nul en excel pourrais tu me dire a quel endroit de ma feuille je dois mettre le code ou me renvoyer la feuille avec le code a l'inteieur
dans tous les cas plus j'en apprend s mieux c'est....
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@richardlion
Débuter sous Excel, n'empêche pas d'être curieux
Etre curieux, ce serait par exemple de sélectionner ces mots dans ton navigateur : une procédure événementielle
(cf message#9) puis clic-droit et là choisir: Rechercher "une procédure événementielle" avec le moteur par défaut

Je te laisse faire cette petite recherche ;)

Si jamais tu n'as pas réussi (mais il y a pas de raison) puisque tu dis toi-même ;)
dans tous les cas plus j'en apprend s mieux c'est....
je repasserai dans le fil.
 

richardlion

XLDnaute Occasionnel
Bonsoir le fil, le forum

@richardlion
Débuter sous Excel, n'empêche pas d'être curieux
Etre curieux, ce serait par exemple de sélectionner ces mots dans ton navigateur : une procédure événementielle
(cf message#9) puis clic-droit et là choisir: Rechercher "une procédure événementielle" avec le moteur par défaut

Je te laisse faire cette petite recherche ;)

Si jamais tu n'as pas réussi (mais il y a pas de raison) puisque tu dis toi-même ;)

je repasserai dans le fil.
Merci de m'avoir relancé, je suis très occupé actuellement il faut absolument que je trouve le temps nécessaire pour me pencher sur le problème

je reviendrai sur le fil
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 088
Membres
103 116
dernier inscrit
kutobi87