Titre du sujet : Re: Formattage VBA sur report Excel par Megaolive le 29/11/2007 18:04:33
Bon j'avance a tatton sur mon sujet :
j'ai trouvé la coquille du code précédent, j'avais remplacé ".Font" par ".format" dans le code précédent tellement j'étais obsédé par le test sur le format :)
CI dessous mon dernier code qui fonctionne pour la mise à jour des trois types de format :(Titre,Conso, Item...
Comme toujours les critiques les plus acerbes sont les bienvenues !
Je m'attaque maintenant à la restructuration des lignes.
Je vois une procédure un peu comme ça : Si Ligne = Conso (déduit par détection du format) alors couper les N lignes suivantes jusqu'a la prochaine conso non comprise. et les coller au dessus de la conso détecté précédement.
encore une fois toutes les pistes sont les bienvenue....:]
'Option Explicit
'pour forcer la declaration de variable
Option Explicit
'Declaration des varibable en public
'pour les utiliser dans toutes les sousfonctions
'Variable Worksheet Report
Public Reportsheet As Worksheet
'Variable Worksheet Format
Public FormatSheet As Worksheet
'Variable Colonne contenant la condition
Public Declencheur As Range
'Variable qui prendra les valeurs de cellules
'contenant la condition
Public cell As Range
'Variable Cellule du format dans la feuille format
Public Leformat As Range
Sub Format()
'définition des trois types de formattage
'titre
'conso
'item
'definition valeur de ReportSheet
Set Reportsheet = Worksheets("REPORT")
'definition valeur de Declencheur
Set Declencheur = Reportsheet.Range("A1:A50")
'Boucle de formattage
For Each cell In Declencheur
'Format ligne titre
If cell.Value = "" Then
copytitleformat
cell.EntireRow.Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
'Format ligne conso
If cell.Value <> "" Then
cell.Select
If Selection.Font.Bold = True Then
copyconsoformat
cell.Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
End If
'Format ligne Item
If cell.Font.Bold = False Then
copyItemformat
cell.Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
Next
End Sub
Sub copytitleformat()
'definition valeur de FormatSheet
Set FormatSheet = Worksheets("FORMAT")
'definition valeur de Title
Set Leformat = FormatSheet.Range("B5")
Leformat.Copy
End Sub
Sub copyconsoformat()
'definition valeur de FormatSheet
Set FormatSheet = Worksheets("FORMAT")
'definition valeur de Conso
Set Leformat = FormatSheet.Range("B6")
Leformat.Copy
End Sub
Sub copyItemformat()
'definition valeur de FormatSheet
Set FormatSheet = Worksheets("FORMAT")
'definition valeur de Item
Set Leformat = FormatSheet.Range("B7")
Leformat.Copy
End Sub
|