Souhaiter anniversaire (Excel 2003)
Résolu/Fermé
jean300
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
-
23 août 2017 à 14:32
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 - 25 août 2017 à 12:30
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 - 25 août 2017 à 12:30
A voir également:
- Souhaiter anniversaire (Excel 2003)
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
6 réponses
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
Modifié le 23 août 2017 à 18:04
Modifié le 23 août 2017 à 18:04
Bonjour Jean
Ton fichier avec une macro qui se déclenche à l'ouverture du classeur
https://mon-partage.fr/f/lIZxINID/
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Ton fichier avec une macro qui se déclenche à l'ouverture du classeur
https://mon-partage.fr/f/lIZxINID/
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
jean300
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
14
23 août 2017 à 20:51
23 août 2017 à 20:51
Bonjour via55
Est-il possible d'afficher dans la Msgbox du plus âgé au plus jeune ?
En te remerciant.
Est-il possible d'afficher dans la Msgbox du plus âgé au plus jeune ?
En te remerciant.
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
23 août 2017 à 22:28
23 août 2017 à 22:28
Re
Voilà :
https://www.cjoint.com/c/GHxuBOT71S6
Voilà :
https://www.cjoint.com/c/GHxuBOT71S6
jean300
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
14
24 août 2017 à 10:33
24 août 2017 à 10:33
Re,
Je te remercie via55, accepte-tu de commenter le code stp car je débute avec vba.
Merci
Je te remercie via55, accepte-tu de commenter le code stp car je débute avec vba.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
24 août 2017 à 13:26
24 août 2017 à 13:26
Re,
Bien volontiers
1) Dans ThisWorkbook ces lignes lance la macro anniv à l'ouverture du classeur :
Private Sub Workbook_Open()
anniv
End Sub
2) La macro commentée :
N’hésites pas à me redemander si il y a encore quelque chose d'obscur
Cdlmnt
Via
Bien volontiers
1) Dans ThisWorkbook ces lignes lance la macro anniv à l'ouverture du classeur :
Private Sub Workbook_Open()
anniv
End Sub
2) La macro commentée :
Sub anniv() Dim Ligne As Long, tablo(10) As Variant, age(10) As Integer, tri(10) As Integer ' derniere ligne remplie 2eme colonne Ligne = Sheets("Liste").Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row ' n° de la semaine actuelle cettesemaine = Val(Format(Date, "ww", vbMonday, vbFirstFourDays)) 'Boucle sur les lignes de la base For n = 1 To Ligne 'n° de la semaine de la date de naissance semaine = Val(Format(Range("C" & n), "ww", vbMonday, vbFirstFourDays)) ' si ce n° de semaine est celui de la semaine actuelle augmenté de 1 If semaine = (cettesemaine + 1) Then 'variable x incrémentée x = x + 1 'variable tablo prend valeur n(donc n° de la ligne) tablo(x) = n 'variable age prend la valeur de la différence années entre aujourd'hui et date de naissance age(x) = Year(Date) - Year(Range("C" & n)) ' classement dans tablo par ordre décroissant ' boucle de x à 2 en revenant en arrière For t = x To 2 Step -1 ' si variable age(t) est plus grande que sa précedente on inverse les valeurs des 2 variables de même que celles des 2 variables tablo If age(t) > age(t - 1) Then f = age(t - 1) g = tablo(t - 1) age(t - 1) = age(t) age(t) = f tablo(t - 1) = tablo(t) tablo(t) = g End If Next t End If Next n ' boucle sur toutes les valeurs du tablo For d = 1 To x ' on rajoute au message à afficher après saut de ligne ,les nom, prénom, date de naissance et âge mes = mes & Chr(10) & Range("A" & tablo(d)) & " " & Range("B" & tablo(d)) & " né(e) le " & Range("C" & tablo(d)) & " : " & age(d) & " ans" Next d ' si message est vide alors le message sera Aucun anniversaire sinon ce sera BON anniversaire à suivi du message If mes = "" Then mes = "Aucun anniversaire" Else mes = "BON ANNIVERSAIRE à : " & Chr(10) & mes 'affichage message MsgBox mes End Sub
N’hésites pas à me redemander si il y a encore quelque chose d'obscur
Cdlmnt
Via
jean300
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
14
25 août 2017 à 09:46
25 août 2017 à 09:46
Bonjour via55,
Désolé de t'ennuyer de nouveau, je souhaiterai une modification su tu me permet.
A savoir que le code s'exécute lors de la demande d'impression du document et non lors de saisie en colonne S, T, ou U
En te remerciant.
Désolé de t'ennuyer de nouveau, je souhaiterai une modification su tu me permet.
A savoir que le code s'exécute lors de la demande d'impression du document et non lors de saisie en colonne S, T, ou U
En te remerciant.
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
>
jean300
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
25 août 2017 à 12:30
25 août 2017 à 12:30
Bonjour jean
Le code ne s’exécute pas lors de la saisie en colonne S T ou U (dans lesquelles il n'y a rien d'ailleurs) mais à l'ouverture du classeur
Si tu veux qu'elle s'exécute avant impression dans ThisWorkbook tu remplaces
Private Sub Workbook_Open()
anniv
End Sub
par
Private Sub Workbook_BeforePrint(Cancel As Boolean)
anniv
End Sub
Cdlmnt
Via
Le code ne s’exécute pas lors de la saisie en colonne S T ou U (dans lesquelles il n'y a rien d'ailleurs) mais à l'ouverture du classeur
Si tu veux qu'elle s'exécute avant impression dans ThisWorkbook tu remplaces
Private Sub Workbook_Open()
anniv
End Sub
par
Private Sub Workbook_BeforePrint(Cancel As Boolean)
anniv
End Sub
Cdlmnt
Via
jean300
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
14
24 août 2017 à 21:46
24 août 2017 à 21:46
Tous mes remerciements via55 pour autant de gentillesse
23 août 2017 à 18:12
Pourriez vous publier une version de votre tableau en XLS ?
Merci d'avance,
Cordialement,
Alain
23 août 2017 à 18:28
Voilà : https://mon-partage.fr/f/QTt64fXd/
Cdlmnt
Via
23 août 2017 à 18:48
Cordialement,
Alain
23 août 2017 à 22:07
Peux-tu commenter le code stp
Merci