| Accueil | Forums | Bureautique | Développement | SGBD |
  Leçons Niveau 3
 
  Autres Niveau Excel
 
 
  La macro "InsererDate" - Le code
 

Le code généré

Sub InsererDate()

' InsererDate Macro
' Macro enregistrée le 06/09/2005 par Delenne Xavier

Range("A1").Select
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Range("A1").Select
ActiveCell.FormulaR1C1 = "Date"
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "Nov-1997"
Range("A1").Select
End Sub

Explications :

  • Range("A1").Select : Selection de la cellule A1

  • Columns("A:A").Select : Selectionner la colonne A
  • Selection.Insert Shift:=xlToRight Insérer une colonne avant A (decalage à droite)

  • Selection.CurrentRegion.Select : en lisant en arrière: Selectionner la region courante (le tableau complet) de la selction en cours (A1)

  • Selection.SpecialCells(xlCellTypeBlanks).Select : selectionner les cellules de types blanc (cellules vides) à l'interieur de la selection (le tableau complet)

  • Selection.FormulaR1C1 = "Nov-1997" : Mettre la formule "Nov-97" dans toutes les cellules selectionnées

  • Range("A1").Select : Selection de la cellule A1

Les modifications

Une seule modification pour l'utilisation à venir, la date changera tous les mois, hors c'est comme le nom du fichier ou le chemin, cette date changera tous les mois.

Nous allons découvrir une nouvelle instruction permettant à l'utilisateur de saisir la date dans une boite de dialogue. Pour ce faire nous aurons besoin d'une variable texte (string) que nous appelerons Rep1 pour stocker la date saisie.

L'instruction InputBox

Syntaxe : Reponse = InputBox (Prompt,[Title],[Default],[Xpos],[Ypos],[Help],[Context]) dans laquelle (je me limite à ceux qui nous serons utile pour l'instant):
  • Reponse = Variable de stockage de la saisie
  • Prompt = Question posée dans la boite de dialogue
  • Title : Titre dans la barre de titre de la boite (barre bleue)
  • Default : Reponse par defaut proposée si besoin
Pour notre code, il faudra donc rajouter en debut de procédure la création de la variable :
Dim Rep1 as String

suivi de la saisie par l'utilisateur de la date au format nov-97
Rep1 = InputBox ("Veuillez saisir la date au format mmm-aa", "Saisie de la date")

Vous noterez que je ne propose que le prompt et le titre, pas de valeur par defaut

Ensuite il faut remplacer la saisie "Nov-97" par la variable Rep1, ce qui nous donne en macro finale :


Sub InsererDate()

' déclaration de la variable de stockage
Dim Rep1 As String

' creation pour l'utilisateur d'une boite de saisie
Rep1 = InputBox("Veuillez saisir la date au format mmm-aa", "Saisie date")
Range("A1").Select

'insertion nouvelle colonne avant "A"
Columns("A:A").Select
Selection.Insert Shift:=xlToRight

' Creation du titre de colonne "Date"
Range("A1").Select
ActiveCell.FormulaR1C1 = "Date"

' selection cellules vides<BR> Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select

' affectation de la valeur de rep1 à toutes les cellules selectionnées (date saisie)
Selection.FormulaR1C1 = Rep1
Range("A1").Select

End Sub


 

 
2005 Copyright Ephicom