Accueil > > > VBA EXCEL - ATTRIBUÉ EN FONCTION DE L'ANNÉE UN N° DE SEMAINE DIFFÉRENTS PAR CELLULES
VBA EXCEL - ATTRIBUÉ EN FONCTION DE L'ANNÉE UN N° DE SEMAINE DIFFÉRENTS PAR CELLULES
Information sur la source
Description
Permet de créer sur une feuille excel un N° de semaine par cellule dépendant de l'année en cours. Si le n° de la semaine incrémenté est égale au nbre total de semaine de l'année en cours, alors on repart à la semaine N° 1 en incréméntant l'année en cours jusqu'à remplir le nombre de cellules choisies au départ.
Source
- Function Semaine(ddate As Date)
- Semaine = Format(ddate, "ww", , vbFirstFourDays)
- End Function
-
- Function Initialise_Semaine()
-
- Dim NomDuJour(7) As String
- Dim StockVal()
- Nb_Colonne_A_Traiter = 30
-
- DateActuel = Now
- Num_Jour_Actuel = Day(DateActuel)
- Num_Mois_Actuel = Month(DateActuel)
- Num_Year_Actuel = Year(DateActuel)
- Num_Jour_Sem_Actuel = Weekday(DateActuel, vbUseSystem)
-
-
- Select Case Num_Year_Actuel
- Case 2006
- NbTotSem = 52
- Case 2007
- NbTotSem = 53
- Case 2008
- NbTotSem = 52
- Case 2009
- NbTotSem = 52
- End Select
-
- Select Case Num_Jour_Sem_Actuel
- Case 1
- NomDuJour(1) = "Lundi"
- Case 2
- NomDuJour(2) = "Mardi"
- Case 3
- NomDuJour(3) = "Mercredi"
- Case 4
- NomDuJour(4) = "Jeudi"
- Case 5
- NomDuJour(5) = "Vendredi"
- Case 6
- NomDuJour(6) = "Samedi"
- Case 7
- NomDuJour(7) = "Dimanche"
- End Select
-
-
- Range("F3").Value = Semaine(Range("A3").Value) & "/" & Num_Year_Actuel
- Sem_Actuel = Left(Range("F3").Value, 2)
- Range("F3").Offset(0, -1).Value = Sem_Actuel - 1 & "/" & Num_Year_Actuel
- Range("F3").Offset(0, -2).Value = Sem_Actuel - 2 & "/" & Num_Year_Actuel
-
- If Num_Year_Actuel = 2006 Then
-
- NBIteration = NbTotSem - Left(Range("F3").Value, 2)
- ReDim StockVal(NBIteration) 'On réalloue de manière dynamique le nbre d'éléments à stocker
-
- For I = 1 To NBIteration
- Sem_Actuel = Left(Range("F3").Value, 2) + I
- Range("F3").Offset(0, I).Value = Sem_Actuel & "/" & Num_Year_Actuel
- StockVal(1) = Range("F3").Offset(0, I).Value
- Next I
-
- Val_Find = StockVal(1)
- ValCelSem = Cells.Find(Val_Find, , , , xlByColumns, xlPrevious).Column
- adCelSem = Cells.Find(Val_Find, , , , xlByColumns, xlPrevious).Address
- NewYear = Right(Range(adCelSem), 4) + 1
- NBIteration = Nb_Colonne_A_Traiter - ValCelSem
-
- For I = 1 To NBIteration
- If Len(I) = 1 Then
- Sem_Actuel = I
- Range(adCelSem).Offset(0, I).Value = "0" & Sem_Actuel & "/" & NewYear
- Else
- Sem_Actuel = I
- Range(adCelSem).Offset(0, I).Value = Sem_Actuel & "/" & NewYear
- End If
- Next I
-
- End If
-
- End Function
Function Semaine(ddate As Date)
Semaine = Format(ddate, "ww", , vbFirstFourDays)
End Function
Function Initialise_Semaine()
Dim NomDuJour(7) As String
Dim StockVal()
Nb_Colonne_A_Traiter = 30
DateActuel = Now
Num_Jour_Actuel = Day(DateActuel)
Num_Mois_Actuel = Month(DateActuel)
Num_Year_Actuel = Year(DateActuel)
Num_Jour_Sem_Actuel = Weekday(DateActuel, vbUseSystem)
Select Case Num_Year_Actuel
Case 2006
NbTotSem = 52
Case 2007
NbTotSem = 53
Case 2008
NbTotSem = 52
Case 2009
NbTotSem = 52
End Select
Select Case Num_Jour_Sem_Actuel
Case 1
NomDuJour(1) = "Lundi"
Case 2
NomDuJour(2) = "Mardi"
Case 3
NomDuJour(3) = "Mercredi"
Case 4
NomDuJour(4) = "Jeudi"
Case 5
NomDuJour(5) = "Vendredi"
Case 6
NomDuJour(6) = "Samedi"
Case 7
NomDuJour(7) = "Dimanche"
End Select
Range("F3").Value = Semaine(Range("A3").Value) & "/" & Num_Year_Actuel
Sem_Actuel = Left(Range("F3").Value, 2)
Range("F3").Offset(0, -1).Value = Sem_Actuel - 1 & "/" & Num_Year_Actuel
Range("F3").Offset(0, -2).Value = Sem_Actuel - 2 & "/" & Num_Year_Actuel
If Num_Year_Actuel = 2006 Then
NBIteration = NbTotSem - Left(Range("F3").Value, 2)
ReDim StockVal(NBIteration) 'On réalloue de manière dynamique le nbre d'éléments à stocker
For I = 1 To NBIteration
Sem_Actuel = Left(Range("F3").Value, 2) + I
Range("F3").Offset(0, I).Value = Sem_Actuel & "/" & Num_Year_Actuel
StockVal(1) = Range("F3").Offset(0, I).Value
Next I
Val_Find = StockVal(1)
ValCelSem = Cells.Find(Val_Find, , , , xlByColumns, xlPrevious).Column
adCelSem = Cells.Find(Val_Find, , , , xlByColumns, xlPrevious).Address
NewYear = Right(Range(adCelSem), 4) + 1
NBIteration = Nb_Colonne_A_Traiter - ValCelSem
For I = 1 To NBIteration
If Len(I) = 1 Then
Sem_Actuel = I
Range(adCelSem).Offset(0, I).Value = "0" & Sem_Actuel & "/" & NewYear
Else
Sem_Actuel = I
Range(adCelSem).Offset(0, I).Value = Sem_Actuel & "/" & NewYear
End If
Next I
End If
End Function
Conclusion
Toute suggestion, sera la bienvenue.
Merci d'avance de vos remarques
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
selectionner des feuilles en VBA Excel à l'aide d'une INPUTBOX [ par damidam1 ]
Bonjour, Voici mon problème, J'ai un fichier Excel dans lequel se trouve 52 feuilles qui correspondent chacune a un semaine de l'année (sem1, sem2 etc
Info sur coordonnées en VBA dans une feuille Excel [ par dzeuz ]
Recherche d'info en VisualBasicApplicationActuellement je suis à la recherche du code afin de tracer une ligne dans une feuille graphique d'Excel.Cett
Ouverture d'un classeur Excel en VBA pour Excel 95 : URGENT [ par Jean-Luc ]
J'aimerai ouvrir des fichiers Excel en forçant la mise à jour des liaisons, et ce dans un programme en VBA pourExcel 95 (VBA en français).J'ai essayé
boite de dialogue excel et vba [ par cldvax ]
je suis nouveau sur ce forum et je vous prie de m'excuser si ma question a deja ete posee.je fais un petit programme de numerologie (juste la decompos
vba -> excel [ par jraynald ]
depuis vba je réussi à accéder à une feuille excel, mais après je bloque.Je voudrai à partir de vba recherché sur une feuille excel une cellulecontena
Activation du code VBA dans Excel [ par yorrick ]
J'aimerai pouvoir lancer (ou activer )automatiquement à l'ouverture de monfichier Excel les codes VBA qui se trouvent dans mes feuilles ...Ce sont pou
lancer une appli vba excel depuis vb? [ par canto11 ]
si quelqu'un pouvais m'aider, si jamais vous avez une solution merci de me la faire parvenir.donc je disais peut-on lancer un programme vba excel qui
VBA Excel Confirmation automatique de l'ecrasement de fichier [ par JJD ]
Lors d'une application VBA, j'enregistre un workbook mais le système me demande de confirmer (manuellement) l'ecrasement du fichier déjà existant sur
Fenêtre non modale en VBA / Excel [ par oniros ]
Bonjour à tous, Sous Excel 97, je voudrais, lors de l'affichage d'une fenêtre (UserForm), que l'utilisateur ait accès à la feuille se trouvant derrièr
Comment démarrer un formulaire avec VBA pour EXCEL? [ par Sylvain ]
Est-il possible de démarrer un formulaire de VBA pour EXCEL dès l'ouverture du fichier avec EXCEL 97? Et, si oui, comment SVP. (Une sorte d'autorun po
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en ½uvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|