bendao
Messages postés61Date d'inscriptionmercredi 26 août 2009StatutMembreDernière intervention 8 février 2016
-
6 oct. 2009 à 09:13
Bonjour,
je me suis fais faire une jolie petite macro sur ce forum, et je dois dire merci à ceux qui prenne le temps de nous aider sur des sujets aussi pointus que les macros, etc...
par contre, cette macro, ne prend pas en compte mes mises en formes de cellules. J'explique :
la macro fonctionne très bien. mais quand je la lance dans mon tableau synthèse (car elle sert à ça), ma mise en forme de cellule disparait (les bordures, les valeurs centrées dans la celleule, les couleurs), et les résultats se mettent sans bordure à gauche ou à droite dans la cellule.
je ne sais pas si inérant à la macro ou y 'a t'il une astuce pour garder ma mise en forme. pour aider je vous joint cette macro et dites moi ce que vous y voyez ........ :-) Merci
Sub macro()
'******************************************
'*Cette macro permet de faire une synthèse*
'******************************************
Dim nbre, nom, annee, a, dates, nombre As String
Dim i, j, k As Integer
nom = Range("B2") ' définit la variable nom comme égale au nom entré
j = 1
i = 5
annee = Cells(i, j) 'définit la variable année comme l'année entrée dans la colonne a
Do While annee <> "" 'la boucle tourne jusqu'à ce qu'il n'y ait plus d'année en colonne A
dates = ""
nombre = 0
k = 7
annee = "" & annee & ""
For a = 1 To Sheets.Count
anne = Sheets(a).Name
If Sheets(a).Name = annee Then
annee = Sheets(a).Name
End If
Next a
Do While Sheets(annee).Cells(k, j + 4) <> "" 'la boucle tourne jusqu'à ce qu'il n'y ait plus de nom
If UCase(Sheets(annee).Cells(k, j + 4)) = UCase(nom) Then
nombre = nombre + 1
dates = dates & Sheets(annee).Cells(k, j + 3) & ";"
End If
k = k + 1
Loop
nbre = 1
Cells(i, j + 1) = nombre + 1 - 1
If nombre <> 0 Then
Do While dates <> ""
nombre = 1
Do While Right(Left(dates, nombre), 1) <> ";"
nombre = nombre + 1
Loop
Cells(i, j + 2) = Left(dates, nombre - 1)
If Cells(4, j + 2) = "" Then
Cells(4, j + 2) = "Date " & nbre
End If
nbre = nbre + 1
j = j + 1
dates = Right(dates, Len(dates) - nombre)
Loop
End If
i = i + 1
j = 1
annee = Cells(i, j)
Loop
End Sub