Texte userform

wmichelange

XLDnaute Occasionnel
Bonjour le forum

SVP un complément d'élaboration
Voici un texte
Private Sub UserForm_Initialize()

Dim DateDernierTirage As Date
'Pour l'Euromillion à la place de loto2 il suffit de mettre +7 dans
Tb2.Text = DateDernierTirage + 2

Sheets("Loto2").Select
Range("A6").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
DateDernierTirage = ActiveCell.Offset(-1, 0).Value
Tb1.Text = DateDernierTirage
'Pour le loto si je mets + 2 ça ne va pas pour le samedi.
Tb2.Text = DateDernierTirage + 2
Frame2.Caption = "Tirage du " & Tb2.Text

End Sub

Comment écrire soit Lundi-Mercredi-Samedi
ou lundi +2 et mercredi +2 et après mercredi +3pour le samedi et +2 pour le lundi ?
là je ne vois pas le texte.

Merci de votre aide
Je me remets au "loto" avec les macros c'est plus simple pour l'étude.
a+
wmichelange
 

Pierrot93

XLDnaute Barbatruc
Re : Texte userform

Bonjour wmichelange,

regarde peut être le code ci-dessous si il peut t'aider :

Code:
Dim d As Date
d = ActiveCell.Value
TextBox1 = IIf(Weekday(d, 2) = 3, d + 3, d + 2)

nom des objets et variable à adapter...

bonne journée
@+
 

wmichelange

XLDnaute Occasionnel
Re : Texte userform

Bonjour le forum

Salut Pierrot
Merci de ta réponse

cijoint le dernier texte modifié
Private Sub UserForm_Initialize()

Dim DateDernierTirage As Date
Dim d As Date
d = ActiveCell.Value

Sheets("Loto2").Select
Range("A6").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
DateDernierTirage = ActiveCell.Offset(-1, 0).Value
Tb1.Text = DateDernierTirage
Tb2.Text = IIf(Weekday(d, 2) = 3, d + 3, d + 2)
Frame2.Caption = "Tirage du " & Tb2.Text

End Sub


ça ne fonctionne pas car soit j'ai erreur 13 soit faux soit la date 01/01/1900

Je ne vois pas d'autre manipe pour qu'il ajoute 2 jours et puis 3 jours.
C'est certainement une petite erreur de syntaxe.
merci du tempsa+
wmichelange
 

Pierrot93

XLDnaute Barbatruc
Re : Texte userform

Bonjour,

attention il faut que ta cellule active soit une date, et de plus que cette même date soit un lundi ou un mercredi... fonctionnait chez moi quand je l'ais testé... sans voir le fichier sur lequel le code est exécuté, difficile pour moi de t'en dire plus...

bonnne soirée
@+
 

wmichelange

XLDnaute Occasionnel
Re : Texte userform

Bonjour à tous

Bonjour Pierrot

Le fichier est trop lourd..le cadre du userform fait + de 60k

Private Sub CommandButton1_Click()

End Sub

Private Sub UserForm_Initialize()

Dim DateDernierTirage As Date
Dim d As Date
d = ActiveCell.Value

'Sélection de la feuille
Sheets("Loto").Select
'Sélection de la ligne
Range("A6").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
DateDernierTirage = ActiveCell.Offset(-1, 0).Value
Tb1.Text = DateDernierTirage
Tb2.Text = IIf(Weekday(d, 2) = 3, d + 3, d + 2)

Frame2.Caption = "Tirage du " & Tb2.Text

End Sub



Private Sub CommandButton2_Click()
End
UserForm1.Hide
Application.Calculation = xlAutomatic
Calculate
End Sub


Il met bien mercredi+3 = samedi et après pour le lundi suivant il met 01/01/1900
Ce texte macro ne continue pas.
Lundi +2 on a mercredi et mercredi+3 on a samedi et samedi +2 pour avoir lundi et on recommence.
Lui il s'arrête.
Je suis un débutant en ce langage
a+
wmichelange
 

wmichelange

XLDnaute Occasionnel
Re : Texte userform

Bonjour le forum
Re Pierrot

J'ai traficoté mon fichier pour le réduire. "il est conforme aux regles".

