Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
est t'il possible d'avoir une formule ou du vba,pour insérer un texte aléatoire tous les lundi de l'année ?
et mettre le résultat dans une autre feuille ?
apres plusieurs essai positif tout etait fonctionnel ou presque !
mais depuis hier impossible de faire fonctionner le code correctement
j'ai pourtant controlé :
If dWeekday = 7 Then
pour que le resultats change a chaque ouverture de fichier, mais rien toujours le même texte !
et le dernier code non aleatoire ne fonctionne plus non plus :
Code:
Option Explicit
Private Sub WorkBook_Open()
Dim dWeekday As Double
dim iWeekno as integer Dim dMessage As String
' Obtenir le jour de la semaine / Get Week day
dWeekday = WorksheetFunction.Weekday(Date, 2)
' Obtenir le numéro de la semaine / Get week no (european ISO norm)
iWeekno=IsoWeekNum(now)
' Si c'est un lundi
If dWeekday = 2 Then
' pour récupérer le message depuis une autre colonne, remplacer "A" par la colonne souhaitée.
' to get the message from another column, replace "A" by the desired column letter.
dMessage = WorksheetFunction.Index(Sheets("QUALITE").Columns("A").Range("A1:A52"), iWeekno)
Sheets("CCT").Range("B16").Value = dMessage
End If
End Sub
Public Function IsoWeekNum(d1 As Date) As Integer
' Provided by Daniel Maher.
Dim d2 As Long
d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
IsoWeekNum = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function
je suis perdu j'ai meme change de version excel mais toujours aucun resultat !!!
Private Sub WorkBook_Open()
If Weekday(Date) = 2 Then
If Sheets("CCT").[B15] = "» essai 52" Then Sheets("CCT").[B15] = "» essai 1": Exit Sub
Sheets("CCT").[B15] = Feuil2.[A:A].Find([B15], , , 1)(2, 1)
End If
End Sub
Attention à la cellule variable (une fois B16, puis B15) et quand on arrive au bout !
ton fichier "Briefing v1" avec test aléatoire marche très bien chez moi (il m'a juste suffit de changer la condition testant le jour de la semaine à 3 pour Mercredi).
le seul problème, en cas de test aléatoire, serait si le fichier était ouvert plusieurs fois par jour.
ton fichier "Briefing v1" avec test aléatoire marche très bien chez moi (il m'a juste suffit de changer la condition testant le jour de la semaine à 3 pour Mercredi).
le seul problème, en cas de test aléatoire, serait si le fichier était ouvert plusieurs fois par jour.
Private Sub WorkBook_Open()
Sheets("CCT").Select
If Weekday(Now) = 5 Then _
[B15] = [T].Rows(Application.RandBetween(1, 52))
End Sub
Pour un tirage aléatoire unique par jour (ouvertures multiples ou pas)
Code:
Private Sub WorkBook_Open()
Sheets("CCT").Select
If Weekday(Now) = 5 And [E7] = "" Then _
[B15] = [T].Rows(Application.RandBetween(1, 52)): [E7] = " "
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
[E7] = ""
End Sub
T est le nom du tableau des textes et [E7] car cette cellule est masquée par l'image.
J'ai mis 5 (pour tester ce jour (jeudi).
Attention, le résultat ne sera pas le même si on ne veut pas de doublon au tirage (autre programmation dans ce cas).
Private Sub WorkBook_Open()
Sheets("CCT").Select
If Weekday(Now) = 5 Then _
[B15] = [T].Rows(Application.RandBetween(1, 52))
End Sub
Pour un tirage aléatoire unique par jour (ouvertures multiples ou pas)
Code:
Private Sub WorkBook_Open()
Sheets("CCT").Select
If Weekday(Now) = 5 And [E7] = "" Then _
[B15] = [T].Rows(Application.RandBetween(1, 52)): [E7] = " "
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
[E7] = ""
End Sub
T est le nom du tableau des textes et [E7] car cette cellule est masquée par l'image.
J'ai mis 5 (pour tester ce jour (jeudi).
Attention, le résultat ne sera pas le même si on ne veut pas de doublon au tirage (autre programmation dans ce cas).
Apres plusieurs essais, pour aller au plus simple :
- a chaque ouverture du fichier, tous les lundi de l'année 1 message en (B15)
- ce message visible toute la semaine jusqu'au lundi suivant (même avec ouverture multiples toute la semaine)
- EX : message dans cellule A46 ----> message pour la semaine 46 et ainsi de suite jusque semaine 52
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD