Microsoft 365 Générer des valeurs automatiques dans des texbox

TCHIS

XLDnaute Occasionnel
Bonsoir à tous
Pourriez-Vous me guider sur Comment générer des valeurs automatiquement dans des textbox
Textbox1=Date du jour (Aujourd'hui)
Textbox2=la semaine(S01; S02; etc.)
Textbox3= Mois (le mois correspondant à la date)
Textbox4=Année(l'année correspondant à la date)
Textebox5=N°(le numero incrémenter sur une feuille excel source )

Si possible que ces valeurs soient des valeurs par défaut c'est-à-dire quand le USF est lancé ces champs (Texbox) présente automatiquement ces valeurs
 

ZAKAO

XLDnaute Junior
Bonsoir,

Tu peux commencer par inscrire ces données dans une feuille via des formules Excel.
Ensuite, tu appelles la cellule concernée dans le Textbox qui liera la valeur.
Enfin tu peux masquer la feuille pour l'esthétique.

Ton Textbox restera ainsi toujours à jour facilement.

Cordialement,
ZAKAO
 

fanch55

XLDnaute Barbatruc
Bonjour à tous
Un exemple :
VB:
Private Sub UserForm_Initialize()
    Tbx_Date = Now
    Tbx_Mois = Month(Now)
      Tbx_An = Year(Now)
     Tbx_Sem = Format(DatePart("ww", Now, vbMonday, vbFirstFourDays), "\S00")
End Sub

Pour le n° incrémenté , je ne sais pas à quoi il peut se ré-ferrer ..
 
Dernière édition:

TCHIS

XLDnaute Occasionnel
Bonjour à tous
Un exemple :
VB:
Private Sub UserForm_Initialize()
    Tbx_Date = Now
    Tbx_Mois = Month(Now)
      Tbx_An = Year(Now)
     Tbx_Sem = Format(DatePart("ww", Now, vbMonday, vbFirstFourDays), "\S00")
End Sub

Pour le n° incrémenté , je ne sais pas à quoi il peut se ré-ferrer ..
Le N° incrémenté je cherche encore j'ai trouvé comment incrémenté sous la feuille des lors que j'enregistre mais je cherche encore à comment le faire apparaitre par défaut
 

TCHIS

XLDnaute Occasionnel
Bonjour à tous
Un exemple :
VB:
Private Sub UserForm_Initialize()
    Tbx_Date = Now
    Tbx_Mois = Month(Now)
      Tbx_An = Year(Now)
     Tbx_Sem = Format(DatePart("ww", Now, vbMonday, vbFirstFourDays), "\S00")
End Sub

Pour le n° incrémenté , je ne sais pas à quoi il peut se ré-ferrer ..
Cette méthode est très bien je trouve vraiment satisfaction.
Toutefois pour ce qui en est de
Tbx_Mois il n' y a pas moyen de les améliorer.
  • Tbx_Mois = Month(Now)
(Y a t'il un moyen pour ça donne le mois en lettre et non le numero du mois correpondant ?)
En fuisionnant vos idées j'ai pu avoir un code me satsfaisant merci beaucoup

fanch55 & fanfan38 vraiment merci beaucoup.

Si vous pouvez encore me guider pour faire à ce la texbox_Mois donne le mois en lettre (Janvier, Février, etc.) et non les Numéro correspondant aux mois

Vous voyez ce que je veux dire ?
 
Dernière édition:

TCHIS

XLDnaute Occasionnel
VB:
'***********************************************************************
'***********************************************************************
'Code permettant d'initailiser ma listview au démarrage de mon USF
'***********************************************************************
'***********************************************************************
      'Déclaration de variable
      Dim j As Integer
    Me.ListView1.View = lvwReport
    For j = 1 To Range("xfdl").End(xlToLeft).Column
    Me.ListView1.ColumnHeaders.Add , , Cells(2, j)
    Next j
     '*******************************************************************
     'Suite du code pour remplir les cellules (Cellule de la première colonne: Colonne N°)
     '*******************************************************************
            'Déclaration de variable
    Dim i As Integer
    Dim x As ListItem

Bonsoir pourriez-vous jettez un coup d'euil s'il vous plait à mon code

Au-dessus j'ai un code que j'applique afin d'initialiser ma ListView
je suis coincé par ce que quand je lance le USF ça me sort Erreur la méthode 'Range' de l'objet_Global a échoué (Erreur 1004) .
Cette partie de ce code est pour permettre à ce que la ListView affiche dans sa première colonne les données de mon tableau source situé dans la première colonne de ce meme tableau (Source)
 

fanch55

XLDnaute Barbatruc
Bonsoir,
Un texte entièrement en gras est très désagréable à lire .
On a l'impression que plus rien n'est important .

Un Range("xfd1") fait référence à la dernière colonne d'une feuille.
Une erreur 1004 est une erreur de type "bateau" qui regroupe une foultitude d'erreurs .
Pourriez-vous joinde le classeur sur lequel vous travaillez ?
 

TCHIS

XLDnaute Occasionnel
Bonsoir,
Un texte entièrement en gras est très désagréable à lire .
On a l'impression que plus rien n'est important .

Un Range("xfd1") fait référence à la dernière colonne d'une feuille.
Une erreur 1004 est une erreur de type "bateau" qui regroupe une foultitude d'erreurs .
Pourriez-vous joinde le classeur sur lequel vous travaillez ?
 

Pièces jointes

  • TCHIS.xlsm
    59.5 KB · Affichages: 4

TCHIS

XLDnaute Occasionnel
Le classeur fourni fonctionne correctement.
Je n'ai pas trouvé le code décrit à problème dans celui-ci .
Bonjour
En fait j' ai plus ou moins une idée sur le souci ce qui ce trouver entre parenthèse de la fonction Range doit etre l'index de colonne de ma dernière cellule non vide .
Autrement dit à la place de ("xfd1") il doit y avoir l'index de colonne de ma dernière Cellule non vide.

la Colonne c'est la Colonne A (Celle des N°) et la dernière cellule non vide est sur la ligne 7 et (c'est le N° 5)

Alors vous pouvez m'avoir l'index de cette cellule s'il vous plait en exploitant le fichier joint !!!!

De mon côté aussi je cherche cet Index mais pas moyen
 

Pièces jointes

  • TCHIS.xlsm
    59.4 KB · Affichages: 2

patricktoulon

XLDnaute Barbatruc
bonjour à tous
@TCHIS , @fanch55 , @fanfan38 , @ZAKAO

je reviens sur le début a savoir les textbox auto

perso quand j'ai plusieurs event qui vont modifier plusieurs textbox je ne répète pas le code
je fait une sub commune que j'appelle dans chaque event concerné
en l’occurrence ici le initialise et le change du textbox pour date

il n'y a rien de pire que le unload et un re show d'ailleurs sur certaines versions excel et config
le show n'est pas opérant car quand on unload ben c'est fini le reste du code de l'event n'est plus exécuté

perso je refait un refrech (puisque l'on a notre fonction) et tout sera automatique

le numéro de semaine date part OK perso je préfère être sur
la fonction exel No.SEMAINE.ISO est accessible en vba pourquoi s'en priver (x=worksheetfunction.IsoWeekNum(date))
le problème quand on formate un textbox (ici pour l'exemple le num de semaine quand il est retranscrit dans les cellules il faut le reformater pour avoir un numérique
alors oui c'est bien le formatage mais exige un reformatage de la valeur pour la retranscription sur feuille
c'est un choix :)

il faudrait peut etre aussi faire une verif isdate histoire de ne pas planter le truc

pour le reste c'est des valeurs numériques (envoyons les en tant que tel dans les cellules"Val(...)" )

tout ça tout ça pour en arriver à ceci :

VB:
'Version patricktoulon
Option Explicit
Private Sub CommandButton1_Click()    'quitter
    Unload Me
End Sub

Private Sub TbX_Date_Change()
 If Len(TbX_Date) = 10 Then refrech CDate(TbX_Date), True
End Sub

Private Sub Valider_Click()
    Dim lig As Long
    lig = Range("A" & Rows.Count).End(xlUp).Row + 1
    Range("A" & lig).Value = CDate(TbX_Date)
    Range("B" & lig).Value = Val(Mid(TbX_sem, 2))   ' ou TbX_sem.Value (formaté comme le textbox )
    Range("C" & lig).Value = Month(CDate(TbX_Date)) ' ou tbx_mois  (formaté comme le textbox )
    Range("D" & lig).Value = Val(TbX_an.Value)
    Range("E" & lig).Value = Val(TbX_Id.Value)
    'on ne onload pas et on ne refait pas un show on rafraichi :)
    refrech Date
End Sub

Sub refrech(d As Variant, Optional eventchange As Boolean = False)
   'si c'est l'event initialise on met la date  sinon on ne touche pas le textbox "TbX_Date"
   If Not eventchange Then TbX_Date = IIf(IsDate(d), d, "")
    TbX_mois = IIf(IsDate(d), MonthName(Month(d)), "")
    TbX_an = IIf(IsDate(d), Year(d), "")
    TbX_sem = IIf(IsDate(d), Format(WorksheetFunction.IsoWeekNum(d), "\S00"), "")
    TbX_Id = IIf(IsDate(d), Application.Max([e:e]) + 1, "")
End Sub


Private Sub UserForm_Initialize()
    refrech Date
End Sub
et je suis certain que l'on peut encore optimiser et sécuriser la saisie
 

Pièces jointes

  • Classeur1(1).xlsm
    15.4 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
311 730
Messages
2 081 989
Membres
101 856
dernier inscrit
Marina40