Tu as l'idée mais le userform ne fonctionne pas sur "Test1" mais ça te donne l'idée. Je ne sais pas comment le corriger;
Ci-joint le fichier
Le userform met à jour les dates
puis il suffit de mettre le tirage que j'ai réduit à 1 2 3 4 5 dans les cases et tout se met à jour (tous les tableaux) sauf que le samedi il faut faire une correction à la main car il met vendredi.
Mon fichier fonctionne (pas "Test")très bien et pour un débutant je me félicite mais il y a cette erreur de date pour qu'il soit parfait.
Merci de ton temps mais que ça ne te prenne pas la tête.
a+
wmichelange
 

Pièces jointes

  • Test1Loto.xls
    43.5 KB · Affichages: 66

Pierrot93

XLDnaute Barbatruc
Re : Texte userform

Re

peut être comme ceci, pour l'initialisation de ton usf :

Code:
Private Sub UserForm_Initialize()
Dim d As Date
d = Sheets("Feuil1").Range("A65536").End(xlUp).Value
Tb1.Text = d
Tb2.Text = IIf(Weekday(d, 2) = 3, d + 3, d + 2)
Frame1.Caption = "Tirage du " & Tb2.Text
End Sub

@+
 

wmichelange

XLDnaute Occasionnel
Re : Texte userform

Bonjour le forum

Bonjour Pierrot
Merci de ta réponse
Ton dernier code fonctionne mais il bloque le reste des commandes du userform à la 3me semaine.
J'ai fait pleins d'essais avant de te répondre.
Le fichier est trop lourd.

merci.
a+
wmichelange
 

wmichelange

XLDnaute Occasionnel
Re : Texte userform

Bonjour le forum
Bonjour Pierrot

Vu la lourdeur du fichier je te joins mon userform complet avec ta modif.
Il y a tableau Userform1
informations : Le dernier tirage: et je saisis le tirage du: le code lit les dates.
second tableau Numeros et 5 cases pour les recevoir + N) chance et sa case
2 boutons Valider: 'code au début et Annuler: pour entrer dans le fichier sans mise à jour de date.

Userform1
Private Sub UserForm_Initialize()
'Ta modife
Dim d As Date
d = Sheets("Loto2").Range("A65536").End(xlUp).Value
Tb1.Text = d
Tb2.Text = IIf(Weekday(d, 2) = 3, d + 3, d + 2)
Frame1.Caption = "Tirage du " & Tb2.Text

End Sub

Private Sub CommandButton1_Click()
'Dévalide le calcule automatique
Application.Calculation = xlManual
'Vérifie si les numéros saisis et inférieurs à 49 ou 10
If N1 = "" Or N1 > 49 Then
Validation.Caption = "Case 1 : numéro invalide"
Else
Validation.Caption = ""
If N2 = "" Or N2 > 49 Then
Validation.Caption = "Case 2 : numéro invalide"
Else
Validation.Caption = ""
If N3 = "" Or N3 > 49 Then
Validation.Caption = "Case 3 : numéro invalide"
Else
Validation.Caption = ""
If N4 = "" Or N4 > 49 Then
Validation.Caption = "Case 4 : numéro invalide"
Else
Validation.Caption = ""
If N5 = "" Or N5 > 49 Then
Validation.Caption = "Case 5 : numéro invalide"
Else
Validation.Caption = ""
If E1 = "" Or E1 > 10 Then
Validation.Caption = "Chance 1 : numéro invalide"
Else
Validation.Caption = ""
End If
End If
End If
End If
End If
End If

If Validation.Caption <> "" Then
'MsgBox ("Erreur de saisie")
'Remplissage
Else
Dim LValue As String
LValue = Format(Tb2.Text, "yyyy/mm/dd")
ActiveCell.Value = LValue
ActiveCell.Offset(0, (N1.Value)) = N1.Value
ActiveCell.Offset(0, (N2.Value)) = N2.Value
ActiveCell.Offset(0, (N3.Value)) = N3.Value
ActiveCell.Offset(0, (N4.Value)) = N4.Value
ActiveCell.Offset(0, (N5.Value)) = N5.Value
ActiveCell.Offset(0, (E1.Value + 50)) = E1.Value
ActiveCell.Offset(0, 61) = LValue
'Mise à jour des tableaux
'tableau BK-DR
i = 62
Do Until i = 122
ActiveCell.Offset(0, (i)).FormulaR1C1 = "=IF(ISBLANK(RC1),"""",IF(ISBLANK(RC[-61]),1+N(R[-1]C),0))"
i = i + 1
Loop
ActiveCell.Offset(0, 122).FormulaR1C1 = "=SUM(RC[-121]:RC[-72])"
'tableau DU-GB
ActiveCell.Offset(0, 123).Value = ActiveCell.Offset(-1, 123).Value + 1
j = 124
Do Until j = 184
ActiveCell.Offset(0, (j)).FormulaR1C1 = "=IF((RC[-62]=0),N(R[-1]C[-62]),"""")"
j = j + 1
Loop
'Valide le calcul automatique et calcul
Application.Calculation = xlAutomatic
Calculate

