begin process at 2012 02 17 03:14:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > 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

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date & Heure Classé sous :semaine, vba, excel Niveau :Débutant Date de création :22/11/2006 Vu :11 699

Auteur : fpetit25

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 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

CALCUL AUTOMATIQUE DES N° DE SEMAINE

 Sources de la même categorie

Source avec Zip Source avec une capture LES FONCTIONS DATE PAR L'EXEMPLE. par pasquet78
Source avec Zip Source avec une capture CALENDRIER, MODE D'EMPLOI par pasquet78
Source avec Zip Source avec une capture Source .NET (Dotnet) HORLOGE DIODE AVEC 3 ALARMES ET REMISE À L'HEURE par EhJoe
Source avec Zip Source avec une capture POINTEUSE HORAIRES PAR SEMAINE par VBNoob13
Source avec Zip Source avec une capture HORLOGE À AIGUILLES SIMPLEMENT DANS UN USERFORM EXCEL par bigbe

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TOURS DE HANOI (JEU) SOUS EXCEL (VBA) par rtoukkys
METTRE EN FORME DU TEXTE WORD DEPUIS EXCEL EN VBA par phanoulevoyou
Source avec Zip Source avec une capture [VBA VB6] FORCER L'OUVERTURE D'UN COMBOBOX par lermite222
Source avec Zip Source avec une capture [VBA] EXCEL - DÉMO - TIRER 1, 2 OU 3 DÉS + APIS par lermite222
Source avec Zip Source avec une capture DEMINEUR SOUS EXCEL par rtoukkys

Commentaires et avis

Commentaire de Drikce06 le 23/11/2006 08:12:48

Salut et si Num_Year_Actuel = 2007?

Commentaire de Drikce06 le 23/11/2006 08:16:50

Il faudrai que ton code face ça quelque soit l'année! Autant les années passées que les futures!

 Ajouter un commentaire


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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,716 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales