Date automatique dans boite de dialogue

Bonjour à tous

A l'ouverture de la textbox, je désir que soit inscrite la date suivante de la colonne A automatiquement dans la txtDate. Sans avoir à taper la date manuellement.

Ici par exemple, prochain enregistrement, 03/01/2016 etc

Je n'arrive pas à ajouter cette donnée à mon code

Merci pour votre aide

@+

Robert

Bonjour,

Private Sub UserForm_Initialize()
    TxtDat.Value = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Value + 1
End Sub

A mettre dans le module du Userform.

(NB- Avoir nommé ta procédure de lancement du Userform du même nom n'est pas une bonne idée !

C'est en quelque sorte une usurpation de nom prédéfini d'une procédure évènementielle, laquelle n'a aucune chance de réagir à l'évènement (puisqu'elle n'est pas à l'emplacement adéquat et de plus lance la commande susceptible de générer l'évènement [si le userform n'est pas encore chargé, car c'est le chargement qui déclenche l'évènement et non .Show]) mais qui pourrait générer des confusions...)

Cordialement

Ferrand

Bonjour,

Teste ce qui suit :

Sub UserForm_Initialize()

    Dim LaDate As Date

    With Worksheets("2016")

        LaDate = .Cells(.Rows.Count, 1).End(xlUp).Value + 1

    End With

    Load UsfMétéo
    UsfMétéo.TxtDat.Text = LaDate
    UsfMétéo.Show

End Sub

Normalement, cette appellation de Sub "UserForm_Initialize()" est réservé aux formulaire (c'est une procédure évènementielle) je pense qu'il serait mieux de changer le nom afin d'éviter une confusion.

Hervé.

Bonjour,

Merci de me répondre.

J'ai éssayé les deux solutions, mais au final, j'ai une erreur 13.

Vous avez raison sur le façon que j'ai eu de nomer l' Userform, mais Je suis perdu.

@+

Robert

Tu ne devrais pas en avoir si ton fichier est conforme à ce que tu as communiqué.

Re

Je crois avoir compris, je suis contraint avant de lancer l' userform de surligner la colonne A et données convertir et transformer en date.

Ceci à chaque nouvelle saisie.

Par contre je ne sais pas comment automatiser la donnée convertir car en VBA ça ne doit pas se faire ?

Il y avait bien une date dans ton classeur : en faisant +1 on obtient le jour suivant.

C'est lors de l'affectation qu'il faut intervenir : au lieu de = TextDat, tu mets = TextDat.Value ! Cela devrait fonctionner, j'ai vu ça il y a peu.

Sinon, tu convertis : CDate(TextDat.Value).

avec :

LaDate = CDate(.Cells(.Rows.Count, 1).End(xlUp).Value) + 1

Vérification faite cela fonctionne avec :

.Cells(1, 1) = CDate(TxtDat)

ou

.Cells(1, 1) = DateValue(TxtDat)

Le simple TxtDat.Value insére bien une date mais en inversant mois et jour (format américain).

Bonjour à tous,

Merci pour votre précieuse aide.

Ça fonctionne très bien. Hier soir, j'ai essayé de formater mes colonnes B, C et D en °C colonne E en Km / h colonnes G et H en mm avec les codes suivants, mais mes limites en VBA ne m'y autorisent pas

De plus, je voudrais arriver à trouver une police météo (nuages, soleil etc.. pour renseigner en colonne J avec des images.

Si vous avez une solution, je suis preneur.

Merci à vous

@+

Robert

Regarde déjà la série Webdings : caractères 0213 à 0221.

Bonjour,

Pour le formatage :

Sub Test()

    Columns("E:E").NumberFormat = "#.0#"" km/h"""
    Columns("B:D").NumberFormat = "#.0#"" °C"""
    Columns("G:H").NumberFormat = "#.0#"" mm"""

End Sub

Je regarde pour la police !

Hervé.


Bonjour,

Mon post précédent est parti je ne sais où ?

Je re poste :

Sub Test()

    Columns("E:E").NumberFormat = "#.0#"" km/h"""
    Columns("B:D").NumberFormat = "#.0#"" °C"""
    Columns("G:H").NumberFormat = "#.0#"" mm"""

End Sub

Pour la fonte, en Wingdings la lettre R donne un soleil et la T donne un flocon de neige mais j'ai rien trouvé pour les autres (nuages, etc...)

Hervé.

Bonjour

Merci de m'avoir répondu.

Le code test ne fonctionne pas. Désolé.

Je remet mon fichier avec toutes les modifications apportées depuis le premier.

@+

Robert

Pour la fonte, en Wingdings la lettre R donne un soleil et la T donne un flocon de neige mais j'ai rien trouvé pour les autres (nuages, etc...)

Ce n'est pas Wingdings mais Webdings qui a une série de type météo des caractères 0213 (soleil) à 0221 (tornade ou tempête).

J'ai trouvé un morceau de code pour convertir, mais il enlève les couleurs grises des lignes.

Sub conversion_simplissime()

[COLOR=Green]

With Sheets("Saisie")

.UsedRange = .UsedRange.Value

End With

End Sub

@+

Robert

J'ai trouvé une solution.

Sub essai()

With Worksheets("Saisie")

For Each c In Columns("B:H")

c.TextToColumns Destination:=Range(c.Address)(1, 1), FieldInfo:=Array(1, 1)

Next

End With

End Sub

Phase suivante:

La police météo

@+

Robert

Ce n'est pas Wingdings mais Webdings qui a une série de type météo des caractères 0213 (soleil) à 0221 (tornade ou tempête).

Autant pour moi

Rechercher des sujets similaires à "date automatique boite dialogue"