'Préparation pour tableaux feuille Etude de pas
ActiveCell.Offset(0, 124).Select
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 49)).Select
Selection.Copy
'Mise à jour tableau
Sheets("Etude des Pas L").Select
Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Etude des Pas L").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Etude des Pas L").Sort.SortFields.Add Key:=Range( _
"A1:AX1"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Etude des Pas L").Sort
.SetRange Range("A1:AX1")
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
Selection.Copy
Range("AT1:AX1").Select
Application.CutCopyMode = False
Selection.Copy
Application.CutCopyMode = False
Selection.Cut
Application.CutCopyMode = False
Selection.Copy
Selection.Copy
Range("A7").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 1).Select
ActiveSheet.Paste
ActiveCell.Offset(0, -1).Value = LValue

Rows("1:1").Select
Selection.ClearContents
Range("A7").Select
Selection.End(xlDown).Select
End
UserForm1.Hide
End If

End Sub

Private Sub CommandButton2_Click()
End
UserForm1.Hide
Application.Calculation = xlAutomatic
Calculate
End Sub


ça va la 1ere mise à jour ensuite il met la date en DU
et je ne comprends rien.

Merci de ton aide et de ta patience.

Vois si tu peux faire quelque chose et merci d'avance.
a+
wmichelange
 

Pierrot93

XLDnaute Barbatruc
Re : Texte userform

Re

cela commence mal, c'est quoi cet objet "validation", je ne le vois pas.... pas facile de tester dans ces conditions.... d'autre part ce mot est réservé vba, il est donc préférable de ne pas l'utiliser comme nom de variable ou d'objet....
 

wmichelange

XLDnaute Occasionnel
Re : Texte userform

Bonjour le forum

Bonjour Pierrot et tous les champions en macros,VBA, VB ...

Sincerement je vous admire. Je ne suis qu'un petit débutant depuis 2007 année de la découverte de l'existence d'Excel et en 2008 des macros puis 2009 du langage VBA.
De plus j'ai une jeune cervelle qui a passée les 7 decennies et bien plus.
Alors toutes excuses si je ne vais pas aussi vite que vous.
Pierrot grand merci de ta patience et de tes efforts ainsi que de tes réponses
mais si ce n'est pas écrit dans le tas de bouquins que j'ai acheté y compris les CD sur les macros...... je ne sais pas écrire un Userform ou tout autre macro. et je ne comprends pas le "javanais" traduction : langage VB que tu utilises.

Votre limite de 48K de fichier joint devrait être actualisée comme la "bourse" l'est tous les jours .... les programmes devennant de plus en plus gourmants...il devient difficile de communiquer avec le moyen âge.

Toujours est-il que j'ai réduit le fichier pour qu'il passe et il buggue ce qui est normal....les formules ne sont pas adaptées pour si peu de "lignes".
Néanmoins l'adaptation de ce userform fait pour l"Euromillion (qui marche super bien lui) cette adaptation marche super bien sauf qu'elle n'est pas parfaite vu que +2 pour la date ne convient pas au samedi. C'est tout!
Néanmoins on peut s'en servir... le samedi on corrige est tout va.

Pierrot merci et comprends que c'était pour une perfection.... elle est possible mais il faut avoir le temps et tu ne l'as pas?.. moi si ...et c'est pour un jeu ....donc rien d'important.
L'aide pour le travail est + important.
ci-joint fichier corrigé. mais avec bugg.

a+
wmichelange
 

Pièces jointes

  • TestPierrot2.zip
    35.5 KB · Affichages: 39

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote